動画ネイティブ広告(API) 実装方法

①アドフリくん動画リワードSDK導入の後、ADFmyMovieNative.h をインポートします。

#import <ADFMovieReward/ADFmyMovieNative.h>

②利用するアドネットワークのSDKをプロジェクトにimportします。
※各アドネットワークの導入方法については、「アドネットワーク別 導入方法」を参照ください。

③サポート対象のOSバージョンかADFmyMovieNativeクラスの下記のstaticメソッドで事前に確認可能です。

+ (BOOL)isSupportedOSVersion;

④アドフリくん管理画面で発行された広告枠IDを指定してADFmyMovieNativeクラスのinitializeWithAppID:メソッドを呼び、アドフリくんサーバから広告枠の設定情報を取得します。
※広告の準備にある程度時間を要するためapplication:didFinishLaunchingWithOptions: 等での実行をお勧めします。

+ (void)initializeWithAppID:(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
プロパティ Null可能 説明
title NSString Null可能 広告のタイトル
desc NSString Null可能 広告の説明文
mediaView ADFMediaView 動画広告のView、アスペクト比が16:9の動画になります

異常系のイベント

- (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 その他の予期せぬエラーが発生した場合

ADFMovieNativeAdInfomediaViewを画面上好きなところに張り付き、必要なサイズに変更し、再生する

//サイズを設定
self.nativeAdInfo.mediaView.frame = self.containerView.bounds;

[self.containerView addSubview:self.nativeAd.mediaView];

//動画再生状況のdelegate
self.nativeAd.mediaView.mediaViewDelegate = self;

//動画を再生
[self.nativeAdInfo playMediaView];

ADFMediaViewDelegate

mediaViewmediaViewDelegateを設定すると、動画の再生状況確認することができます

正常系のイベント

- (void)onADFMediaViewPlayStart;
- (void)onADFMediaViewPlayFinish;

異常系のイベント

- (void)onADFMediaViewPlayFail;

実装例(詳細はサンプルアプリをご参照ください)

● アプリ起動 〜 事前準備開始

#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.nativeAd.mediaView.frame = self.containerView.bounds;
    [self.containerView addSubview:self.nativeAd.mediaView];
    self.nativeAd.mediaView.mediaViewDelegate = self;
    [self.nativeAd playMediaView];
}

● 動画の再読込み:既存の動画広告のViewをメモリから解除

@interface ViewController()<ADFmyMovieNativeDelegate>
@property (nonatomic) ADFMovieNativeAdInfo *nativeAdInfo;
@end

@implementation ViewController

- (void)reloadNativeAd {
    if (self.nativeAdInfo) {
        [self.nativeAdInfo.mediaView removeFromSuperView];
        self.nativeAdInfo.mediaView = nil;
        self.nativeAdInfo = nil;

        [[ADFmyMovieNative getInstance:@”広告枠ID”] loadAndNotifyTo:self];
    }
}

実装の際の注意点

動画の読み込みに関して

初回の動画の読み込みには時間がかかりますので、アプリ起動時(AppDelegateのdidFinishLaunchingWithOptions:など)に事前にconfigureWithAppID:を呼び出して広告の設定情報をあらかじめ取得しておくと、広告を表示したい画面でloadAndNotifyTo:を呼び出す際に広告の読み込みがスムーズになります。

サイズ目安について

広告の視認性確保のため、以下を目安に実装をお願いします。

  • 縦画面: 動画広告の横幅が画面横幅の50%以上であること
  • 横画面: 動画広告の横幅が画面横幅の25%以上であること

※上記基準を下回る場合は、広告の配信が停止される可能性がございますので、ご了承ください。

動画案件更新について

  • 別の広告動画を表示するには、新たに動画nativeをリクエスト(loadAndNotifyTo)する必要があります。
  • ページを切り替えるタイミングでloadAndNotifyToを呼び出すことをおすすめします。

複数表示について

  • 1画面で1箇所の設置を推奨します。
  • 違いページに同一枠IDを利用するのは問題ありません。
  • 同じページに複数動画Nativeを利用したい場合は、数に応じて複数IDを利用してください。

1画面で広告を再読込みする場合

1画面で広告表示後、再度Loadをして違う広告を表示するときには既存の動画広告表示用のViewをメモリから解除する必要があります。 詳しい内容は実装例を参考してください。

results matching ""

    No results matching ""