# Offerwall 移行ガイド

> 既存の ironSource コールバックを同等の Tapjoy の onContentReady や onContentDismiss などにマッピングすることで、Offerwall ロジックを移行します

1. ironSource Tapjoy アダプターを統合します。これは以下の例のように Gradle ファイルに追加できます。

```java
maven { url "https://sdk.tapjoy.com/"}
implementation 'com.ironsource.adapters:tapjoyadapter:4.1.23'
implementation 'com.tapjoy:tapjoy-android-sdk:12.11.1'
```

アダプターの最新バージョンは [こちら](/grow/levelplay/sdk/android/mediation-networks.md) で確認できます。

2. アダプターと同様に、Offerwall SDK を追加して、Offerwall SDK 関数を直接呼び出しできるようにします。これは、Tapjoy Offerwall を表示するのに必要な作業です。最初に、以下を実行して Tapjoy をクラスにインポートする必要があります。

```java
import com.tapjoy.Tapjoy;
```

3. Offerwall SDK を初期化します。これが成功 (または失敗) するとコールバックを受け取ります。成功コールバックを受け取るまで Offerwall SDK 呼び出しを行わないでください。

```java
Hashtable<String, Object> connectFlags = new 
Hashtable<String, Object>();

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

  } 
      
  @Override
  public void onConnectFailure() {

  }
});
```

4. 2 つの新しいクラス変数を定義します。

```java
private TJPlacementListener placementListener = this;
private TJPlacement placement;
```

5. プレースメントオブジェクトを設定します。プレースメントは Tapjoy ダッシュボードで設定するもので、Offerwall コンテンツカードが含まれます。この例では、プレースメントに ‘Offerwall’ という名前を付けていることを前提としています。実際には任意の名前を付けることができますが、ここでコードで使用する名前はダッシュボードと一致している必要があります。

```java
placement = Tapjoy.getPlacement("Offerwall", placementListener);
```

6. これで、プレースメントをリクエストする準備ができました。この呼び出しにより、表示することを選択したときに準備ができているように、プレースメントをロードします。Offerwall のプレースメントは迅速にロードされますが、この Offerwall を表示することを考えているときは、事前に呼び出しておくことをお勧めします。

```java
placement.requestContent();
```

7. 実装できる幅広いコールバックを用意しています。

```java
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 コールバック    | Tapjoy コールバック    |
| -------------------- | ---------------- |
| onOfferwallOpened    | onContentShow    |
| onOfferwallClosed    | onContentDismiss |
| onOfferwallAvailable | onContentReady   |

`onRequestSuccess` は、Tapjoy のサーバーからコンテンツリクエストが返されたときに呼び出されます。`onContentReady` は、コンテンツ (Offerwall) を表示する準備ができたときに呼び出されます。この時点で、Offerwall を表示するか、フラグを設定して、必要なときに表示できる状態にすることができます。

8. Offerwall のプレースメントを表示するには、以下のようにコンテンツの準備ができていることを確認し、`showContent` を呼び出します。

```java
if(placement.isContentReady()) {
  placement.showContent();
}
```

これは既存の ironSource の呼び出しに置き換わるものです。

```java
IronSource.showOfferwall();
```

9. ユーザーが Offerwall を却下した場合、コンテンツを再度リクエストする必要があります。プレースメントを複数回表示することはできません。`onContentDismiss` コールバックでプレースメントをリクエストし、ユーザーが次回表示することををリクエストしたときにすぐに表示できるようにしておくことをお勧めします。

10. これで、残りの ironSource Offerwall コードを削除できます。例えば、ironsource Offerwall リスナーを設定する必要がなくなり、クラスが `OfferwallListener` を実装している場合は、このリファレンスを削除します。

### プライバシー##privacy

Unity LevelPlay を使用している場合は、LevelPlay API を使用して、以下のプライバシー フラグを Tapjoy と共有できます。

1. [GDPR についての同意](/grow/is-ads/legal-resources/ironsource-gdpr-compliance.md)。
2. 米国の州プライバシー[法に基づく](/grow/is-ads/legal-resources/ironsource-us-state-privacy-laws.md)個人情報の販売または共有のオプトアウト。
3. [特定のエンドユーザー](/grow/is-ads/legal-resources/children-child-directed-apps.md)にお子様のフラグを付ける。アプリが主に COPPA で定めるお子様を対象としている場合は、すべてのエンドユーザーにお子様のフラグを付ける必要があります。

また、アプリが Google Play の Designed for Families プログラムに参加している場合、または Google Play の "ファミリー" セクションに表示されている場合は、アプリのすべてのユーザーに子供のフラグを付け、Offerwall SDK の [この API](../advanced/user-privacy) を使用して、ユーザーの GAID が収集されないように設定してください。

Unity LevelPlay を使用していない場合や、Offerwall SDK を個別に設定する場合は、[こちらのガイドライン](../advanced/user-privacy) に従って、関連するプライバシー フラグを Tapjoy と共有します。
