クイックスタート

1. ダッシュボード実装ガイド

Tapjoy ダッシュボード に、Tapjoy の実装を手順を追って説明する 実装ガイド が組み込まれました。従来通り、この実装ガイドにしたがって実装を進める事も可能です。最後に登録したアプリの実装ガイドを直接参照するか、Tapjoy ダッシュボードでアプリを選択し、「ツール」メニューのドロップダウンから「実装方法」を選択してください。

2. SDK 実装

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

Tapjoy Unity Plugin zip ファイルにはインポート用のUnity packageファイルと、ファイルをドラッグ&ドロップしてTapjoyのアップデート等を行うのためのパッケージ化していないファイルが含まれています。TapjoyUnityPlugin_vVERSION.unitypackage をインポートするには:

  1. Unityプロジェクトを開きます
  2. Assets > Import Package > Custom Package
  3. TapjoyUnityPlugin_vVERSION.unitypackage ファイルを指定します。
  4. インポートファイルの一覧をレビューし、競合のようなトラブルがないか確認します。
  5. "Import" ボタンを押してファイルをインポートします。

Tapjoy SDK 12.8.0 以降から、External Deendency Manager経由でCocoapodsを使って管理されています。Cocoapods のバージョンが 1.9.0 以上で、 XCode のバージョンが 11.0 以上である事を確認して下さい。

A. Unity 5.4 以降へのアップデート:

Unity 5.4 以降で Tapjoy Unity Plugin をアップデートする場合、 Google Play Services ライブラリが iOS ビルドに含まれるようにマークされてしまう問題を修正する "Fix" ボタンが[Window]-[Tapjoy] パネルに 表示されます。

"Fix" ボタンをクリックして、Google Play Services が Android ビルドのみに含まれるように修正します。 Unity 5.4 より前の Unity をお使いの場合、手動で google-play-services_lib が Android ビルドのみに含まれるようにして下さい。 Tapjoy Unity Plugin を新規にインポートした場合は、このボタンは表示されません。

B. PermissionとActivityの追加 (Android)

ACCESS_WIFI_STATEオプションで manifestファイルに追加できます:

<manifest ...>
  ...
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  ...
</manifest>

3. Tapjoy Connect の実装

Tapjoy Windowをご利用ください。Windoe > TapjoyでTapjoyを開きます。

image_title

Tapjoy Windowで下記を編集してください:

  • SDK Key の設定 (AndroidとiOS)
  • Android マーケット用のストア名の設定 (Google、 Amazon 等)
  • Google Advertising ID、 Persistent ID、およびIDFAの使用可否設定
    • Disable Advertising Id: このチェックボックスはAndroidで DISABLE_ADVERTISING_ID_CHECK connect フラグを設定するのと同様です。Tapjoy SDKはデフォルトではGoogle Advertising Identifierが取得できるかを確認し、取得できない場合には初期化を中断します。このチェックボックスを有効にすると、Tapjoy SDKは Google Advertising Identifierが存在しない場合でも初期化を完了します。Google Play ストア以外のマーケット用のアプリなど、Google Play Servicesが有効でないアプリでは有用です。
    • Disable Persistent Ids: このチェックボックスはAndroidで DISABLE_PERSISTENT_IDS connect フラグを設定するのと同様です。Tapjoy SDKは永続的な識別子(MacアドレスやAndroid Identifierなど)を広告IDが使用できない場合に(Android Developer Documentation のこの Targeting devices without an advertising ID の章で示唆されているように)広告IDのフォールバックとして使用するためにTapjoyサーバーに送ります。このフラグがセットされた場合、永続的な識別子は広告IDがSDKで使用できない場合にのみ広告追跡目的でのみTapjoyサーバに送信します。
    • DISABLE_ANDROID_ID_AS_ANALYTICS_ID connect フラグと同様のチェックバックスはありません。(このフラグがセットされると、Tapjoy がアナリティクス目的で使用するIDはAndroid IDの複製ではなく、ランダムに生成された文字列となります。このフラグを設定するように以前のビルドから変更したビルドをリリースした場合、Tapjoyのアナリティクスでは新規ユーザとして認識される場合があります)。このフラグを設定したい場合、Tapjoy Unity マニュアル connect を選択し、 DISABLE_ANDROID_ID_AS_ANALYTICS_ID フラグを設定する必要があります。
  • デバッグモードの使用可否設定 本番リリース時は無効にしてください。

また、AndroidManifest設定等のTapjoy実装の状態も確認できます。

Tapjoy SDKが動作するためにはTapjoyComponentがアタッチしたTapjoyUnity GameObjectが必要です。 Tajoy Windowの"Fix"ボタンを押して、必要なGameObjectを自動的に追加できます。Tapjoy GameObjectはアプリの最初に表示されるシーンに設定して下さい。

Tapjoyの設定ができれば、アプリケーションのビルドと実行が可能です。

これで、Tapjoyがアプリで動くようになりました。

ユーザー レベル の最大値

Tapjoy にゲーム内でのレベルの最大値を伝えられます。この値は Connectの前、および後で設定できます。

Tapjoy.SetMaxLevel(10); 

ユーザー セグメント

setUserSegmentを呼び出して、ユーザーのセグメントを知らせられます。この値は Connectの前、および後で設定できます。

Tapjoy.SetUserSegment(TJSegment.VIP);
Tapjoy.SetUserSegment(TJSegment.Payer);
Tapjoy.SetUserSegment(TJSegment.NonPayer);
Tapjoy.SetUserSegment(TJSegment.Unknown); 

A. 手動connect

Unity SDKでは初期化(connect)のステップをコードで制御可能です。デフォルトではSDKはconnectを自動的に呼び出します。コードで制御する場合には、まずTapjoy 設定ウィンドウ (Window > Tapjoy) の "Auto-Connect" チェックボックスを外します。

このオプションのチェックが外れると、SDKは自動的にconnect処理を行わなくなります。プラットフォームネイティブのSDKと同様に、connectを実装コードから呼び出す必要があります。

アプリケーションが起動したら、 Connect を呼んでSDKとTapjoyサーバの初期化処理を行う必要があります。Connectには二種類のメソッドがあります。一つ目はSDK Keyを文字列として受け取るものです。アプリが複数プラットフォームに対応している場合、下記のように描くプラットフォーム用のSDK Keyが正しく呼び出されるようにする必要があります。

#if UNITY_ANDROID
    Tapjoy.Connect("your_android_sdk_key");
#elif UNITY_IOS
    Tapjoy.Connect("your_ios_sdk_key");
#endif

もう一つのConnectメソッドはstring/stringのDictionaryを二つ目の引数として取ります。DictionaryオブジェクトはプラットフォームのネイティブSDKのconnectFlagsと同様に動作します。

Dictionary<string,string> connectFlags = new Dictionary<string,string>();
connectFlags.Add("TJC_OPTION_USER_ID", "<USER_ID_HERE>");

#if UNITY_ANDROID
  Tapjoy.Connect("your_android_sdk_key", connectFlags);
#elif UNITY_IOS
  Tapjoy.Connect("your_ios_sdk_key", connectFlags);
#endif

SDKの機能(広告のロードなど)を呼び出す前に、SDKのconnect処理は完了していなければなりません。connect処理に対応するイベントのデリゲートが二種類、OnConnectSuccessとOnConnectFailureがあります。デリゲート関数を作成してconnectイベントをリスンして下さい。OnConnectSuccessが呼ばれれば、他のSDK機能を使用できるようになります。

SDKがconnectに失敗した場合、Connect()をパラメータなしで呼び出してリトライする事もできます。これによりSDKは最後に試したSDK Keyを使用してリトライを行います。

B. コールバック。

SDKは動作するようになったので、ベスト・プラクティスに従ってコードを書いて行きましょう。Tapjoy SDKに広告のリクエストをしたりデータを送る前に、Tapjoy SDKが正常にTapjoyサーバに"connect" する初期化処理が終了している必要があります。 SDK は OnConnectSuccess デリゲートを用意しており、SDKのconnectが成功すると呼ばれます。SDKのconnectが成功するまで、広告のリクエストやイベントを送信してはなりません。 OnConnectWarning コールバックは connect の際に致命的でない問題が発生した場合に呼び出されます(その後に OnConnectSuccess も更に呼び出されます)。現時点ではこの機能は ConnectFlags で指定した UserId に問題がある場合にのみ呼び出されます。

Tapjoy.OnConnectSuccess += HandleConnectSuccess;
...

public void HandleConnectSuccess() {
    Debug.Log ("Connect Success");

    // connectが正常に終了したので、プレイスメントのプリロードを行えます。
    TJPlacement p = TJPlacement.CreatePlacement("my_placement");
    p.RequestContent();
}

Tapjoy.OnConnectWarning += HandleConnectWarning;
...

void HandleConnectWarning(int code, string message)
{
    
}

Tapjoy.OnConnectFailed += HandleConnectFailed
...

public void HandleConnectFailed(int code, string message){

}

Tapjoyの初期化処理が終了したかは、Tapjoy.isConnected の値でチェックする事もできます。