前提条件
必ずテスト広告でテストする
アプリの開発とテストでは、配信中の実際の広告ではなく、必ずテスト広告を使用してください。実際の広告を使用すると、アカウントが停止される可能性があります。
テスト広告を読み込むには、次に示す Android リワード広告向けのテスト専用広告ユニット ID を使う方法が便利です。
ca-app-pub-3940256099942544/5224354917
この広告ユニット ID は、すべてのリクエストに対してテスト広告を返すように特別に設定されています。アプリのコーディング、テスト、デバッグで自由に使うことができます。なお、アプリを公開する前に、必ずテスト用 ID をご自身の広告ユニット ID に置き換えてください。
GMA Next-Gen SDK のテスト広告について詳しくは、テスト広告を有効にするをご覧ください。
広告を読み込む
複数の広告の広告配信レイテンシを最適化するには、代わりに広告のプリロードの使用を検討してください。
次の例は、単一の広告を読み込む方法を示しています。
Kotlin
// Load ads after you initialize MobileAds. RewardedAd.load( AdRequest.Builder(adUnitId).build(), object : AdLoadCallback<RewardedAd> { override fun onAdLoaded(ad: RewardedAd) { // Rewarded ad loaded. rewardedAd = ad } override fun onAdFailedToLoad(adError: LoadAdError) { // Rewarded ad failed to load. Log.e(TAG, "Rewarded ad failed to load: ${adError.message}") rewardedAd = null } }, )
Java
// Load ads after you initialize MobileAds. RewardedAd.load( new AdRequest.Builder(adUnitId).build(), new AdLoadCallback<RewardedAd>() { @Override public void onAdLoaded(@NonNull RewardedAd ad) { // Rewarded ad loaded. rewardedAd = ad; } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Rewarded ad failed to load. Log.e(TAG, "Rewarded ad failed to load: " + adError.getMessage()); rewardedAd = null; } });
テストを行う場合は、テスト広告ユニット ID(ca-app-pub-3940256099942544/5224354917)を使用します。
広告を表示する
リワード広告を表示するには、show メソッドを使用します。OnUserEarnedRewardListener オブジェクトを使用して、リワード イベントを処理します。
Kotlin
private fun showAd(rewardedAd: RewardedAd, activity: Activity) { // Show the ad. rewardedAd.show( activity, object : OnUserEarnedRewardListener { override fun onUserEarnedReward(rewardItem: RewardItem) { // User earned the reward. val rewardAmount = rewardItem.amount val rewardType = rewardItem.type } }, ) }
Java
private void showAd(RewardedAd rewardedAd, Activity activity) { // Show the ad. rewardedAd.show( activity, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // User earned the reward. int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); }
広告イベントをリッスンする
広告を表示する前に、広告ライフサイクル イベントをリッスンします。
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = rewardedAd if (ad == null) { Log.e(TAG, "Rewarded ad is not ready yet.") return } ad.adEventCallback = object : RewardedAdEventCallback { override fun onAdShowedFullScreenContent() { // Rewarded ad did show. } override fun onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Rewarded ad did record an impression. } override fun onAdClicked() { // Rewarded ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (rewardedAd == null) { Log.e(TAG, "Rewarded ad is not ready yet."); return; } rewardedAd.setAdEventCallback( new RewardedAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Rewarded ad did show. } @Override public void onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null; } @Override public void onAdFailedToShowFullScreenContent( FullScreenContentError fullScreenContentError) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Rewarded ad did record an impression. } @Override public void onAdClicked() { // Rewarded ad did record a click. } }); }
任意: サーバーサイド認証(SSV)コールバックを検証する
サーバーサイド認証コールバックで追加データを必要とする場合は、リワード広告のカスタムデータ機能を使用してください。リワード広告オブジェクトに設定されている文字列値はすべて、SSV コールバックの custom_data クエリ パラメータに受け渡されます。カスタムデータ値が設定されていない場合、SSV コールバックは custom_data クエリ パラメータ値を持ちません。
次のコードサンプルは、広告をリクエストする前に、リワード広告オブジェクトにカスタムデータを設定する方法を示したものです。
Kotlin
Java
SAMPLE_CUSTOM_DATA_STRING は、実際のカスタムデータに置き換えてください。
カスタム リワード文字列を設定する場合は、広告を表示する前に行う必要があります。