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

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

Swift 3.1
Xcode 8.3.3

 

Rewarded Video Ads

 
Googleの動画リワード広告についての公式ページは、動画リワード広告の概要 あるいは 新たなマネタイゼーション改革でビジネスの「レベルアップ」を にあります。
 
実装としては、AdMobの解説 Rewarded Video Ads を元に進めますが、これについては説明が不明瞭な点があるのでわかりやすく作り変えました。
 

 

Firebaseの設定

 
広告の設定には昔からのGoogle Mobile Ads SDKをインストールする方法と、Firebaseを使う方法があります。ここではFirebaseでの方法でリワード広告を実装してみます。
 
基本的な設定は アプリにAdMob広告を貼る(Firebase) を参照してください。

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

動画リワード広告の設定

 
以降はテストの確認を想定して設定していきます。(本番はIDを変えます)
 
ViewController.swift にGoogleMobileAdsのインポートとGADRewardBasedVideoAdDelegateの設定をします

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

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

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

 

コーディングまとめ

 

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

Firebaseの初期設定としてAppDelegateに以下の記述をします。IDはテスト用なので本番では自分のアプリIDをセットします。
AppDelegate.swift

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

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

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

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


ページのトップへ戻る

シェアする

  • このエントリーをはてなブックマークに追加

フォローする