Android 動画リワード広告
動画リワード広告とは、アプリ内で使用可能なアイテムやポイントをユーザーに付与する代わりに、約15秒〜30秒程度の動画広告を表示する広告フォーマットです。
GenieeSDKでは、メディエーション機能により各アドネットワークの動画リワード広告を表示します。
実装準備
動画リワード広告では、以下の実装準備が必要です。
Geniee SDK
下記スタートガイドより、Geniee SDK(
GNAdSDK
) をアプリに導入する必要があります。
スタートガイド各アドネットワーク用SDKとアダプター
動画リワードでは、アドネットワーク毎のSDKの設定とアダプター(
GNSRewardAdapter
)の設定が必要です。
全アドネットワークを一括で設定するには、以下リンクの導入方法を参照して下さい。
全アドネットワークの一括実装また、アドネットワークを個別で利用するには、以下よりアドネットワークのリンクを選択して、導入方法を参照して下さい。
アドネットワーク 検証済みバージョン maio 1.1.13 AppLovin 9.14.5 Unity Ads 3.4.8 AdColony 4.7.1 CAReward 2.4.0 Tapjoy 12.7.0 Vungle 6.8.0 Nend 5.4.2 AMoAd playable-1.0.0 TikTok 2.0.0.0
クラスとインタフェース
Android 動画広告配信には、下記クラスを使用します。
- GNSRewardVideoAd 非同期で動画リワード広告を取得、表示用クラス
- GNSRewardVideoAdListener リワード動画広告ロード、再生、リワード付与、終了処理用インタフェース
動画リワード広告の実装
GNSVideoReward
をインポートします。import jp.co.geniee.gnadsdk.rewardvideo.GNSRewardVideoAd; import jp.co.geniee.gnadsdk.rewardvideo.GNSRewardVideoAdListener; import jp.co.geniee.gnadsdk.rewardvideo.GNSVideoRewardData; import jp.co.geniee.gnadsdk.rewardvideo.GNSVideoRewardException;
1
2
3
4GNSRewardVideoAd
のインスタンスをZoneID
を指定して作成します。private GNSRewardVideoAd mReward; setContentView(R.layout.activity_main); mReward = new GNSRewardVideoAd("YOUR_ZONE_ID", MainActivity.this);
1
2
3
4GNAdVideoListener
インタフェースを実装します。mReward.setRewardVideoAdListener(new GNSRewardVideoAdListener() { @Override public void rewardVideoAdDidReceiveAd() { Log.i("GNSReward", "動画広告ロード成功"); } @Override public void rewardVideoAdDidStartPlaying(GNSVideoRewardData data) { Log.i("GNSReward", "動画広告再生開始。(" + data.adName + ")"); } @Override public void didRewardUserWithReward(GNSVideoRewardData data) { Log.i("GNSReward", "ユーザにリワードを付与。(" + data.adName + " " + data.amount + data.type + ")"); } @Override public void rewardVideoAdDidClose(GNSVideoRewardData data) { Log.i("GNSReward", "動画広告が閉じられた。(" + data.adName + ")"); } @Override public void didFailToLoadWithError(GNSVideoRewardException e) { Log.i("GNSReward", "動画広告ロード失敗。(" + e.getAdnetworkName() + " Code:" + e.getCode() + " " + e.getMessage()); } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27動画リワードのloadRequestメソッドを実装します。
- 7.0.0以上のGeniee SDK バージョンを使用している場合
mReward.loadRequest(isRTB);
1isRTB: trueはRTB配信、falseはadapter mediation配信
7.0.0以下のGenieeSDKバージョンを利用している場合
mReward.loadRequest(); // Deprecated
1- ロードリクエストには数秒以上かかることがあるので、早い段階で動画広告をリクエストしてください。
- 1つの動画の再生完了後に別の動画を見せる場合、再びロードリクエストを行う必要があります。
canShow
メソッドでloadRequest
メソッドが正常に完了したことを確認し、show
メソッドで動画を表示します。if (mReward.canShow()) { mReward.show(); } else { Log.i("GNSReward", "動画広告ロード中です。"); }
1
2
3
4
5- showは必ずloadRequest実行後に実施するようにして下さい。
コールバックメソッドのdidRewardUserWithRewardで、ユーザーに報酬を付与します。
@Override public void didRewardUserWithReward(GNSVideoRewardData data) { Log.i("GNSReward", "ユーザにリワードを付与。(" + data.adName + " " + data.amount + data.type + ")")); }
1
2
3
4ジーニーの動画リワード広告で収益を最大化するためには、動画視聴者に報酬を与えることが重要です。GNSAdRewardメソッドには以下の項目が含まれます。
- reward.type:SSPにおける報酬タイプの設定
- reward.amount:SSPにおける報酬量の設定
Activityのライフサイクルを処理のつなぎ込みを実施します。このつなぎ込みは広告の停止や再開の制御に使われます。
@Override protected void onStart() { super.onStart(); if (mReward != null) { mReward.onStart(); } } @Override protected void onResume() { super.onResume(); if (mReward != null) { mReward.onResume(); } } @Override protected void onPause() { if (mReward != null) { mReward.onPause(); } super.onPause(); } @Override protected void onStop() { if (mReward != null) { mReward.onStop(); } super.onStop(); } @Override protected void onDestroy() { if (mReward != null) { mReward.onDestroy(); } super.onDestroy(); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
- アプリケーション全体で動画リワードを使用する場合 mReward.onDestroy()の実装は除外してください。 mReward.onDestroy()を実装すると動画リワード内のデータが破棄されます。
マニフェストファイルの記述
マニフェストファイル AndroidManifest.xml に必要情報を記述します。
Mavenでライブラリを導入する
の手順を実行した場合、この手順は実行する必要はありません。手動導入手順はこちら
マニフェストファイルの
<application>
にSDKが使用するアクティビティの情報を記述します。<!-- Geniee Reward Video --> <activity android:name="jp.co.geniee.gnadsdk.rewardvideo.GNSRewardVideoActivity" android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
1
2
3
4
5
より高単価な広告を表示する実装方法
広告準備完了イベントから数十秒経過後に広告を表示することで、単価をより高くすることがあります。 これは複数の広告を同時にリクエストして最初の広告の準備が完了した時点でアプリ側に準備完了を通知しており、それよりも高単価な広告がその数秒後に準備完了となる可能性があるためです。 そのため、広告取得処理を事前に実施して頂くことで、より高単価な広告を取得することができます。