手動実装

1. SDKダウンロード

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

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

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

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

プロジェクトにファイルを追加します。‘File’ - ‘Add files to Project’ メニューを選択し、 "Libraries" フォルダの Tapjoy.xcframework (古いバージョンのTapjoy SDKを使用している場合は Tapjoy.embeddedframework) フォルダを選択します。 ファイルダイアログの ‘copy items if needed’ をチェックして‘Add’をクリックします。

Tapjoy 12.8.0 以降をご利用の場合:

  • build settingsOther Linker Flags (OTHER_LDFLAGS) を表示します。

  • -ObjC フラグを追加します。

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

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

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

  • AdSupport
  • CFNetwork
  • CoreTelephony
  • StoreKit
  • SystemConfiguration
  • UIKit
  • WebKit
  • libc++
  • libz
  • PassKit (古いバージョンのiOSと互換性が必要な場合は'Optional'とできます)

注: Tapjoy SDK 12.8.0 より古いSDKをご利用の場合、下記のフレームワークも追加する必要があります:

  • CoreGraphics
  • Foundation
  • ImageIO.framework
  • MediaPlayer
  • MobileCoreServices
  • QuartzCore
  • Security

B. Swift

Tapjoy SDK 12.8.0 以降をご利用の場合、このステップは必要ありません。

Tapjoy を Swift から利用する場合には、bridging header を作成する必要があります。

  1. 新規にヘッダファイルを作成し、ファイル名を次のようにします: "[ProjectName]-Bridging-Header.h"
  2. #import "Tapjoy/Tapjoy.h を作成したヘッダファイルに追加します。
  3. XcodeのターゲットのBuild Settings で "bridging header" を検索し、追加したヘッダファイルのパスを追加します。 Xcodeのプロジェクト ナビゲーションからファイルをテキストフィールにドロップすればファイルのパスの追加を簡単に行えます。

3. SKAdNetworkを有効にする

TapjoyはAppleのSKAdNetworkのネットワーク パートナーとして登録されています。TapjoyのネットワークIDとDSPパートナーのIDとともに、アプリのinfo.plist に追加して下さい。追加するIDのリストはXMLおよびJSONフォーマットでご利用いただけます:

詳細は こちら をご覧ください。

4. 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 をここで呼びます。
  }];
}

5.Tapjoy Connect実装

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

apjoy 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];

    // 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 と setUserID メソッドは connect よりも先に設定するようにして下さい。 ユーザーIDを connect よりも先に設定すれば、 AppLaunch 自動設定プレイスメントが正しいユーザーIDでコンテンツを取得できるようになります。また、Push to Earn コンテンツでも同様です。

より詳細については 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");
}

コンパイルを行い、アプリを実行して下さい。 実装が正しい場合は下記のようなログが出力されます:

2020-01-29 16:01:55.422 Storyteller Roller[25869:1433019] [TJLog level: 4] Connect success with type:0

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

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