# Offerwall 移行ガイド

> Offerwall 移行ガイドに従って、ironSource から Tapjoy に移行します。

1. Unity Offerwall アダプターを統合します。これは、ironSource メディエーションマネージャーウィンドウを使用してプロジェクトに追加できます。

2. Offerwall Unity プラグインを追加します。これにより、C# コードから Offerwall SDK メソッドにアクセスできるようになります。

Tapjoy Unity プラグインは、External Dependency Manager を使用して Offerwall iOS SDK のコピーをインストールし、Tapjoy Android SDK のコピーを組み込みます。ステップ 1 でアダプターを使用して SDK をすでに追加しているため、2 番目のコピーは組み込む必要はありません (ブリッジコードのみ必要)。*/Assets/Tapjoy/Editor* で `TJPluginDependencies` ファイルに変更を加え、iOS 参照を削除し、Android Unity Bridge のみを組み込みます。ファイルのコンテンツを以下に置き換えます。

```xml
<dependencies>
<androidPackages>
    <repositories>
      <repository> https://sdk.tapjoy.com</repository>
    </repositories>
    <androidPackage spec="com.tapjoy:tapjoy-android-unitybridge:12.11.1@aar"/>
  </androidPackages>
</dependencies>
```

3. Offerwall SDK の関数を直接呼び出します。これは、Tapjoy Offerwall を表示するのに必要な作業です。最初に、以下を実行して Tapjoy をクラスにインポートする必要があります。

```csharp
import TapjoyUnity
```

4. Offerwall SDK を初期化します。これが成功 (または失敗) したときにコールバックを受け取り、成功コールバックを受け取るまで Offerwall SDK を呼び出す必要はありません。

```csharp
#if UNITY_ANDROID
  Tapjoy.Connect("your_android_sdk_key");
#elif UNITY_IOS
  Tapjoy.Connect("your_ios_sdk_key");
#endif
```

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

```csharp
TJPlacement placement = TJPlacement.CreatePlacement("Offerwall");
```

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

```csharp
placement.requestContent();
```

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

```csharp
TJPlacement.OnRequestSuccess += HandlePlacementRequestSuccess;
TJPlacement.OnRequestFailure += HandlePlacementRequestFailure;
TJPlacement.OnContentReady += HandlePlacementContentReady;
TJPlacement.OnContentShow += HandlePlacementContentShow;
TJPlacement.OnContentDismiss += HandlePlacementContentDismiss;
```

これらの中には、すでに実装済みの ironSource のコールバックに置き換わるものもあります。以下の表は、対応するコールバックを示しています。これにより、カスタムロジックを適切な Tapjoy コールバックに簡単に変えることができます。

| ironSource コールバック         | Tapjoy コールバック    |
| ------------------------- | ---------------- |
| onOfferwallClosedEvent    | OnContentDismiss |
| onOfferwallOpenedEvent    | OnContentShow    |
| onOfferwallAvailableEvent | OnContentReady   |

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

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

```csharp
if (placement.IsContentReady()) {
  placement.ShowContent();
}
```

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

```csharp
IronSource.Agent.showOfferwall();
```

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

10. これで、残りの ironSource Offerwall コードを削除できます。

### プライバシー##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 と共有します。
