GoogleMobileAds経由の動画リワード

動画リワード広告とは、アプリ内で使用可能なアイテムやポイントをユーザーに付与する代わりに、約15秒〜30秒程度の動画広告を表示する広告フォーマットです。
本機能を使用する事により、Google AdMob / Google Ad Managerの動画リワードからGenieeの動画のリワード広告を配信することができます。

実装準備

動画リワード広告では、以下の実装準備が必要です。

  • Google Play Services SDK

    Google Play Services SDKの導入手順は以下の通りです。

    1. Module>build.gradledependenciesに以下を追加します。

       dependencies {
       	implementation 'com.google.android.gms:play-services-ads:20.0.0'
       }
       
    2. AndroidManifest.xmlを更新する

      重要: Google Mobile Ads SDK バージョン 17.0.0 以上 では、この手順は必須です。この <meta-data> タグを 追加しない場合は、クラッシュして次のメッセージが表示されます。"The Google Mobile Ads SDK was initialized incorrectly."

      <manifest>
      	<application>
      	<!-- Google AdMob / AdManager -->
      		<meta-data
      		android:name="com.google.android.gms.ads.APPLICATION_ID"
      		android:value="YOUR_APP_ID"/>
      	</application>
      </manifest>
      
      1
      2
      3
      4
      5
      6
      7
      8
  • Geniee SDK

    下記スタートガイドより、Geniee SDK(GNAdSDK) をアプリに導入する必要があります。
    スタートガイド

  • Genieeメディエーションアダプター

    下記のアダプター(GNAdGoogleMediationAdapter)の設定が必要です。

    • Mavenで実装する場合(推奨)

      1. Project>build.gradleallprojects>repositoriesに以下を追加します。

        allprojects {
        	repositories {
        		// GenieeSDK
        		maven { 
        			url 'https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository' 
        		}
        	}
        }
        
        1
        2
        3
        4
        5
        6
        7
        8
      2. Module>build.gradledependenciesに以下を追加します。

         dependencies {
         	implementation 'jp.co.geniee.gnadgooglemediationadapter:GNAdGoogleMediationAdapter:8.5.0.0'
         }
         
    • 手動でライブラリを導入する Mavenでライブラリを導入するの手順を実行した場合、この手順は実行する必要はありません。

      手動導入手順はこちら
      • Geniee Adapter SDK のダウンロード

        以下の URL から Geniee Android SDK をダウンロードします。

        Geniee-Android-SDK

      • Localライブラリの配置

        1. Geniee Android SDK を解凍します。

        2. プロジェクトにGNAdGoogleMediationAdapterを追加します。

          • libs フォルダーが存在しない場合、必要に応じて作成します。

          • libs フォルダにGNAdGoogleMediationAdapterフォルダ配下の以下ファイルをコピーします。

            • GNAdGoogleMediationAdapter-8.5.0.0.jar
          • Module/build.gradledependenciesに追加します。

            dependencies {
            	implementation fileTree(include: ['*.jar'], dir: 'libs')
            }
            
            1
            2
            3

動画リワード広告の実装

  • AdManager

    管理画面でメディエーション設定したUnitIDを指定することで、メディエーションを行い動画リワード広告を表示できます。
    GoogleAdManagerの動画リワード実装方法については、以下のサイトを参考にしてください。
    GoogleAdManagerの動画リワード実装方法

  • AdMob

    管理画面でメディエーション設定したUnitIDを指定することで、メディエーションを行い動画リワード広告を表示できます。
    AdMobの動画リワード実装方法については、以下のサイトを参考にしてください。
    AdMobの動画リワード実装方法

※ メディエーションを使用する場合の実装注意点

リワードのインスタンタンスを生成する時、ContextではなくActivityを指定してください。
Contextを指定した場合、メディエーションが動作しない場合があります。

GoogleMobileAds I/Fの使用準備

GoogleMobileAds をインポートします。

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.rewarded.RewardedAd;
import com.google.android.gms.ads.rewarded.RewardedAdCallback;
import com.google.android.gms.ads.rewarded.RewardItem;
import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback;
1
2
3
4
5

広告ロード・表示に関するCallbackを実装する

SDKからロード通知を受け取る為の、RewardedAdLoadCallbackのメソッドを実装します。

private RewardedAdLoadCallback mAdLoadCallback = new RewardedAdLoadCallback() {
    @Override
    public void onRewardedAdLoaded() {
    }

    @Override
    public void onRewardedAdFailedToLoad(int errorCode) {
    }
};
1
2
3
4
5
6
7
8
9

SDKから表示通知を受け取る為の、RewardedAdCallbackのメソッドを実装します。

private RewardedAdCallback mAdCallback = new RewardedAdCallback() {
    public void onRewardedAdOpened() {
    }

    public void onRewardedAdClosed() {
    }

    public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
    }

    public void onRewardedAdFailedToShow(int errorCode) {
    }
};
1
2
3
4
5
6
7
8
9
10
11
12
13

動画リワード広告のロード

広告のロード処理を実装します。ロード処理は事前に行うことをお勧めします。
ロードリクエストでは、UnitIDを指定します。(UnitIdはGoogle AdMob / Ad Managerの管理画面より取得しておきます)
1つの動画の再生完了後に別の動画を見せる場合、再びロードリクエストを行う必要があります。

private RewardedAd mRewardedAd;

private void createAndLoadRewardedAd() {
    mrewardedAd = new RewardedAd(MainActivity.this, "YOUR_UNIT_ID");
    rewardedAd.loadAd(
            new AdRequest.Builder().build(), mAdLoadCallback);
}
1
2
3
4
5
6
7

動画リワード広告表示

広告の表示処理を実装します。
表示処理は必ずLoad実行後に実施するようにして下さい。

private void showVideoReward() {
    if (mRewardedAd.isLoaded()) {
        mRewardedAd.show(this, mAdCallback);
    }
}
1
2
3
4
5

ユーザに報酬を付与

コールバックメソッドのonUserEarnedRewardで、ユーザーに報酬を付与します。

@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
    Log.d("RewardedAdCallback", "onUserEarnedReward: RewardType = " + rewardItem.getType());
    Log.d("RewardedAdCallback", "onUserEarnedReward: RewardAmount = " + rewardItem.getAmount());
}
1
2
3
4
5

動画広告で収益を最大化するには、動画広告視聴者に報酬を与えることが重要です。
RewardItemには以下の項目が含まれます。

  • rewardItem.getType():通貨タイプ設定
  • rewardItem.getAmount():通貨額設定
Last Updated: 2021/3/3 13:55:59