iOS 動画リワード広告
動画リワード広告とは、アプリ内で使用可能なアイテムやポイントをユーザーに付与する代わりに、約15秒〜30秒程度の動画広告を表示する広告フォーマットです。 GenieeSDKでは、メディエーション機能により各アドネットワークの動画リワード広告を表示します。
実装準備
動画リワード広告の実装準備は、下記スタートガイドから行ってください。 Geniee SDK をプロジェクトにインストールする必要があります。 スタートガイド
- 各アドネットワーク用SDK,アダプター 動画リワードでは配信で使用するアドネットワーク毎のSDKの設定とアダプターの設定が必要です。 以下よりアドネットワークのリンクから導入方法を参照して下さい。
アドネットワーク | 検証済みバージョン |
---|---|
maio | 1.4.0 |
AppLovin | 5.1.1 |
Unity Ads | 2.3.0 |
AdColony | 3.3.5 |
CAReward | 2.3.1 |
Tapjoy | 12.0.0 |
Vungle | 6.2.0 |
Nend | 5.0.2 |
AMoAd | playable1.0.0 |
TikTok | 2.4.6.7 |
サンプルプロジェクト
Objective-C
https://github.com/geniee-ssp/Geniee-iOS-SDK/tree/master/sample/use_cocoapods/objectivec
Swift
https://github.com/geniee-ssp/Geniee-iOS-SDK/tree/master/sample/use_cocoapods/swift
クラスとプロトコル
iOS動画リワード配信には以下のクラスを使用します。 GNSRequest.h GNSRewardVideoAd.h GNSRewardVideoAdDelegate.h
実装
ヘッダーファイルをimportし、Delegateを追加する
例:ViewController.h
#import <GNAdSDK/GNSRewardVideoAd.h>
#import <GNAdSDK/GNSRequest.h>
#import <GNAdSDK/GNSAdReward.h>
#import <GNAdSDK/GNSRewardVideoAdDelegate.h>
@interface ViewController <GNSRewardVideoAdDelegate>
2
3
4
5
Delegateメソッドを実装する
- この実装はオプションです。 Reward VideoAd SDKに、Delegateを設定します。 下記コールバックをハンドリングしたい場合にコールバックをうける ViewController内のdelgateを実装して下さい。 *viewDidLoadに記述するとiOSのライフサイクル特性上,画面遷移後にviewDidLoadが実行されないため、delegateがセットされない場合があります。
例:Viewcontroller.m (viewWillAppear内に記述推奨)
viewWillAppeare(){
[GNSRewardVideoAd sharedInstance].delegate = self;
}
2
3
SDKから通知を受け取るには、GNSRewardVideoAdDelegateのメソッドを実装します。
例:Viewcontroller.m
/// デリゲートでリワード動画広告のロード失敗を定義します。
- (void)rewardVideoAd:(GNSRewardVideoAd *)rewardVideoAd
didFailToLoadWithError:(NSError *)error {
}
/// デリゲートでリワード動画広告のロードを定義します。
- (void)rewardVideoAdDidReceiveAd:(GNSRewardVideoAd *)rewardVideoAd {
}
/// デリゲートでリワード動画広告の再生開始を定義します。 (void)rewardVideoAdDidStartPlaying:(GNSRewardVideoAd *)rewardVideoAd {
}
/// デリゲートでリワード動画広告が閉じられることを定義します。
- (void)rewardVideoAdDidClose:(GNSRewardVideoAd *)rewardVideoAd {
}
/// デリゲートでリワード動画広告のユーザーに対する報酬付与を定義します。
- (void)rewardVideoAd:(GNSRewardVideoAd *)rewardVideoAd
didRewardUserWithReward:(GNSAdReward *)reward {
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
動画リワード広告のロードリクエスト
ロードリクエストにZoneID(App ID)を設定して動画広告ロードリクエストします。
Note:
ロードリクエストには数秒以上かかる場合がありますので、アプリケーションのライフサイクルの早い段階で動画リワード広告をloadRequestします。
1つの動画広告が表示された後に別の動画広告を表示する場合は、もう一度loadRequestを実行する必要があります。
- 7.0.0以上のGeniee SDK バージョンを使用している場合
GNSRequest *request = [GNSRequest request];
[[GNSRewardVideoAd sharedInstance] loadRequest:request
withZoneID:@"YOUR_SSP_ZONE_ID" isRTB: true];
2
3
isRTB: trueはRTB配信、falseはadapter mediation配信
7.0.0未満のGenieeSDKバージョンを利用している場合
GNSRequest *request = [GNSRequest request];
[[GNSRewardVideoAd sharedInstance] loadRequest:request
withZoneID:@"YOUR_SSP_ZONE_ID"]; // Deprecated
2
3
動画リワード広告表示
動画広告が準備完了であることを確認し、動画広告を表示します。
if ([[GNSRewardVideoAd sharedInstance] canShow]) {
[[GNSRewardVideoAd sharedInstance] show:self];
}
2
3
ユーザーに報酬を付与
動画広告で収益を最大化するには、動画広告視聴者に報酬を与えることが重要です。 GNSAdRewardには以下の項目が含まれます。
- reward.type:SSPの通貨タイプ設定
- reward.amount:SSPの通貨額設定
動画広告視聴者に報酬を与えるには、didRewardUserWithRewardコールバックメソッドを使用します。
- (void)rewardVideoAd:(GNSRewardVideoAd *)rewardVideoAd
didRewardUserWithReward:(GNSAdReward *)reward
{
NSLog(@"ViewController: Reward received type=%@, amount=%lf"
,reward.type
,[reward.amount doubleValue]);
}
2
3
4
5
6
7
ATS設定
Xcodeプロジェクトの <app name>
Info.plistファイルに以下を追加してください:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
2
3
4
5
6
7
より高単価な広告を表示する実装方法
広告準備完了イベントから数十秒経過後に広告を表示することで、単価をより高くすることがあります。 これは複数の広告を同時にリクエストして最初の広告の準備が完了した時点でアプリ側に準備完了を通知しており、それよりも高単価な広告がその数秒後に準備完了となる可能性があるためです。 そのため、広告取得処理を事前に実施して頂くことで、より高単価な広告を取得することができます。