手動実装

1. SDKダウンロード

まず、iOS SDK をダウンロード します。

2. プロジェクトへのSDKの追加

ダウンロードしたSDKを解凍すると、docs、libraries、TapjoyEasyApp のフォルダがあります。

“TapjoyEasyApp”フォルダには実装用デモプロジェクトが含まれます。このサンプルアプリは参照用ですが、SDKの多くのAPIが使われているため実装の足がかりとしても試用できます。

プロジェクトにファイルを追加します。‘File’ - ‘Add files to Project’ メニューを選択し、 "Libraries" フォルダの Tapjoy.xcframework を選択します。 ファイルダイアログの ‘copy items if needed’ をチェックして‘Add’をクリックします。

次に、 build settingsOther Linker Flags (OTHER_LDFLAGS) を表示し、 -ObjC フラグを追加します。

A. 必要なライブラリの追加

次に、必要なフレームワークをプロジェクトに追加します。 フレームワークを追加するには、プロジェクト設定を開き、"Build Phases"を選択し、"Link Binary With Libraries"を展開してセクション下部の"+"をクリックし、次のフレームワークを追加します。ここではフレームワークはアルファベット順に表示され、Commandキーを押すことで複数のフレームワークを選択して一度に追加ができます。

下記のすべてのフレームワークをプロジェクトに追加します:

  • AdSupport
  • CFNetwork
  • CoreTelephony
  • StoreKit
  • SystemConfiguration
  • UIKit
  • WebKit
  • libc++
  • libz

3. App Tracking Transparency によるトラッキングの許可を求める

アプリがApp Tracking Transparencyを使用する場合、IDFA(広告ID)にアクセスするための許可を求めるダイアログを表示するには、Info.plistに NSUserTrackingUsageDescription キーとIDFAをアプリで使用する許可を求めるカスタムメッセージの値を追加します。

例:

<key>NSUserTrackingUsageDescription</key>
<string>あなたに最適になるようにパーソナライズした広告をお届けできるようになります。</string>

image_title

指定した使用目的の記述の内容は App Tracking Transparency のトラッキング許可ダイアログとして下記のように表示されます:

image_title

プロジェクトに AppTrackingTransparency フレームワークを追加し、 requestTrackingAuthorizationWithCompletionHandler: を呼び出して許可を求めるダイアログを表示します。ベスト・プラクティスとして、 requestTrackingAuthorization のコンプリーションハンドラが呼び出されるまでTapjoy connectの呼び出しを待つ事をお勧めします。こうすれば、意図したIDFAの値がTapjoyへのすべてのリクエストに使われるようになるからです。

Objective-C
Swift
#import <AppTrackingTransparency/AppTrackingTransparency.h>
...
- (void)fetchTrackingAuthorization {
  [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
    // Tapjoy connect をここで呼びます。
  }];
}

4.Tapjoy Connect実装

次に、Tapjoy connect をアプリに実装します。 これにより、アプリからTapjoy SDK を"起動"します。

Tapjoy connect の実装は非常に重要です。この実装が正常に行われていない場合、Tapjoyの機能がいっさい動作しなくなるからです

Tapjoy connect を実装するためには、実装を行うアプリのTapjoy SDK Keyが必要になります。この値を取得するには Tapjoyダッシュボードで実装するアプリを選択肢、"設定" - "アプリ設定" をクリックします。画面下部の 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 デバッグモードを ON に
    [Tapjoy setDebugEnabled:YES]; // 開発用途にのみ有効にします。 パブリッシュする前に必ず無効にして下さい。

    // 自社管理仮想通貨を使う場合は、ユーザーIDをconnect flagで指定します。
    NSDictionary *connectFlags = @{TJC_OPTION_USER_ID : @"<USER_ID_HERE>"};
    [Tapjoy connect:@"SDK_KEY_GOES_HERE" options:connectFlags];
    
    // Connect flagを使用しない場合は、省略する事もできます。
    [Tapjoy connect:@"SDK_KEY_GOES_HERE"];

    return YES;
}

setDebugEnabled メソッドは connect よりも先に設定するようにして下さい。ユーザーIDは connect フラグで設定することをお勧めします。これにより、 AppLaunch 自動設定プレイスメントが正しいユーザーIDでコンテンツを取得できるようになります。

より詳細については SDK リファレンス (英語) もご参照下さい:
Objective C および C++

6. Connect コールバック

Tapjoy connect が完了したという通知 (または、失敗したという通知) を受けるには、セレクタとして前のステップで設定したメソッドを実装する必要があります:

Objective-C
Swift
- (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 Storyteller Roller[25869:1433019] [TJLog level: 4] Connect success with type:0

Tapjoy ダッシュボードで 画面上部のナビゲーションバーにある"アナリティクス" をクリックし、画面左の "リアルタイムレポート"タブをクリックして表示される画面で"アクティブユーザー数"が反映される事を確認して下さい。

これでTapjoyがアプリで起動するようになりました。