[iPhone] AdMobの動画リワード広告を実装

GoogleのAdMob広告にはバナー広告、インターステーシャルがありますが、動画リワード広告もできます。その実装方法についての覚書です。


Swift 5
Xcode 10.2.1

Rewarded Video Ads

Googleの動画リワード広告についての公式ページは、動画リワード広告の概要 あるいは 新たなマネタイゼーション改革でビジネスの「レベルアップ」を にあります。

実装としては、AdMobの解説 Rewarded Video Ads を元に進めます。

Firebaseの設定

広告の設定には昔からのGoogle Mobile Ads SDKをインストールする方法と、Firebaseを使う方法があります。ここではFirebaseでの方法でリワード広告を実装してみます。

基本的な設定は以下をを参照してください。

 

iOSでもGoogleのAdMobは選択肢の1つです。更にGoogleではFirebaseを使って詳細な解析ができるサービスを提供してい…

 

  • GoogleService-Info.plistを取得
    • Firebase Consoleに入ってファイルをゲットする
  • CocoaPodsのインストールと設定
  • Xcodeへの記述
    • 初期化はAppDelegateに実装する
    • Info.plistの設定
    • 動画リワード広告の設定については別になります

動画リワード広告の設定

以降はテストの確認を想定して設定していきます。(本番はIDを変えます)

ViewController.swift にGoogleMobileAdsのインポートとGADRewardBasedVideoAdDelegateの設定をします


GADRewardBasedVideoAdDelegateのイベントの情報を取得するために以下を追加


テスト用のwithAdUnitIDを入れ、広告のロードをリクエストします。


ロードが完了したら、広告を表示させます。
.isReadyを使って準備ができているか確認できます。

コーディングまとめ

ステータスを確認して、ボタンのタイミングでリワード広告を表示させてみます。

Firebaseの初期設定としてAppDelegateに以下の記述をします。

AppDelegate.swift


広告のダウンロードのタイミングはネット通信状況等でフレキシブルに対応しないといけません。また .isReadyで準備できたかはわかりますが、
rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd: GADRewardBasedVideoAd)
を使うとロード完了したタイミングがわかります。

ViewController.swift

サンプル動画

この後、ストーリーボードでラベルとボタンを作ってコードと紐付けすれば出来上がりです。

尚、広告をクローズしたところで再度設定し直していますが、これを入れないとユーザーが最後まで見ずに終わった場合、再起動するまでこの広告を再開できないためです


ユーザーが見たくないのに何度も見せることで評価を下げたくない場合はやめたほうがいいのかもしれません。サンプルコードには入っていませんし

因みにテスト用の動画は何種類もあります。


関連ページ:

References:
Rewarded Video Ads | AdMob for iOS | Google Developers
動画リワード広告の概要
新たなマネタイゼーション改革でビジネスの「レベルアップ」を