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