動画ネイティブ広告(API) 実装方法
①アドフリくん動画リワードSDK導入の後、ADFmyMovieNative.h をインポートします。
#import <ADFMovieReward/ADFmyMovieNative.h>
②利用するアドネットワークのSDKをプロジェクトにimportします。
※各アドネットワークの導入方法については、「アドネットワーク別 導入方法」を参照ください。
③サポート対象のOSバージョンかADFmyMovieNativeクラスの下記のstaticメソッドで事前に確認可能です。
+ (BOOL)isSupportedOSVersion;
④アドフリくん管理画面で発行された広告枠IDを指定してADFmyMovieNativeクラスのconfigureWithAppID:メソッドを呼び、アドフリくんサーバから広告枠の設定情報を取得します。
※広告の準備にある程度時間を要するためapplication:didFinishLaunchingWithOptions: 等での実行をお勧めします。
+ (void)configureWithAppID:(NSString *)appID;
| パラメータ | 説明 |
|---|---|
appID |
対象の広告枠ID |
⑤各アドネットワークへ広告の取得リクエストを行います。取得の成功失敗をコールバックで受け取るためにloadAndNotifyTo:メソッドの引数にデリゲートを指定します。
動画ネイティブのインスタンスの受け取り
+ (ADFmyMovieNative *)getInstance:(NSString *)appID;
| パラメータ | 説明 |
|---|---|
appID |
対象の広告枠ID |
アドネットワークから広告の読み込み開始
- (void)loadAndNotifyTo:(id<ADFmyMovieNativeDelegate>)delegate;
| パラメータ | 説明 |
|---|---|
delegate |
デリゲートオブジェクト |
⑥広告の取得状況に関する通知を受け取りたいクラスに下記デリゲートを実装します。
ADFmyMovieNativeDelegate
正常系のイベント
- (void)onNativeMovieAdLoadFinish:(ADFMovieNativeAdInfo *)info appID:(NSString *)appID;
広告の取得に成功した場合にメインスレッドでコールバックされます。ADFMovieNativeAdInfoクラスが持っている広告情報を使って広告を表示してください。
| パラメータ | 説明 |
|---|---|
info |
広告の情報を格納したオブジェクト |
appID |
対象の広告枠ID |
ADFMovieNativeAdInfo
| プロパティ | 型 | 説明 |
|---|---|---|
title |
NSString |
広告のタイトル |
desc |
NSString |
広告の説明文 |
videoUrl |
NSURL |
広告の動画URL(アスペクト比が16:9の動画になります) |
imageUrl |
NSURL |
広告の画像URL(動画がない案件もたまにあります。その案件の場合はこの画像を表示してください。実装例はサンプルアプリをご覧ください。) |
異常系のイベント
- (void)onNativeMovieAdLoadError:(ADFMovieError *)error appID:(NSString *)appID;
広告の取得に失敗した場合にメインスレッドでコールバックされます。エラーの詳細についてはADFMovieErrorクラスを参照してください。
| パラメータ | 説明 |
|---|---|
error |
エラー内容を格納したオブジェクト |
appID |
対象の広告枠ID |
エラーコードの詳細
| タイプ | コード | 内容 |
|---|---|---|
ADFMovieError_NoStock |
0 | 広告の在庫がない場合 |
ADFMovieError_NetworkDisconnect |
1 | オフラインまたはフライトモードの場合 |
ADFMovieError_InvalidAppId |
2 | 広告IDが登録されている内容と異なる場合 |
ADFMovieError_ApiRequestFailure |
3 | リクエストが失敗した場合 |
ADFMovieError_UnsupportedOSVersion |
4 | サポートしないOSバージョンの場合 |
ADFMovieError_PlayerItemLoadFailure |
5 | 広告の読み込みが失敗した場合 |
ADFMovieError_PlayerItemPlayFailure |
6 | 広告の再生が失敗した場合 |
ADFMovieError_Other |
7 | その他の予期せぬエラーが発生した場合 |
⑦広告の再生を開始したらインプレッションを計測します。広告の取得成功時にコールバックで取得できるADFMovieNativeAdInfoオブジェクトのメソッドを利用して各種トラッキングを実行してください。
インプレッションを計測(必須)
- (void)trackImpression;
動画の再生開始を計測
- (void)trackMovieStart;
動画の再生終了を計測
- (void)trackMovieFinish;
広告のクリックの計測とクリックURLの表示(必須)
- (void)launchClickTarget;
実装例(詳細はサンプルアプリをご参照ください)
● アプリ起動 〜 事前準備開始
#import <ADFMovieReward/ADFmyMovieNative.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//OSがサポートバージョン以上だったら、広告枠の情報取得開始
if ([ADFmyMovieNative isSupportedOSVersion]) {
[ADFmyMovieNative configureWithAppID:@”広告枠ID”];
}
}
● デリゲート実装 〜 広告の取得開始 〜 広告の表示
@interface ViewController()<ADFmyMovieNativeDelegate>
@property (nonatomic) ADFMovieNativeAdInfo *nativeAdInfo;
@end
@implementation ViewController
- (void)viewDidLoad {
//広告の取得を開始
[[ADFmyMovieNative getInstance:@”広告枠ID”] loadAndNotifyTo:self];
}
#pragma mark - ADFmyMovieNativeDelegate
//広告の取得成功のコールバック
- (void)onNativeMovieAdLoadFinish:(ADFMovieNativeAdInfo *)info appID:(NSString *)appID {
self.nativeAdInfo = info;
//広告を表示する処理を実装
}
//広告の取得失敗のコールバック
- (void)onNativeMovieAdLoadError:(ADFMovieError *)error appID:(NSString *)appID {
//エラーの確認、広告取得のリトライなど
}
● 動画の再生開始〜広告のタップ〜動画の再生終了
@implementation ViewController
- (void)onNativeMovieAdLoadFinish:(ADFMovieNativeAdInfo *)info appID:(NSString *)appID {
self.nativeAdInfo = info;
//広告を表示する処理を実装
//広告を表示したらインプレッションを計測
[self.nativeAdInfo trackImpression];
[self.nativeAdInfo trackMovieStart];
}
//広告のタップ時に実行される関数を想定
- (void)onTapNativeAd {
//広告のクリックを計測
[self.nativeAdInfo launchClickTarget];
}
//動画の再生終了時に実行される関数を想定
- (void)didFinishMovie {
//動画再生終了を計測
[self.nativeAdInfo trackMovieFinish];
}
実装の際の注意点
動画の読み込みに関して
初回の動画の読み込みには時間がかかりますので、アプリ起動時(AppDelegateのdidFinishLaunchingWithOptions:など)に事前にconfigureWithAppID:を呼び出して広告の設定情報をあらかじめ取得しておくと、広告を表示したい画面でloadAndNotifyTo:を呼び出す際に広告の読み込みがスムーズになります。
トラッキングに関して
trackImpression,trackMovieStartに関しては、動画の再生開始時に呼ぶようにしてください。
trackMovieFinishは、動画の再生終了時に呼ぶようにしてください。