# Adobe AIR のリワード広告インテグレーション

> LevelPlay SDK を使用して、イベントリスナーや広告配置設定などの動画リワード広告を Adobe AIR アプリケーションに統合します。

## 前提条件##prerequisites

ironsource Adobe AIR プラグインが正しく統合されていることを確認します。インテグレーションの概要は[こちら](/grow/levelplay/sdk/adobe/air-plugin-integration.md)です。

## ステップ 1. 動画リワードリスナーの実装##step-1.-implement-the-rewarded-video-listener

ironsource AIR プラグインは、広告の可用性を知らせるためにいくつかのイベントを発生させます。イベントをリッスンするには、以下のメソッドを呼び出します。

```text
IronSource.instance.addEventListener( "EventName", functionToCall  );
```

* **EventName** は、リッスンするイベントを含む文字列です。
* **functionToCall** は、イベントが発生したときに呼び出す機能です。

プラグインは、以下のすべての可能なイベントをリスナーに通知します。

```java
IronSource.instance.addEventListener("levelPlayRewardedAvailable", levelPlayRewardedAvailable);
IronSource.instance.addEventListener("levelPlayRewardedAdUnavailable", levelPlayRewardedAdUnavailable);
IronSource.instance.addEventListener("levelPlayRewardedAdOpened", levelPlayRewardedAdOpened);
IronSource.instance.addEventListener("levelPlayRewardedOnAdRewarded", levelPlayRewardedOnAdRewarded);
IronSource.instance.addEventListener("levelPlayRewardedAdShowFailed", levelPlayRewardedAdShowFailed);
IronSource.instance.addEventListener("levelPlayRewardedVideoAdClicked", levelPlayRewardedVideoAdClicked);
IronSource.instance.addEventListener("levelPlayRewardedAdClosed", levelPlayRewardedAdClosed);
```

プラグインは、以下のすべての可能なイベントをリスナーに通知します。

```java
private function levelPlayRewardedAdOpened(event:Event):void {
   //level Play Rewarded Ad Opened
}
private function levelPlayRewardedOnAdRewarded(event:Event):void {
   //level Play Rewarded On Ad Rewarded
}
private function levelPlayRewardedAdShowFailed(event:Event):void {
   //level Play Rewarded Ad Show Failed
}
private function levelPlayRewardedVideoAdClicked(event:Event):void {
   //level Play Rewarded Video Ad Clicked
}
private function levelPlayRewardedAdClosed(event:Event):void {
   //level Play Rewarded Ad Closed
}
private function levelPlayRewardedAdUnavailable(event:Event):void {
   //level Play Rewarded Ad Unavailable
}
private function levelPlayRewardedAvailable(event:Event):void {
   //level Play Rewarded Available
}

```

Ironsource は、インテグレーション中または本番稼働中に発生する可能性のあるエラーを理解するのにヘルプエラーコードメカニズムを提供します。以下のように DataEvent オブジェクトからデータを抽出します。

```java
var errorCode:String;
var errorDescription:String;
                
if(event.data){
   var error:Object = JSON.parse(event.data);
   errorDescription = error.error_description;
   errorCode = error.error_code;
}
```

ironsource エラーコードの詳細な説明は[、こちら](/grow/levelplay/sdk/adobe/additional-settings.md)を参照してください。

## ステップ 2. 動画広告をユーザーに表示する##step-2.-show-a-video-ad-to-your-users

### 広告の可用性##ad-availability

Rewarded Video Listener とその機能を正しく実装することで、**levelPlayRewardedAvailable** を通じて可用性の状態を受け取ることができます。その後、広告の可用性が変更されると、以下のデリゲート機能で通知されます。

```java
private function levelPlayRewardedAvailable(event:Event):void { 
}
```

以下の行で、DataEventオブジェクトからRewarded Videoの可用性を確認します。

```java
event.data == “true/false”
```

または、以下を呼び出して広告の可用性を直接リクエストすることもできます。

```java
IronSource.instance.isRewardedVideoAvailable()
```

### 動画広告の配信##serve-video-ad

広告ネットワークに使用可能なビデオがある場合は、このビデオ広告をユーザーに見せる準備ができます。これは、ユーザーに動画広告の視聴を促すトリガーを挿入する理想的な瞬間です。**ironsource** インスタンスで **showRewardedVideo（）** メソッドを呼び出すと、ユーザーにビデオ広告を表示できます。

```java
IronSource.instance.showRewardedVideo();
```

#### 広告プレースメント##ad-placements

LevelPlay の広告プレースメントでは、動画リワード体験をカスタマイズおよび最適化できます。このツールを使用すると、報酬に応じてさまざまなプレースメントからユーザーにビデオを提示できます。以下の機能を使用して、広告を表示する正確な配置を定義できます。

ironsource インスタンスで **showRewardedVideo（）** メソッドを呼び出すことで、動画広告をユーザーに表示し、表示する広告の配置を正確に定義できます。この配置の報酬設定は Ironsource サーバーから取得されます。

```java
IronSource.instance.showRewardedVideo(YOUR_PLACEMENT_NAME);
```

報酬情報など、各広告配置に関連付けられている詳細を取得するには、以下の呼び出します。

```java
function getRewardedVideoPlacementInfo(placementName:String):String {}
```

### Capping & Pacing (キャッピングとペーシング)##capping-&-pacing

LevelPlay の広告プレースメントに加えて、選択したプレースメントの上限とペーシングを設定できるようになりました。制限とペーシングは、定義された期間内に配信される広告の量を制限することで、アプリケーションのユーザー エクスペリエンスを向上させます。

リワード型動画に上限設定とペーシング ツールを使用することを選択した場合は、次のメソッドを呼び出して、特定の配置が広告の制限に達しているかどうかを確認することをお勧めします。これは、配置に上限やペースが設定されている場合に動画リワードボタンが表示されず、動画広告が配信されないようにするためです。

```java
var isPlacementCapped:ブーリアン = Ironsource.instance.isRewardedVideoPlacementCapped(YOUR_配置_NAME);
```

### Dynamic UserId##dynamic-userid

動的ユーザー ID は AdRewarded トランザクションを検証するパラメーターで、セッション全体を通じて変更できます。このパラメーターは、[サーバー間](/grow/levelplay/platform/settings/server-to-server-callback.md)の広告リワード コールバックを通じて受信され、showRewardedVideo を呼び出す前に設定する必要があります。

* 文字列 値は 1 \~ 64 文字の英数字でなければなりません
* コールバックURLで報酬の詳細とともに`dynamicUserId`パラメーターを受け取ります。

```java
IronSource.instance.setDynamicUserId(id);
```

## ステップ 3. ユーザーの報酬##step-3.-reward-the-user

ironsource SDK は、ユーザーがビデオを正常に視聴するたびに **levelPlayRewardedOnAdRewarded** イベントを発生させます。**levelPlayRewardedVideoListener** はこのイベントを受け取るために配置され、ユーザーに正常に報酬を与えることができます。

DataEvent オブジェクトから Reward データを抽出するには、次の手順に従います。

```java
var placementId:String;
var placementName:String;
var rewardName:String;
var rewardAmount:int;
                
if(event.data){
   var placement:Object = JSON.parse(event.data);
   placementId = placement.placement_id;
   placementName = placement.placement_name;
   rewardName = placement.placement_reward_name;
   rewardAmount = parseInt(placement.placement_reward_amount);
}
```

**levelPlayRewardedOnAdRewarded** イベントと ****levelPlayRewardedAdClosed**** イベントは非同期です。**levelPlayRewardedAdClosed** イベント後に **levelPlayRewardedOnAdRewarded** が発生した場合でもゲーム内報酬を付与するようにリスナーを設定してください。

```java
private function levelPlayRewardedOnAdRewarded(event:Event):void {
}
```

* LevelPlay アカウントのデフォルト設定では、アプリケーションのクライアント内で **levelPlayRewardedOnAdRewarded** コールバックを使用して、ユーザーの完了/ゲーム内報酬を通知します。さらに、バック終了サーバーへの通知も受信したい場合は、サーバー間のコールバックをオンにできます。
* サーバー間のコールバックをオンにする場合は、同じ完了に対してユーザーに複数回報酬を与えないように注意してください。クライアント側のコールバックとサーバー間のコールバックの両方が発生するため、完了ごとに 2 つの通知を受け取ります。

これで、アプリケーションでリワード型ビデオを配信する準備が整いました。

> **Note:**
>
> これがアプリケーションの新しいインテグレーションである場合、アプリケーションはデフォルトで Ironsource ダッシュボードの '**Test Mode**' になります。アプリケーションがテストモードの間、LevelPlay SDK は SDK プロセスの可視性を高めるために、より多くのログをコンソールに出力します。広告インベントリをテストするには、[テストデバイス](/grow/levelplay/sdk/adobe/integration-testing.md)を設定します。稼働中の広告インベントリをオンにするまで、収益が発生しないテストキャンペーンが配信されます。アプリケーションの広告インベントリを稼働させる準備ができたら、「**Ad Units**」ページで「**Go Live!**」を選択します。

## 次のステップ##next-steps

インテグレーションガイドに従って、メディエーションプラットフォームに追加の動画リワード広告ネットワークを実装するか、追加の広告ユニットを設定します。

* [メディエーション](/grow/levelplay/sdk/adobe/mediation-networks.md)
* [Interstitial (インタースティシャル)](/grow/levelplay/sdk/adobe/interstitial-integration.md)
