GoogleMobileAds経由の動画リワード

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

実装準備

GoogleMobileAds の追加

Podfileに以下の行を記述します。

pod 'Google-Mobile-Ads-SDK'
1
GoogleMobileAds導入の注意点 GoogleMobileAdsを導入する場合、Info.plistにGoogle AdMob / Google Ad Managerの以下のいずれかのアプリ ID情報を記載しなければ、アプリがクラッシュします。
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-################~##########</string>
<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
  </array>
1
2
3
4
5
6
7
8
9

GNAdGoogleMediationAdapterの追加

Cocoapodsで導入する(推奨)

Podfileに以下を記述します。

pod 'Geniee-Google-Mediation-Adapter'
1

手動で導入する

手動導入手順はこちら

GNAdGoogleMediationAdapter をダウンロードします。

GNAdGoogleMediationAdapter

GNAdGoogleMediationAdapter.xcframework をドラッグアンドドロップでプロジェクトにコピーして追加してください。

ナビゲータエリアよりプロジェクトを選択し、"TARGET" -> "General" を選択する。

"Linked Framework and Libraries" へ "GNAdGoogleMediationAdapter.xcframework" を追加する。

Geniee SDK の追加

Geniee SDK のインストールは、下記スタートガイドから行ってください。

スタートガイド

動画リワード広告の実装

  • Ad Manager

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

  • AdMob

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

GoogleMobileAds I/Fの使用準備

GoogleMobileAds をインポートします。

  • ObjectiveC
    GoogleMobileAdsをimportし、Delegateを追加します。

例:ViewController.m

@import GoogleMobileAds;

@interface RewardNewViewController () <GADFullScreenContentDelegate>
1
2
3
  • Swift
    特にありません。

広告表示に関するDelegateを実装する

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

  • ObjectiveC
/// 再生開始を通知するデリゲート.
- (void)adDidPresentFullScreenContent:(id)ad {
}

/// 表示失敗を通知するデリゲート.
- (void)ad:(id)ad didFailToPresentFullScreenContentWithError:(NSError *)error {
}

/// 終了した事を通知するデリゲート.
- (void)adDidDismissFullScreenContent:(id)ad {
}
1
2
3
4
5
6
7
8
9
10
11
  • Swift
extension ViewController : GADFullScreenContentDelegate {

    /// 再生開始を通知するデリゲート.
    func adDidPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    }

    /// 終了した事を通知するデリゲート.
    func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    }

    /// 表示失敗を通知するデリゲート.
    func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

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

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

  • ObjectiveC
@property(nonatomic, strong) GADRewardedAd *rewardedAd;

- (void)loadReward {
    GAMRequest *request = [GAMRequest request];
    [GADRewardedAd loadWithAdUnitID:@"YOUR_UNIT_ID" request:request completionHandler:^(GADRewardedAd *ad, NSError *error) {
        if (error) {
            return;
        }
        self.rewardedAd = ad;
        self.rewardedAd.fullScreenContentDelegate = self;
    }];
}
1
2
3
4
5
6
7
8
9
10
11
12
  • Swift
var rewardedAd: GADRewardedAd!

func loadReward() {
    let request = GAMRequest()
    GADRewardedAd.load(withAdUnitID: "YOUR_UNIT_ID", request: request, completionHandler: { (ad, error) in
        if let error = error {
            return
        }
        self.rewardedAd = ad
        self.rewardedAd?.fullScreenContentDelegate = self
    })
}
1
2
3
4
5
6
7
8
9
10
11
12

動画リワード広告表示

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

  • ObjectiveC
- (void)showReward {
    if (self.rewardedAd) {
        [self.rewardedAd presentFromRootViewController:self userDidEarnRewardHandler:^ {
            GADAdReward *reward = self.rewardedAd.adReward;
            // TODO: Reward the user.
            NSLog(@"rewardedAd:userDidEarnRewardHandler %@, amount %lf", reward.type, [reward.amount doubleValue]);
        }];
    }
}
1
2
3
4
5
6
7
8
9
  • Swift
func showReward() {
    if let ad = rewardedAd {
        ad.present(fromRootViewController: self, userDidEarnRewardHandler: {
            let reward = ad.adReward
            // TODO: Reward the user.
            print("rewardedAd:userDidEarnRewardHandler \(reward.type), amount \(reward.amount).")
        })
    }
}
1
2
3
4
5
6
7
8
9

ユーザに報酬を付与

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

  • reward.type:通貨タイプ設定
  • reward.amount:通貨額設定

動画広告視聴者に報酬を与えるには、表示処理presentFromRootViewControllerのコールバックメソッドuserDidEarnRewardHandlerを使用します。

Last Updated: 2021/3/18 16:14:05