手動実装

1. SDKダウンロード

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

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

ダウンロードしたSDKを解凍すると、docs, libraries, TapjoyEasyapp のフォルダができます。

  1. tapjoyconnectlibrary.aar ファイルをプロジェクトの /lib フォルダにコピーします(フォルダが存在しない場合は作成してからコピーします)
  2. Tapjoyをアプリの build.gradle に追加します:
  dependencies {
    implementation files('libs/tapjoyconnectlibrary.aar')
  }
  1. Google Play Service を build.gradle に追加します:
repositories {
  maven {
    url 'https://maven.google.com/'
    name 'Google'
  }
}
dependencies {
  implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
}

PermissionとActivityの追加

以下の Permission を設定します:

  • ACCESS_WIFI_STATE(任意)

AD_ID と Google Play ファミリー向けプログラム

play-services-ads v17.1.0 は AD_ID パーミッションを含みますが、このパーミッションは Google Play ファミリー向けプログラム に加入している場合には削除しなければなりません。

マニフェストに以下の記述を追加すれば、このパーミッションを排除できます:

  <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

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

JAR による実装

AARではなくJARによるSDK実装を行う場合、以下のパーミッションおよびアクティビティが追加で必要になります。

  • INTERNET
  • ACCESS_NETWORK_STATE
  <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"/>

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.TJWebViewActivity"
   android:configChanges="orientation|keyboardHidden|screenSize"
   android:theme="@style/TranslucentTheme"
   android:hardwareAccelerated="true" />

<activity
    android:name="com.tapjoy.TJAdUnitActivity"
    android:enableOnBackInvokedCallback="false"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@style/TranslucentTheme"
    android:hardwareAccelerated="true"
    tools:ignore="UnusedAttribute" />

<activity
    android:name="com.tapjoy.TJWebViewActivity"
    android:enableOnBackInvokedCallback="false"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@style/TranslucentTheme"
    android:hardwareAccelerated="true"
    tools:ignore="UnusedAttribute" />

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

  android:configChanges="orientation|keyboardHidden|screenSize"

この時点でプロジェクトのコンパイルが可能です。アプリをコンパイル、実行してアプリが正常に動作する事を確認してみるのも良いかもしれません。まだアプリのコードに何も手を入れていないため、アプリにエラーが発生したり動作が変わる事もないはずです。

3. Tapjoy Connect実装

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

Tapjoy connect の実装は非常に重要です。この実装が正常に行われていない場合、Tapjoyの機能がいっさい動作しなくなるからです

Tapjoy connect を実装するためには、実装を行うアプリのTapjoy SDK Keyが必要になります。この値を取得するには Tapjoyダッシュボードで実装するアプリを選択肢、"設定" - "アプリ設定" をクリックします。画面下部の SDK Keyの箇所に各プラットフォームのSDK Keyが表示されています。

コードを実装して行きます。 Tapjoy を Activity にインポートします:

java
  import com.tapjoy.Tapjoy

次に、メイン Activity の onCreate() メソッドに Tapjoy connect を実装します:

java
  Hashtable<String, Object> connectFlags = new Hashtable<String, Object>();
  connectFlags.put(TapjoyConnectFlag.ENABLE_LOGGING, "true"); // プロダクション用アプリではこの設定を外す事
  connectFlags.put(TapjoyConnectFlag.USER_ID, "USER_ID_GOES_HERE"); // 自社管理仮想通貨では必須

Tapjoy.connect(getContext().getApplicationContext(), "SDK_KEY_GOES_HERE", connectFlags, new TJConnectListener() {
    @Override
    public void onConnectSuccess() {
        
    }    
    @Override
    public void onConnectWarning(int code, String message) {
      
    }
    @Override
    public void onConnectFailure(int code, String message) {
        
    }    
}); 

このコードでは、Tapjoy に connect をし(て成功、失敗、および警告のコールバックをリスニングし)、ふたつの connectFlags (ログおよびユーザID) を設定しています。onConnectSuccess は SDK が Tapjoy サーバへの接続が成功した事を示します。 connect が成功しつつも致命的でない問題が発生している場合は、先に onConnectWarning を呼びだします。現時点ではこの機能は ConnectFlags で指定した UserId に問題がある場合にのみ呼び出されます。サーバへの接続が成功しなかった場合は、 onConnectFailure が呼び出されます。

パブリッシャーにとって ENABLE_LOGGING および USER_ID の二つが重要かつ有用なフラグです。

ログ用フラグはデバッグ用ビルドでは有用ですが、製品版では無効にしておく必要があります。

USER_ID フラグを設定する事は自社管理仮想通貨を使用する場合には非常に重要です。この値はどのプレイスメントを呼び出すより前に設定する必要があるため、connect で設定する事は重要で、リワードでの問題が発生する可能性を回避できます。

いくつかのコネクトフラグは、TapjoyがAndroid OSから得られる各種IDをどのように使用するかをパブリッシャーが制御できます:

  • ALLOW_LEGACY_ID_FALLBACK (SDK 12.2.1 以降で使用可能) ラグがセットされた場合、Tapjoy SDK は広告IDが使用できない場合、永続IDを広告用途で使用します。
  • DISABLE_ADVERTISING_ID_CHECK デフォルトでは、TapjoyのAndroid SDKは Google Advertising Identifier が利用できるかを確認し、利用できない場合には初期化が失敗します。 このフラグを設定すると、Tapjoy SDK は Google Advertising Identifier が利用可能かのチェックを行わないため、利用できない場合でも初期化が行われます。 これは、Google Play ストア以外のストアなど、Google Play Servicesが存在しない端末があるストアへのリリース用のビルドを作成する時に役に立ちます。

すべてのコネクトフラグについては、Java SDK Reference をご参照下さい。

アプリをコンパイルして、実行してみて下さい。

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