動画リワード広告
動画リワード広告とは、アプリ内で使用可能なアイテムやポイントをユーザーに付与する代わりに、約15秒〜30秒程度の動画広告を表示する広告フォーマットです。 強制視聴型の動画広告と違い、動画視聴を希望したユーザーにのみインセンティブを付与する点で、一般的な動画広告とは異なるものです。
動画視聴後に付与する報酬(インセンティブ)の例としては、ゲーム内で使えるアイテムやコンティニューの権利、ツール系アプリの場合は有料の機能を限定的に開放するなどがあります。
前提条件
- VAMP SDK v4.1.0以降
- VAMP SDKがインポート済み
各メソッドの仕様やオプションについては、iOSリファレンスをご参照ください。
VAMPRewardedAdオブジェクトの初期化
動画リワード広告を表示するためにはまずVAMPRewardedAd
オブジェクトを初期化する必要があります。
次のコードスニペットでは、ViewController
のviewDidLoad
メソッド内でVAMPRewardedAd
オブジェクトを初期化しています。
VAMP.xcframeworkをインポートして、VAMPRewardedAdDelegate
を設定してください。
広告枠IDでVAMPRewardedAd
を初期化します。
AdGeneration管理画面で発行された広告枠IDを*****に設定します。
Objective-C
#import <VAMP/VAMP.h>
@interface AdViewController : UIViewController<VAMPRewardedAdDelegate>
@property (nonatomic) VAMPRewardedAd *rewardedAd;
@end
@implementation AdViewController
static NSString * const kPlacementId = @"*****"; // 広告枠IDを設定してください
- (void)viewDidLoad {
[super viewDidLoad];
self.rewardedAd = [[VAMPRewardedAd alloc] initWithPlacementID:kPlacementId];
self.rewardedAd.delegate = self;
}
@end
Swift
import VAMP
class AdViewController : UIViewController, VAMPRewardedAdDelegate {
let placementId = "*****" // 広告枠IDを設定してください
override func viewDidLoad() {
super.viewDidLoad()
self.rewardedAd = VAMPRewardedAd(placementID: placementId)
self.rewardedAd.delegate = self
}
}
広告の読み込み
Objective-C
VAMPRequest *request = VAMPRequest.request;
[self.rewardedAd loadRequest:request];
Swift
let request = VAMPRequest()
self.rewardedAd.load(request)
広告の読み込みに成功した場合、rewardedAdDidReceive
デリゲートメソッドが呼ばれます。
表示(再生)
Objective-C
[self.rewardedAd showFromViewController:self];
Swift
self.rewardedAd.show(from: self)
デリゲート
広告表示準備完了
広告のロードが成功したタイミングで呼び出されます。
Objective-C
- (void)rewardedAdDidReceive:(VAMPRewardedAd *)rewardedAd
Swift
func rewardedAdDidReceive(_ rewardedAd: VAMPRewardedAd)
失敗
失敗した際に呼び出されます。
Objective-C
// 全アドネットワークにおいて広告が取得できなかったときに通知
- (void)rewardedAd:(VAMPRewardedAd *)rewardedAd didFailToLoadWithError:(VAMPError *)error
// 広告の表示に失敗したときに通知
- (void)rewardedAd:(VAMPRewardedAd *)rewardedAd didFailToShowWithError:(VAMPError *)error
Swift
// 全アドネットワークにおいて広告が取得できなかったときに通知
func rewardedAd(_ rewardedAd: VAMPRewardedAd, didFailToLoadWithError error: VAMPError)
// 広告の表示に失敗したときに通知
func rewardedAd(_ rewardedAd: VAMPRewardedAd, didFailToShowWithError error: VAMPError)
error | description |
---|---|
VAMPErrorCodeUnknown | 不明なエラー(起動元アプリと接続できなくなった場合など) |
VAMPErrorCodeServerError | サーバー間通信エラー |
VAMPErrorCodeNoAdnetwork | 配信可能なアドネットワークがない |
VAMPErrorCodeNeedConnection | 通信不通 |
VAMPErrorCodeMediationTimeout | タイムアウト |
VAMPErrorCodeUserCancel | ユーザ都合の途中終了 |
VAMPErrorCodeNoAdStock | 広告在庫がない or アドネットワーク側のエラー |
VAMPErrorCodeAdnetworkError | アドネットワーク側のエラー |
VAMPErrorCodeAdnetworkError | アドネットワーク側のエラー |
VAMPErrorCodeNotSupportedOsVersion | 非対応OSバージョン |
VAMPErrorCodeInvalidParameter | パラメーターが不正 |
詳細についてはエラーコード一覧を参照してくだい。
広告を閉じる
広告を閉じたタイミングで呼び出されます。
Objective-C
- (void)rewardedAd:(VAMPRewardedAd *)rewardedAd didCloseWithClickedFlag:(BOOL)clickedFlag
Swift
func rewardedAd(_ rewardedAd: VAMPRewardedAd, didCloseWithClickedFlag clickedFlag: Bool)
インセンティブ付与通知
動画再生完了時、または広告が閉じられた際にインセンティブ付与が可能な状態であれば呼び出されます。
動画の再生を途中でキャンセルした場合は、本デリゲートメソッドは呼び出されません。
Objective-C
- (void)rewardedAdDidComplete:(VAMPRewardedAd *)rewardedAd
Swift
func rewardedAdDidComplete(_ rewardedAd: VAMPRewardedAd)
アドネットワーク毎の広告取得開始
アドネットワーク毎の広告取得が開始されたときに通知します。
Objective-C
- (void)rewardedAd:(nonnull VAMPRewardedAd *)rewardedAd
didStartLoadingAd:(nonnull NSString *)adNetworkName;
Swift
func rewardedAd(_ rewardedAd: VAMPRewardedAd,
didStartLoadingAd adNetworkName: String)
アドネットワーク毎の広告取得結果
アドネットワーク毎の広告取得結果を、 成功 , 失敗 のどちらの場合でも通知します。
errorがnil
の場合は成功です。
失敗しても次のアドネットワークがある場合、広告取得を実行します。
最終的に全てのアドネットワークの広告在庫がない場合は、
didFailToLoadWithError
にVAMPErrorCodeNoAdStock
が通知されるため、ここで処理を止めないでください。
Objective-C
- (void)rewardedAd:(nonnull VAMPRewardedAd *)rewardedAd
didLoadAd:(nonnull NSString *)adNetworkName
withError:(nullable VAMPError *)error;
Swift
func rewardedAd(_ rewardedAd: VAMPRewardedAd,
didLoadAd adNetworkName: String,
withError error: VAMPError?)
この通知をもとにshow
しないようご注意ください。show
する判定は、rewardedAdDidReceive
を受け取ったタイミングで判断してください。
期限切れ
rewardedAdDidReceive
を受けてからの有効期限(55分)が切れた際に通知されます。
広告を表示するためには、再度ロードを行う必要があります。
Objective-C
- (void)rewardedAdDidExpire:(nonnull VAMPRewardedAd *)rewardedAd;
Swift
func rewardedAdDidExpire(_ rewardedAd: VAMPRewardedAd)