SDK를 수동으로 연동하는 첫 번째 단계는 iOS SDK를 다운로드 하는 것 입니다.
SDK의 압축을 풀면 docs, libraries 및 TapjoyEasyApp을 확인 할 수 있습니다.
“TapjoyEasyApp”은 Tapjoy 연동 결과를 보여주는 샘플 프로젝트입니다. Tapjoy를 자신의 애플리케이션에 연동하는데 필요하지는 않지만 유용한 참고 자료입니다.
프로젝트에 파일을 추가하려면 ‘File’ 및 ‘Add files to Project’를 선택하십시오. "Libraries" 폴더로 이동하여 Tapjoy.xcframework
폴더를 선택합니다. 대화 상자에서 'copy items if needed'를 선택한 다음 'Add'를 클릭하십시오.
만일 12.8.0 이후 버전을 사용한다면,
build settings 에서 Other Linker Flags (OTHER_LDFLAGS)
항목을 찾습니다.
-ObjC
플래그를 추가.
다음 단계는 프로젝트에 필요한 프레임워크를 추가하는 것입니다. 프로젝트 네비게이터에서 프로젝트 아이콘을 클릭 한 다음 "Build Phases"를 선택하고 "Link Binary With Libraries"를 확장한 다음 섹션의 왼쪽 하단에있는 "+"기호를 클릭합니다. 프레임워크는 알파벳순으로 나열되며 CMD 키를 누른 상태에서 여러 프레임워크를 선택하여 한 번에 추가 할 수 있습니다.
프로젝트에 다음 프레임 워크를 모두추가합니다.
탭조이는 Apple의 SKAdNetwork에 네트워크 파트너로 등록되어 있습니다. SDK v12.7.1 버전으로 업데이트 시 여기 나열된 DSP파트너의 ID와 함께 탭조이의 네트워크 ID를 앱의 info.plist 파일에 추가해 주세요. 아래 항목은 사용가능한 JSON, XML 포멧의 데이타 입니다.
보다 자세한 내용은 이 문서를 참조해 주세요.
애플리케이션이 App Tracking Transparency 를 사용하는 경우 IDFA 접근 권한을 요청하는 대화상자를 표시하려면 NSUserTrackingUsageDescription
키와 함께 사용자에게 표시하고자 하는 메시지를 Info.plist 에 추가해 주세요.
예를 들어,
<key>NSUserTrackingUsageDescription</key>
<string>이 권한은 개인화된 광고를 전달하기 위해서 필요합니다.</string>
위 내용을 설정하면 아래 스크린샷과 같이 사용 설명 텍스트가 App Tracking Transparency 권한 요청 대화 상자에 표시됩니다.
AppTrackingTransparency
프레임워크를 프로젝트에 추가하고, requestTrackingAuthorizationWithCompletionHandler:
명령을 호출하면 권한요청이 보여지게 됩니다. requestTrackingAuthorization
함수의 완료 헨들러가 호출된 이후에 탭조이 연결요청을 하는 것을 권장합니다. 이를 통해 탭조이 연동 시 모든 리퀘스트에 대해 IDEA를 사용할 수 있습니다.
#import <AppTrackingTransparency/AppTrackingTransparency.h>
...
- (void)fetchTrackingAuthorization {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
// Call Tapjoy's connect function here.
}];
}
이제 탭조이 연동을 위한 첫번째 연동코드인 connect 요청 코드를 적용해볼 차례입니다. 이 코드를 통해 앱에 탑재된 탭조이 SDK가 동작을 시작하게 됩니다.
탭조이 connect 요청은 매우 중요합니다. connect 요청이 없으면 탭조이의 모든 기능이 작동하지 않습니다.
탭조이 SDK가 connect 요청을 하기 위해서는 SDK Key가 필요합니다.
탭조이 대시보드 왼쪽 하단에 위치한 "설정" 버튼을 클릭하면 나오는 페이지의 하단에서 SDK Key를 찾을 수 있습니다.
이제 다음 코드 스니펫을 애플리케이션의 앱 델리게이트 파일에 있는 application:didFinishLaunchingWithOptions
메소드에 배치합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectSuccess:) name:TJC_CONNECT_SUCCESS object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectFail:) name:TJC_CONNECT_FAILED object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectWarning:) name:TJC_CONNECT_WARNING object:nil];
//Tapjoy 디버그 모드 켜기
[Tapjoy setDebugEnabled:YES]; //개발 시점에만 디버그 모드를 활성화 하십시오. 앱스토어 등록 전에 비활성화 하십시오.
//자체 관리 통화를 사용하는 경우 connect 플래그를 사용하여 사용자 ID를 설정해야 합니다.
NSDictionary *connectFlags = @{TJC_OPTION_USER_ID : @"A_UNIQUE_USER_ID"};
[Tapjoy connect:@"SDK_KEY_GOES_HERE" options:connectFlags];
//connect 플래그를 사용하지 않는 경우 생략할 수 있습니다.
[Tapjoy connect:@"SDK_KEY_GOES_HERE"];
return YES;
}
setDebugEnabled
및 setUserID
메소드는 connect 요청 전에 호출되어야 합니다. connect 요청 전에 사용자 ID를 설정하면 자동으로 AppLaunch 플레이스먼트가 호출될 때 올바른 사용자 ID가 전달 될 수 있습니다. Push2Earn 컨텐츠 사용시에도 미리 setUserID
가 호출되어야합니다.
자세한 내용은 SDK 레퍼런스 문서에서 참조하실 수 있습니다 : Objective C, C++.
Tapjoy가 connect 요청이 성공하거나 실패했을 때 notification
을 수신하려면 selector
로 설정한 메소드를 구현해야합니다.
- (void)tjcConnectSuccess:(NSNotification *)notifyObj
{
NSLog(@"Tapjoy connect succeeded");
}
- (void)tjcConnectFail:(NSNotification *)notifyObj
{
NSLog(@"Tapjoy connect failed");
}
- (void)tjcConnectWarning:(NSNotification *)notifyObj
{
NSError *error = notifyObj.userInfo[TJC_CONNECT_USER_INFO_ERROR];
NSError *underlyingError = error.userInfo[NSUnderlyingErrorKey];
}
이제 앱을 빌드하고 실행해볼 수 있습니다. 모든 작업을 올바르게 수행한 경우 다음과 유사한 출력이 콘솔 로그에 표시되어야합니다.
2020-01-29 16:01:55.422 App Name[25869:1433019] [TJLog level: 4] Connect success with type:0
Tapjoy 대시보드에서 상단 "분석" 메뉴를 선택한 후, 좌측 "리얼타임 분석" 메뉴을 클릭하면 실시간 분석화면을 통해 연동 상태를 확인할 수 있습니다.
축하합니다! 이제 애플리케이션에서 Tapjoy가 동작합니다!