まず、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 にゲーム内でのレベルの最大値を伝えられます。この値は Connectの前、および後で設定できます。
Tapjoy.SetMaxLevel(10);
setUserSegment
を呼び出して、ユーザーのセグメントを知らせられます。この値は Connectの前、および後で設定できます。
Tapjoy.SetUserSegment(TJSegment.VIP);
Tapjoy.SetUserSegment(TJSegment.Payer);
Tapjoy.SetUserSegment(TJSegment.NonPayer);
Tapjoy.SetUserSegment(TJSegment.Unknown);
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が成功するまで、広告のリクエストやイベントを送信してはなりません。 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
の値でチェックする事もできます。