Tapjoy ダッシュボード に、Tapjoy の実装を手順を追って説明する 実装ガイド が組み込まれました。従来通り、この実装ガイドにしたがって実装を進める事も可能です。最後に登録したアプリの実装ガイドを直接参照するか、Tapjoy ダッシュボードでアプリを選択し、「ツール」メニューのドロップダウンから「実装方法」を選択してください。
まず、Unity SDK をダウンロード します。
Tapjoy Unity Plugin zip ファイルにはインポート用のUnity packageファイルと、ファイルをドラッグ&ドロップしてTapjoyのアップデート等を行うのためのパッケージ化していないファイルが含まれています。TapjoyUnityPlugin_vVERSION.unitypackage
をインポートするには:
TapjoyUnityPlugin_vVERSION.unitypackage
ファイルを指定します。Tapjoy SDK 12.8.0 以降から、External Deendency Manager経由でCocoapodsを使って管理されています。Cocoapods のバージョンが 1.9.0 以上で、 XCode のバージョンが 11.0 以上である事を確認して下さい。
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 を新規にインポートした場合は、このボタンは表示されません。
ACCESS_WIFI_STATE
をオプションで manifestファイルに追加できます:
<manifest ...>
...
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
...
</manifest>
Tapjoy Windowをご利用ください。Windoe > TapjoyでTapjoyを開きます。
Tapjoy Windowで下記を編集してください:
また、AndroidManifest設定等のTapjoy実装の状態も確認できます。
Tapjoy SDKが動作するためにはTapjoyComponentがアタッチしたTapjoyUnity GameObjectが必要です。 Tajoy Windowの"Fix"ボタンを押して、必要なGameObjectを自動的に追加できます。Tapjoy GameObjectはアプリの最初に表示されるシーンに設定して下さい。
Tapjoyの設定ができれば、アプリケーションのビルドと実行が可能です。
Tapjoy ダッシュボードで 画面上部のナビゲーションバーにある"アナリティクス" をクリックし、画面左の "リアルタイムレポート"タブをクリックして表示される画面で"アクティブユーザー数"が反映されるはずです。
これで、Tapjoyがアプリで動くようになりました。
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を使用してリトライを行います。
SDKは動作するようになったので、ベスト・プラクティスに従ってコードを書いて行きましょう。Tapjoy SDKに広告のリクエストをしたりデータを送る前に、Tapjoy SDKが正常にTapjoyサーバに"connect" する初期化処理が終了している必要があります。 SDK は OnConnectSuccess
デリゲートを用意しており、SDKのconnectが成功すると呼ばれます。SDKのconnectが成功するまで、広告のリクエストやイベントを送信してはなりません。
Tapjoy.OnConnectSuccess += HandleConnectSuccess;
...
// Connect success
public void HandleConnectSuccess() {
Debug.Log ("Connect Success");
// connectが正常に終了したので、プレイスメントのプリロードを行えます。
TJPlacement p = TJPlacement.CreatePlacement("my_placement");
p.RequestContent();
}
Tapjoyの初期化処理が終了したかは、Tapjoy.isConnected
の値でチェックする事もできます。