クイックスタート

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" ボタンを押してファイルをインポートします。

注: SDK バージョン 11.10.1 より、Tapjoy の .unitypackage には Google Play Services を含めないようになりました. プロジェクトに追加する必要があれば、 {unity-sdk}/Assets/Plugins/Android/google-play-services_lib/ を Unityプロジェクトの Assets/Plugins/Android にコピーして下さい。 アプリが既に Google Play Services を使用している場合には、Tapjoy が使用する com.google.android.gms.play-services-ads が Play Services に含まれているようにして下さい。

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)

以下の Permission を設定します:

  • INTERNET
  • ACCESS_NETWORK_STATE
  • ACCESS_WIFI_STATE(任意)
<manifest ...>
  ...
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  ...
</manifest>

Tapjoy の SDK 最新バージョン の機能を使うために、以下のアクティビティを AndroidManifest.xml の Application 部分に追加します:

<activity
  android:name="com.tapjoy.TJAdUnitActivity"
  android:configChanges="orientation|keyboardHidden|screenSize"
  android:hardwareAccelerated="true"
  android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
<activity
  android:name="com.tapjoy.TJContentActivity"
  android:configChanges="orientation|keyboardHidden|screenSize"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:hardwareAccelerated="true" />

また、アプリのアクティビティのマニフェストに同様の configChanges を指定するようにして下さい:

  android:configChanges="orientation|keyboardHidden|screenSize"

Google Play Servicesを利用するためには下記も必要です:

<meta-data
  android:name="com.google.android.gms.version"
  android:value="@integer/google_play_services_version" />

3. Tapjoy Connect の実装

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

image_title

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

  • SDK Key の設定 (AndroidとiOS)
  • FCMプッシュ通知用 Sender ID (Android)
  • Android マーケット用のストア名の設定 (Google、 Amazon 等)
  • Google Advertising ID、 Persistent ID、およびIDFAの使用可否設定
    • Disable Advertising Id: このチェックボックスはAndroidで DISABLE_ADVERTISING_ID_CHECK フラグを設定するのと同様です。Tapjoy SDKはデフォルトではGoogle Advertising Identifierが取得できるかを確認し、取得できない場合には初期化を中断します。このチェックボックスを有効にすると、Tapjoy SDKは Google Advertising Identifierが存在しない場合でも初期化を完了します。Google Play ストア以外のマーケット用のアプリなど、Google Play Servicesが有効でないアプリでは有用です。
  • デバッグモードの使用可否設定 本番リリース時は無効にしてください。

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

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

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

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

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

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/ObjectのDictionaryを二つ目の引数として取ります。DictionaryオブジェクトはプラットフォームのネイティブSDKのconnectFlagsと同様に動作します。

Dictionary<string,object> connectFlags = new Dictionary<string,object>();
Tapjoy.Connect("sdk_key", connectFlags);

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が成功するまで、広告のリクエストやイベントを送信してはなりません。

Tapjoy.OnConnectSuccess += HandleConnectSuccess;
...
// Connect success
public void HandleConnectSuccess() {
    Debug.Log ("Connect Success");

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

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