# サーバー間のコールバック設定

> 広告の完了時に通知を受け取るようにアプリケーションにサーバー間のコールバックを設定し、バックエンドサーバーを通じてユーザーにゲーム内報酬を付与できるようにします。

LevelPlay 報酬ベースの広告ユニットは、広告完了イベントの成功後にユーザーに付与する必要があるゲーム内報酬を通知するサーバー側のイベントをサポートします。

> **Note:**
>
> クライアント側のイベントを使用して、広告完了イベントの成功後にゲーム内報酬をユーザーに付与することもできます。

## 前提条件##prerequisites

コードにサーバー間の[コールバックハンドラ](/grow/levelplay/platform/settings/event-handlers.md)を実装していることを確認します。

サーバー間のコールバックを使用して、広告完了通知を受け取ることができます。これは、終了サーバーを使用してアプリケーションデータを管理している場合に推奨されるプロセスです。各広告の完了後にコールバックを送信し、終了ユーザーに付与する必要がある報酬タイプと金額をサーバーに通知します。

## サーバー間のコールバックを有効にする##enable-server-to-server-callbacks

1. Unity LevelPlay アカウントにサインインします。
2. 左側のナビゲーション メニューで、**Apps** セクションに移動します。
3. アプリケーションのリストから、サーバー間コールバックを有効にするアプリケーションの横にあるアクション ボタンを選択し、**Set S2S callback** を選択します。
4. Create S2S reward コールバック (S2S 報酬コールバックの作成) ページで、サーバー間のコールバックを有効にするために必要な情報を入力します。
5. **コールバック URL** フィールドで、ユーザーが広告単位を完了した後に送信される LevelPlay のコールバックを作成します。例えば、`http://www.mysite.com/granting.php?userid=\\\[USER\\_ID]\\\&rewards=\\\[REWARDS]\\\&eventId=\\\[EVENT\\_ID)`
6. 任意: 秘密鍵を追加します。秘密鍵は、ユーザーと LevelPlay だけが知っている文字列で、保護レイヤーが追加になります。
7. parameters (パラメーター) セクションで、ドロップダウンメニューを選択し、コールバックバックに含める任意のパラメーターを選択します。任意のパラメーターを選択すると、それらはコールバック URL に自動的に表示されます。
8. コールバック test (コールバックテスト) セクションで、コールバックをテストするための ユーザー ID (ユーザー ID) と Reward (報酬) の金額を入力します。任意のフィールド（オークション ID、広告ネットワークワーク、キー名、配置名）を入力することもできますが、コールバックをテストするために必須ではありません。
   > **Note:**
   >
   > S2Sコールバックをアクティベートするには、サーバーがコールバックを受信し、受信を確認する必要があります。
9. **Save** (保存) を選択します。
   > **Note:**
   >
   > 推奨されるベストプラクティスは、保存する前にコールバックをテストすることです。

コールバックバックは即座にアクティベートされます。**Apps ページ**でコールバックの状態を確認できます。

## 必須パラメーター##mandatory-parameters

以下のリストは、コールバック文字列に含める必要のある必須パラメータを示しています。

* \[USER\_ID]:アプリケーションのユーザーの一意の識別子。システムは、これを使用して、広告が正常に終了したときに報酬を与えるユーザーを決定します。
* \[REWARDS]:ユーザーに報酬を与えるクレジット ユニットの数。
* \[EVENT\_ID]:ironsource によって生成される、完了したイベントの一意の識別子。このイベントでユーザーに報酬をまだ与えていないことを確認できます。

## 任意パラメータ##optional-parameters

以下のリストは、必要に応じて内部で使用できる任意のパラメータの詳細を示します。

* \[AUCTION\_ID]:オークションの一意の識別子。
* \[AD\_NETWORK]:プロバイダー名を指定します（例えば、Vungle)。
* \[APP\_KEY]:LevelPlay ページに表示される アプリケーション キー。
* \[ITEM\_NAME]:仮想項目名。ゲーム内通貨ではなく仮想項目の場合。
* \[PLACEMENT\_NAME]:配置名。

> **Note:**
>
> カスタムパラメーターを使用することもできます。これらのプレースホルダーは追加する必要はありません。コールバック URL にプレフィックス **custom\_** を付けて表示されます。

## 秘密鍵による署名の検証##signature-validation-with-private-key

署名は、以下の MD5 を表します。

```text
md5(\[タイムスタンプ\]\[イベント ID\]\[ユーザー\_ID\]\[ゲーム内報酬\]\[プライベートキー\_キー\])。
```

秘密鍵は自身と Ironsource だけが知っている文字列で、他のすべての署名コンポーネントは URL の一部です。秘密鍵は、署名の複製が困難になるため、セキュリティを強化するために追加されます。

* コミッションイベントが生成されるたびに、Ironsource サーバーはコールバック URL を呼び出し、関連するユーザーのクレジット情報として必要な情報を提供します。
  * システムは、HTTP 反応のどこかに「**［イベント ID］：OK**」文字列が含まれる状態 200（OK）の有効な HTTP 反応を受信するまで、すべてのコミッションに対してこの URL を定期的に呼び出し続けます。
  * 以下は、一般的な反応の例です。`<status> dae8e6cf42b1357f8652ad6ecb5b24f1:OK</status>`
* Ironsource は再試行とタイムアウトのポリシーを管理し、通信の一時的な失敗に結果てコミッションイベントが失われないようにします。
  * 反応は 400 ミリ秒以内に送信する必要があります。400 ミリ秒以内に送信しないと、再試行メカニズムを初期化するコールバックバックでタイムアウトが発生します。
  * タイムアウトは "slow callbacks キュー" に表示され、すべてのコールバックは 20 秒以内に応答できます。
  * 最初のコールバックから 24 時間以内に 20 件の退職が送信され、その後 7 日間は 1 日に 1 回の再試行が行われます。
