Unity プラグインの動画リワード実装

Before you start

ironSource Unity プラグインと追加のアドネットワークアダプターがアプリケーションに正しく実装されていることを確認してください。実装の概要はこちら

ステップ 1. 動画リワードイベントを実装する

ironSource Unity プラグインは、広告のアベイラビリティを通知する為にいくつかのイベントを発生させます。

以下のコードを追加してイベントに登録します:

//Add AdInfo Rewarded Video Events
IronSourceRewardedVideoEvents.onAdOpenedEvent += RewardedVideoOnAdOpenedEvent;
IronSourceRewardedVideoEvents.onAdClosedEvent += RewardedVideoOnAdClosedEvent;
IronSourceRewardedVideoEvents.onAdAvailableEvent += RewardedVideoOnAdAvailable;
IronSourceRewardedVideoEvents.onAdUnavailableEvent += RewardedVideoOnAdUnavailable;
IronSourceRewardedVideoEvents.onAdShowFailedEvent += RewardedVideoOnAdShowFailedEvent;
IronSourceRewardedVideoEvents.onAdRewardedEvent += RewardedVideoOnAdRewardedEvent;
IronSourceRewardedVideoEvents.onAdClickedEvent += RewardedVideoOnAdClickedEvent;

プラグインは、以下にリストされているすべての発生しうるイベントをリスナーに通知します:

/************* RewardedVideo AdInfo Delegates *************/
// Indicates that there's an available ad.
// The adInfo object includes information about the ad that was loaded successfully
// This replaces the RewardedVideoAvailabilityChangedEvent(true) event
void RewardedVideoOnAdAvailable(IronSourceAdInfo adInfo) {
}

// Indicates that no ads are available to be displayed
// This replaces the RewardedVideoAvailabilityChangedEvent(false) event
void RewardedVideoOnAdUnavailable() {
}

// The Rewarded Video ad view has opened. Your activity will loose focus.
void RewardedVideoOnAdOpenedEvent(IronSourceAdInfo adInfo){
}

// The Rewarded Video ad view is about to be closed. Your activity will regain its focus.
void RewardedVideoOnAdClosedEvent(IronSourceAdInfo adInfo){
}

// The user completed to watch the video, and should be rewarded.
// The placement parameter will include the reward data.
// When using server-to-server callbacks, you may ignore this event and wait for the ironSource server callback.
void RewardedVideoOnAdRewardedEvent(IronSourcePlacement placement, IronSourceAdInfo adInfo){
}

// The rewarded video ad was failed to show.
void RewardedVideoOnAdShowFailedEvent(IronSourceError error, IronSourceAdInfo adInfo){
}

// Invoked when the video ad was clicked.
// This callback is not supported by all networks, and we recommend using it only if
// it's supported by all networks you included in your build.
void RewardedVideoOnAdClickedEvent(IronSourcePlacement placement, IronSourceAdInfo adInfo){
}

エラーコード

ironSource は、実装中または本番環境で発生する可能性のあるエラーを理解するのに役立つエラーコードメカニズムを提供しています。こちらのガイドをご覧ください。

ネットワーク接続ステータス

ironSource Network Change Status 機能を使用して、ユーザーのデバイスのインターネット接続を判別および監視できます。これにより、SDK はネットワーク状況の変更に応じて広告配信可能な状態を示すアベイラビリティを変更できます。つまり、ネットワーク接続がない場合、アベイラビリティは FALSE になります。この関数のデフォルトは false です。接続の変更をリッスンする場合は、SDK の初期化において次の文字列を使用してアクティベートします:

IronSource.Agent.shouldTrackNetworkState (true);

ステップ 2. ユーザーに動画広告を表示する

広告のアベイラビリティ

onAdAvailableEvent を通じて、動画リワード広告が配信可能な状態を示すアベイラビリティステータスを受け取ります。

また、次の関数を直接呼ぶ事で広告のアベイラビリティを取得することができます:

bool available = IronSource.Agent.isRewardedVideoAvailable();

動画広告を配信する

アドネットワークで利用可能な動画が取得出来たら、この動画広告をユーザーに表示する準備が整いました。ユーザーへ最適な広告体験を提供できる様、広告を表示する前にゲームアクション・オーディオを止める事を忘れないでください。IronSource.Agent インスタンスで showRewardedVideo() メソッドを呼んで、ユーザーに動画広告を表示します:

IronSource.Agent.showRewardedVideo();

広告プレースメント

LevelPlay Ad Placements ツールを使用すると、動画リワード体験をカスタマイズおよび最適化できます。このツールを使用すると、アプリ内のさまざまな場面でユーザーに動画を表示したり、プレースメントごとに報酬や報酬量をカスタマイズすることができます。以下の関数を使用して、広告を表示するプレースメントを指定できます。詳細については、広告プレースメントのドキュメントをご覧ください。このプレースメントのリワード設定は、ironSource サーバーから取得されます:

IronSource.Agent.showRewardedVideo("YOUR_PLACEMENT_NAME");

各広告プレースメントに関連付けられている特定のリワードの詳細を取得するには、次の関数を呼んでください:

Placement placement = IronSource.Agent.getPlacementInfo(placementName);
// Placement can return null if the placementName is not valid.
if(placement != null)
{
    String rewardName = placement.getRewardName();
    int rewardAmount = placement.getRewardAmount();
}
Note: パラメーターとして使用する場合は、プラットフォームに記述されているプレースメント名を使用してください。

キャッピングとペーシング

ironSource SDK を使用すると、広告表示回数上限であるキャップと、広告表示間隔であるペースを広告ユニット、広告プレースメント、またはその両方で設定できます。両方を使用すると、より制限的な設定が適用されます。

広告ユニットで設定:これにより、ユーザーのセッション全体において配信される動画リワード広告の数を制御できます。広告が制限されている場合、広告をロードしようとしても利用可能広告・ロード成功は通知されません。

プレースメントで設定:これにより、アプリ内の各場面(広告枠単位)で最適な数の広告を配信することができます。動画リワードのプレースメントごとにキャッピングおよびペーシング ツールを使用する場合は、以下のメソッドを呼び出して、特定のプレースメントがキャッピングに達しているかどうかを確認することをお勧めします。これは、プレースメントがキャッピングかペーシングに達していて動画広告が配信されない場合に、動画リワードボタンを表示しないようにするためです。

bool isRewardedVideoPlacementCapped(string placementName);

キャッピングとペーシングについての詳細は、こちらをご覧ください。

ダイナミックユーザー ID

ダイナミックユーザー ID は、AdRewarded トランザクションを検証するためのパラメーターであり、セッション全体を通して変更できます。サーバー間コールバックを介してこのパラメーターを受け取るには、showRewardedVideo を呼び出す前にパラメーターを設定する必要があります。これにより、リワードの詳細を含む dynamicUserId パラメーターをコールバック URL で受け取ります。

boolean setDynamicUserId(String dynamicUserID);

ステップ 3. ユーザーにリワードを付与する

ironSource SDK は、ユーザーが正常にビデオ視聴を完了するたびに onAdRewardedEvent を発火します。

Note: onAdRewardedEventonAdClosedEvent は非同期です。onAdClosedEvent の後に onAdRewarded が発火された場合でも、リワードを付与するようにリスナーを設定してください。
void RewardedVideoOnAdRewardedEvent(IronSourcePlacement placement, IronSourceAdInfo adInfo){
    // TODO - here you can reward the user according to the reward name and amount
    placement.getPlacementName();
    placement.getRewardName();
    placement.getRewardAmount();
}
Note: LevelPlay アカウントのデフォルト設定では、アプリクライアント内の IronSourceAdRewardedEvent イベントを介してユーザーの視聴完了/リワードを通知します。さらに、バックエンドサーバーへの通知も受信したい場合は、サーバー間コールバックをオンにすることができます。

サーバー間コールバック

サーバー間コールバックをオンにする場合は、ironSource SDK の初期化前にユーザー ID を設定し、同じ視聴完了イベントに対してユーザーに二回以上リワードを与えないように注意してください。

クライアント側のコールバックとサーバー間コールバックの両方が発火される為、視聴完了ごとに二つの通知が届きます。

サーバー間コールバックを利用するには、こちらをご覧ください。

完了!
これで、アプリケーションで動画リワードを配信する準備が整いました。

初めての実装のヒント
これがアプリケーションの初めての実装である場合、LevelPlay ダッシュボードではアプリはデフォルトで「テストモード」になります。アプリがテストモードになっている間、ironSource SDK は、SDK プロセスの可視性を高めるために、より多くのログをコンソールに出力します。広告枠をテストするには、テストデバイスを設定します。また、本番環境をオンにするまでは、収益を生み出さないテスト用広告が配信されます。アプリの本番環境への移行準備ができたら、「 Ad Units 」ページで必ず「 Go Live! 」を選択してください。
ironsource-go-live-with-rewarded-video

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