GoogleMobileAds経由の動画リワード
動画リワード広告とは、アプリ内で使用可能なアイテムやポイントをユーザーに付与する代わりに、約15秒〜30秒程度の動画広告を表示する広告フォーマットです。
本機能を使用する事により、Google AdMob / Google Ad Managerの動画リワードで、Genieeの動画のリワード広告を表示します。
実装準備
GoogleMobileAds の追加
Podfileに以下の行を記述します。
pod 'Google-Mobile-Ads-SDK'
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>
2
3
4
5
6
7
8
9
GNAdGoogleMediationAdapterの追加
Cocoapodsで導入する(推奨)
Podfileに以下を記述します。
pod 'Geniee-Google-Mediation-Adapter'
手動で導入する
手動導入手順はこちら
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>
2
3
- Swift
特にありません。
広告表示に関するDelegateを実装する
SDKから通知を受け取る為の、GADFullScreenContentDelegateのメソッドを実装します。
- ObjectiveC
/// 再生開始を通知するデリゲート.
- (void)adDidPresentFullScreenContent:(id)ad {
}
/// 表示失敗を通知するデリゲート.
- (void)ad:(id)ad didFailToPresentFullScreenContentWithError:(NSError *)error {
}
/// 終了した事を通知するデリゲート.
- (void)adDidDismissFullScreenContent:(id)ad {
}
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) {
}
}
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;
}];
}
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
})
}
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]);
}];
}
}
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).")
})
}
}
2
3
4
5
6
7
8
9
ユーザに報酬を付与
動画広告で収益を最大化するには、動画広告視聴者に報酬を与えることが重要です。
GADAdRewardには以下の項目が含まれます。
- reward.type:通貨タイプ設定
- reward.amount:通貨額設定
動画広告視聴者に報酬を与えるには、表示処理presentFromRootViewController
のコールバックメソッドuserDidEarnRewardHandler
を使用します。