AppsFlyer 초대 링크(선택)
- 이 기능은 초대 링크를 생성하고 초대자와 피초대자의 정보를 얻는 데 사용되며, 공유 기능은 포함하지 않습니다. 공유 기능은 당사 SDK의 다른 API를 호출하거나 별도로 구현하십시오.
- 게임 클라이언트가 AppsFlyer 초대 링크 생성 인터페이스를 호출하여 초대자가 초대 링크를 생성한 후 소셜 채널에서 공유하여 피초대자가 클릭하여 게임을 다운로드하고 게임을 열 수 있도록 합니다.
- 게임 클라이언트가 AppsFlyer 보상 조회 인터페이스를 호출하여 현재 사용자가 링크를 통해 게임을 열었는지 확인하고 백엔드에 기록합니다.
- 예시:(1) A 사용자가 a 이벤트에 대해 초대 링크 생성 인터페이스를 통해 링크 a1을 생성하여 B 사용자에게 제공합니다. B 사용자가 a1 링크를 통해 게임을 열고 나서 보상 조회 인터페이스를 호출하면, 보상 조회 인터페이스의 콜백 isSuccess=true가 되어 A가 B를 초대하여 성공적으로 기록되고 게임 서버로 전송되었음을 나타냅니다.(2) B 사용자가 다시 a1 링크를 통해 게임을 열 때 조회 인터페이스를 호출하면, 보상 조회 인터페이스의 콜백 isSuccess=false가 됩니다.(3) A 사용자가 b 이벤트에 대해 초대 링크 생성 인터페이스를 통해 링크 b1을 생성하여 B 사용자가 b1 링크를 통해 게임을 열고 나서 보상 조회 인터페이스를 호출하면, 보상 조회 인터페이스의 콜백 success=true가 됩니다.
외부 링크를 통해 피초대자를 깨우는 info.plist 구성
다음과 같이:
xml
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>{소문자 GameCode + FaceBookAppid}</string>
</array>
</dict>
</array>GamedreamerResources 확인
GamedreamerResources.bundle/GamedreamerConfig.plist의 AppsFlyerDevKey와 AppsFlyerOneLinkID가 존재하는지와 최신 값인지 확인합니다.
xml
<!-- AppsFlyerDevKey -->
<key>AppsFlyerDevKey</key>
<string>{SDK 패키지에서 제공: xxxx}</string>
<!-- AppsFlyerOneLinkID -->
<key>AppsFlyerOneLinkID</key>
<string>{SDK 패키지에서 제공: xxxx}</string>1. 게임 클라이언트가 AppsFlyer 초대 링크 생성 인터페이스를 호출
주의: 게임 클라이언트가 서버 검증 인터페이스와 캐릭터 인터페이스를 호출한 후에만 호출할 수 있습니다.
호출 방법:
Object-C
- (void)gamedreamerSendInvitation:(invite_channel)chanel
eventKey:(NSString *)eventKey
value:(NSString *)eventValue
complete:(void (^)(BOOL success, NSString *inviteUrl))inviteBack;주의: 게임 클라이언트가 서버 검증 인터페이스와 캐릭터 인터페이스를 호출한 후에만 호출할 수 있습니다.
매개변수
| 매개변수 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| chanel | NSInteger | 아니오 | 기본값은 channel_normal |
| eventKey | NSString | 예 | 초대 이벤트 Key 이름, 양측 협의 후 게임 클라이언트에서 전달(주의: key의 명명은 URL 인코딩 규칙을 따름) |
| eventValue | NSString | 예 | 초대 이벤트 투과 필드, 여기 내용 형식은 json 문자열로 정의됨 |
| inviteBack | 클로저 | 예 | 링크 생성 결과의 클로저 |
콜백
java
complete:^(BOOL success, NSString * _Nonnull inviteUrl) {
code
}| 매개변수 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| success | BOOL | 예 | 생성 성공 여부 |
| inviteUrl | NSString | 예 | 생성된 url, 클라이언트가 url을 받은 후, 호출 시 전달된 chanel에 따라 직접 해당 공유 채널을 불러와 사용자가 이 url을 공유하도록 합니다. |
예제 코드
Object-C
[[GamedreamerManager shareInstance] gamedreamerSendInvitation:(channel_normal)
eventKey:@"hw_invite0915"
value:@"{\"inviteTime\":\"1601186935\",\"inviteTag\":\"default\",\"inviteAccountId\":82}"
complete:^(BOOL success, NSString *inviteUrl) {
code
}];2. 게임 클라이언트가 AppsFlyer 보상 조회 인터페이스를 호출
주의: 게임 클라이언트가 서버 검증 인터페이스와 캐릭터 인터페이스를 호출한 후에만 호출할 수 있습니다.
호출 방법:
Object-C
- (void)gamedreamerInvitationRewards:(void (^)(BOOL success ,NSString *msg))rewardBack;콜백
Object-C
gamedreamerInvitationRewards:^(BOOL success, NSString * msg) {
code
}| 매개변수 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| success | BOOL | 예 | 호출 성공 여부 |
| msg | NSString | 예 | 호출 정보 |
예제 코드
Object-C
[[GamedreamerManager shareInstance]
gamedreamerInvitationRewards:^(BOOL success, NSString *msg) {
code
}];AppsFlyer 초대 링크 테스트 시 주의사항
스토어에 앱이 공식적으로 출시되지 않았을 때, 즉 scheme 방식을 통해 테스트하는 경우, 초대 링크를 열 때마다 브라우저의 웹 캐시를 정리해야 합니다. 이유는 AppsFlyer 웹 측의 이상한 동작 때문입니다. 물론 앱이 스토어에 이미 공식적으로 출시된 경우에는 이 브라우저 캐시 정리 테스트 주의사항을 무시할 수 있습니다.