Unity Level Play + Tapjoy オファーウォール 実装・移行ガイド

  1. まず、ironSource Tapjoyアダプタを実装します。 podfile に下記のようにアダプタを記述します:
maven { url "https://sdk.tapjoy.com/"}
implementation 'com.ironsource.adapters:tapjoyadapter:4.1.23'
implementation 'com.tapjoy:tapjoy-android-sdk:12.11.1'

最新のアダプタバージョンはこちらをご参照ください。

  1. 追加内容にはアダプターだけではなくTapjoy SDKも含まれます。 このため、Level Play を通じたTapjoy動画の利用だけでなく、Tapjoy SDKの機能を直接呼び出せるようになり、Tapjoy のオファーウォールの表示もできるようになります。まず、Tapjoyをアプリのクラスにインポートします:
import com.tapjoy.Tapjoy;
  1. 次に、Tapjoy SDKを初期化します。初期化が成功(または失敗)するとコールバックが呼ばれます。成功のコールバックが呼ばれるまでは、Tapjoy SDKのどのような機能の呼び出しもしないで下さい。 初期化の際に、Tapjoyオファーウォールを使用するユーザーのユーザーIDをUSER_ID コネクトオプションを使用して指定します。ここで指定したユーザーIDは、成果達成時のコールバックの際に送信されるパラメータとして通知されます。必ずユーザーの識別が可能なIDを指定するようにして下さい。
Hashtable<String, Object> connectFlags = new 
Hashtable<String, Object>();
connectFlags.put(TapjoyConnectFlag.USER_ID, "USER_ID_GOES_HERE");

Tapjoy.connect(getApplicationContext(), "TJ_SDK_KEY", connectFlags, new TJConnectListener() {
  @Override
  public void onConnectSuccess() {

  } 
      
  @Override
  public void onConnectFailure() {

  }
});
  1. クラス変数を二つ定義します:
private TJPlacementListener placementListener = this;
private TJPlacement placement;
  1. 次に、プレイスメント オブジェクトを作成します。プレイスメントはTapjoyダッシュボード上で設定し、オファーウォール コンテンツカードを含むようにして下さい。この例では、プレイスメント名を ‘Offerwall’ としたものと想定しています。実際には好きな名称を付けて良いのですが、コード内の名前はダッシュボードのものと完全に一致させなくてはなりません。
placement = Tapjoy.getPlacement("Offerwall", placementListener);
  1. これでプレイスメントにリクエストをする準備ができました。リクエストによりプレイスメントの読み込みが始まるため、表示を行うまでに準備がととのいます。オファーウォールのプレイスメントは通常素早く読み込まれますが、オファーウォールを表示する時点よりも前もってリクエストをする事をおすすめします。
placement.requestContent();
  1. 下記の各種コールバックを実装して下さい。
public void onRequestSuccess(TJPlacement placement); 
public void onRequestFailure(TJPlacement placement, TJError error);
public void onContentReady(TJPlacement placement); 
public void onContentShow(TJPlacement placement);
public void onContentDismiss(TJPlacement placement);
public void onPurchaseRequest(TJPlacement placement, TJActionRequest request, String productId);
public void onRewardRequest(TJPlacement placement, TJActionRequest request, String itemId, int quantity);
public void onClick(TJPlacement placement);

ironSourceのオファーウォールを実装されている場合、これらのいくつかのコールバックは(OfferwallListener による)実装済みのもので置き換えられます。カスタムコードのTapjoyコールバックへの移植を容易にするために、下記のテーブルにコールバックの対応を示します:

ironSource Callback Tapjoy Callback
onOfferwallOpened onContentShow
onOfferwallClosed onContentDismiss
onOfferwallAvailable onContentReady

onRequestSuccess はコンテンツのリクエストの応答がTapjoyのサーバからあった場合に呼ばれます。 onContentReady はコンテンツ(オファーウォール)が表示できるようになったときに呼ばれます。 この時点でオファーウォールを表示しても良いですし、必要時に表示可能というフラグを立てる事もできます。

  1. オファーウォールのプレイスメントを表示するには、コンテンツが表示可能かをチェックし、 showContent を呼びます:
if(placement.isContentReady()) {
  placement.showContent();
}

ironSourceのオファーウォールをご利用の場合は以下の実装部分を置き換えられます:

IronSource.showOfferwall();
  1. ユーザーがオファーウォールを閉じた場合、コンテンツを再度リクエストします。同じプレイスメントを複数回呼び出す事はできません。 onContentDismiss コールバックでプレイスメントをリクエストする事をおすすめします。これにより、ユーザーが次にリクエストする時点で再度表示が可能になります。

  2. ironSourceオファーウォールをご利用の場合、その他のironSourceオファーウォールのコードを削除可能です。例えば、ironSourceのオファーウォール用リスナーをセットする必要はありませんし、 “OfferwallListener” を実装していた場合には参照を削除できます。

プライバシー

ironSource LevelPlay をご利用の場合、LevelPlay API を使用して Tapjoy に下記のプライバシー フラグ を伝達できます:

  1. GDPR 同意
  2. USの週によるプライバシー関連法律に基づく、個人情報の売買または共有のオプトアウト
  3. 特定のエンドユーザーを子供としてフラグ付けをする。 注意: COPPA の元でアプリの主要なユーザーが子供である場合には、すべてのエンドユーザーを子供としてフラグ付けする必要があります。

また、アプリが Google Play の "Designed for Families" プログラムに入っている場合、または Google Play の "Family" セクションに表示される場合、アプリの全てのユーザーを子供としてフラグ付けをし、Tapjoy SDK の この API を使用してユーザーのGAIDを収集しないようにして下さい。

ironSrouce LevelPlay をご利用でない場合や、Tapjoy SDK を個別に設定した場合は、Tapjoy に適切なプライバシーフラグを伝えるために これらのガイドライン をご参照ください。