빠르게 시작하기

1. SDK 연동

A. Cocoapods (권장)

CocoaPods 는 Objective-C 및 Swift의 종속성 관리자입니다. CocoaPods를 사용하여 Tapjoy SDK를 최신 상태로 유지하는 것을 권장드립니다.

Tapjoy를 사용하려면 간단히 podfile에 추가하세요 :

    platform :ios, '12.0'
    source 'https://github.com/CocoaPods/Specs.git'

    use_frameworks!

    target 'MyApp' do
        pod 'TapjoySDK'
    end

Cocoapods을 통해 연동을 진행할 경우 static / dynamic 프레임워크 사용에 대한 옵션을 제공하고 있습니다. 기본 설정은 static 으로 설정되어 있습니다. Dynamic 프레임워크를 사용하고자 하신다면 podfile 에 아래와 같이 설정을 추가합니다.

pod 'TapjoySDK/Dynamic'

B. Swift Package Manager

SDK v13.4.0 부터 Swift Package Manager를 지원합니다.

File > Add Packages Dependancies 로 들어간 후 우측 상단 검색창에 https://github.com/Tapjoy/swift-packages.git 를 입력하고 추가할 프로젝트를 선택한 다음 Add Package 버튼을 클릭합니다.

2. App Tracking Transparency 권한 요청

애플리케이션이 App Tracking Transparency 를 사용하는 경우 IDFA 접근 권한을 요청하는 대화상자를 표시하려면 NSUserTrackingUsageDescription 키와 함께 사용자에게 표시하고자 하는 메시지를 Info.plist 에 추가해 주세요. 예를 들어,

<key>NSUserTrackingUsageDescription</key>
<string>이 권한은 개인화된 광고를 전달하기 위해서 필요합니다.</string>

image_title

위 내용을 설정하면 아래 스크린샷과 같이 사용 설명 텍스트가 App Tracking Transparency 권한 요청 대화 상자에 표시됩니다.

image_title

AppTrackingTransparency 프레임워크를 프로젝트에 추가하고, requestTrackingAuthorizationWithCompletionHandler: 명령을 호출하면 권한요청이 보여지게 됩니다. requestTrackingAuthorization 함수의 완료 헨들러가 호출된 이후에 탭조이 연결요청을 하는 것을 권장합니다. 이를 통해 탭조이 연동 시 모든 리퀘스트에 대해 IDEA를 사용할 수 있습니다.

Objective-C
Swift
#import <AppTrackingTransparency/AppTrackingTransparency.h>
...
- (void)fetchTrackingAuthorization {
  [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
    // Call Tapjoy's connect function here.
  }];
}

3. Connect 연동

이제 탭조이 연동을 위한 첫번째 연동코드인 connect 요청 코드를 적용해볼 차례입니다. 이 코드를 통해 앱에 탑재된 탭조이 SDK가 동작을 시작하게 됩니다.

탭조이 connect 요청은 매우 중요합니다. connect 요청이 없으면 탭조이의 모든 기능이 작동하지 않습니다.

탭조이 SDK가 connect 요청을 하기 위해서는 SDK Key가 필요합니다.

탭조이 대시보드 왼쪽 하단에 위치한 "설정" 버튼을 클릭하면 나오는 페이지의 하단에서 SDK Key를 찾을 수 있습니다.

이제 다음 코드 스니펫을 애플리케이션의 앱 델리게이트 파일에 있는 application:didFinishLaunchingWithOptions 메소드에 배치합니다.

Objective-C
Swift
- (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]; //개발 시점에만 디버그 모드를 활성화 하십시오. 앱스토어 등록 전에 비활성화 하십시오.

    //자체 관리 통화를 사용하는 경우 연결 플래그를 사용하여 사용자 ID를 설정해야 합니다.
    NSDictionary *connectFlags = @{TJC_OPTION_USER_ID : @"A_UNIQUE_USER_ID"};
    [Tapjoy connect:@"SDK_KEY_GOES_HERE" options:connectFlags];
    
    //연결 플래그를 사용하지 않는 경우 생략할 수 있습니다.
    [Tapjoy connect:@"SDK_KEY_GOES_HERE"];
    
    return YES;
}

setDebugEnabledsetUserID 메소드는 connect 요청 전에 호출되어야 합니다. connect 요청 전에 사용자 ID를 설정하면 자동으로 AppLaunch 플레이스먼트가 호출될 때 올바른 사용자 ID가 전달 될 수 있습니다. Push2Earn 컨텐츠 사용시에도 미리 setUserID가 호출되어야합니다.

자세한 내용은 SDK 레퍼런스 문서에서 참조하실 수 있습니다 : Objective C, C++.

Connect 요청에 대한 Notification 연동

Tapjoy가 connect 요청이 성공하거나, 성공했으나 경고를 받을 경우 또는 실패했을 경우 notification을 수신하려면 selector로 설정한 메소드를 구현해야합니다.

Objective-C
Swift
- (void)tjcConnectSuccess:(NSNotification *)notifyObj 
{
    NSLog(@"Tapjoy connect succeeded");
}

- (void)tjcConnectFail:(NSNotification *)notifyObj 
{
    NSError *error = notifyObj.userInfo[TJC_CONNECT_USER_INFO_ERROR];
    NSInteger code = error.code;
    NSString *message = error.localizedDescription;
    NSString *underlyingErrorMessage = underlyingError != nil ? [NSString stringWithFormat:@" - %li %@", underlyingError.code, underlyingError.localizedDescription] : @""; 
    NSLog(@"%@", underlyingErrorMessage);
}

- (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가 동작합니다!

사용자 최대 레벨

Tapjoy에 여러분의 게임의 최대 레벨을 설정할 수 있습니다. Tapjoy.connect API 호출 전, 해당 API를 호출해야 합니다.

Objective-C
Swift
[Tapjoy setMaxLevel:10]; 

사용자 분류

setUserSegmentAPI 를 통해 사용자를 분류할 수 있습니다.. Tapjoy.connect API 호출 전, 해당 API를 호출해야 합니다.

Objective-C
Swift
[Tapjoy setUserSegment:TJSegmentVIP];
[Tapjoy setUserSegment:TJSegmentPayer];
[Tapjoy setUserSegment:TJSegmentNonPayer];
[Tapjoy setUserSegment:TJSegmentUnknown];