動画インタースティシャル広告

1-1. 実装方法

①動画インタースティシャル広告専用の広告枠が必要となります。
アドフリくん管理画面の「広告枠」タブ > 「広告枠 追加」 > 「バナー種類」で「動画インタースティシャル広告」を選択します。

Interstitial

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

#import <ADFMovieReward/ADFmyMovieInterstitial.h>

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

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

+ (BOOL)isSupportedOSVersion;

⑤“アドフリくん管理画面で発行された広告枠 ID” を指定してADFmyMovieInterstitialクラスのinitWithAppID:viewController:メソッド(static)を呼び、動画読込を開始します。
application:didFinishLaunchingWithOptions:ライフサイクル等、アプリの開始直後に極力呼び出して下さい。

+ (void)initWithAppID:(NSString *)appID viewController:(UIViewController*)viewController;
パラメータ 説明
appID 広告枠ID
viewController RootViewcontrollerなど、常に存在するViewController

(既に読込開始している広告枠を指定した場合は、既存の読込が継続されます。)

⑥デリゲート(後述)によるコールバックを受け取りたいタイミングでADFmyMovieInterstitialクラスgetInstanceメソッド(static)を呼び出し、 ADFmyMovieInterstitialクラスのインスタンスを受け取って下さい。
※ ⑤を呼び出していない場合は nil が返却されます。

+ (ADFmyMovieInterstitial * __nullable)getInstance:(NSString *)appID delegate:(id<ADFmyMovieRewardDelegate>)delegate;
パラメータ 説明
appID 広告枠ID
delegate デリゲート(後述)を実装したクラスのインスタンス

(動画の再生準備が完了していた際は、インスタンス受け取り直後に完了通知も受け取ります。)

⑦デリゲート(後述)で広告表示準備の完了通知を受け取った後、動画再生開始メソッドを呼びます。

- (void)play;
  • 再生準備が完了したアドネットワークの中から、1つ動画が選択されます。
  • 再生が完了(あるいは失敗)したアドネットワークは、自動的に次の動画読み込みが行われます。

⑧アドフリくん動画インタースティシャルの終了は、ADFmyMovieInterstitialクラスのdisposeAllメソッド(static)で行います。
(呼ばれた後は、広告の表示が一切行われなくなります)

- (void)disposeAll;

※ アドフリくんに関するリソースの全て開放しますが、こちらで完全な制御を行うことが出来ません。(アドネットワークごとの動作は各々のSDK内で行っているため )

⑨動画のステータス変更に関する通知を受け取りたいクラスに下記デリゲートを実装します。


ADFmyMovieRewardDelegate

正常系のイベント

■ 広告の表示準備完了のイベントの受け取り

【非推奨】

- (void)AdsFetchCompleted:(BOOL)isTestMode_inApp;
パラメータ 説明
isTestMode_inApp テストモードか否か(この機能は現在未実装で、常にYESを返します)

【推奨】

- (void)AdsFetchCompleted:(NSString *)appID isTestMode:(BOOL)isTestMode_inApp;
パラメータ 説明
appID 広告枠ID
isTestMode_inApp テストモードか否か(こ 機能 現在 未実装で、常にYESを返します)
■ 動画広告の再生開始時のイベントの受け取り

【非推奨】

- (void)AdsDidShow:(NSString *)adnetworkKey;
パラメータ 説明
adnetworkKey 再生を開始したアドネットワークのアドネットワークキー

【推奨】

- (void)AdsDidShow:(NSString *)appID adNetworkKey:(NSString *)adNetworkKey;
パラメータ 説明
appID 広告枠ID
adnetworkKey 再生を開始したアドネットワークのアドネットワークキー
■ 動画再生完了時のイベントの受け取り

【非推奨】

- (void)AdsDidCompleteShow;

【推奨】

- (void)AdsDidCompleteShow:(NSString *)appID;
■ 広告を閉じた時のイベントの受け取り

【非推奨】

- (void)AdsDidHide;

【推奨】

- (void)AdsDidHide:(NSString *)appID;
パラメータ 説明
appID 広告枠ID

異常系のイベント

■ 動画再生失敗時のイベントの受け取り

【非推奨】

- (void)AdsPlayFailed;

【推奨】

- (void)AdsPlayFailed:(NSString *)appID;
パラメータ 説明
appID 広告枠ID

動画の視聴が何かしらの理由で最後まで行われなかった場合に通知されます。

デリゲートの破棄

デリゲートの参照を破棄したい場合は、ADFmyMovieInterstitialクラスのインスタンスのdelegateプロパティにnilを入れて下さい。


1-2. 実装例(Objective-C)

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

//OSがサポートバージョン以上だったら、動画読込を開始
if ([ADFmyMovieInterstitial isSupportedOSVersion] ) {
    //広告枠IDを指定し、動画読込を開始
    [ADFmyMovieInterstitial initWithAppID:@”広告枠ID” viewController:self.window.rootViewController];
}

● デリゲート実装 〜 インスタンス受け取り 〜 再生開始

//指定したクラスにデリゲートを実装する (ViewController 例)
@interface MovieInterstitialViewController ()<ADFmyMovieRewardDelegate>

- (void)viewDidLoad {
    //動画インタースティシャルのインスタンスを受け取る
    //指定した広告枠 動画インタースティシャル インスタンスを受け取り、保持
    _movieInterstitial = [ADFmyMovieInterstitial getInstance:@"広告枠ID" delegate:self];
}

#pragma mark - ADFmyMovieRewardDelegate

-(void)AdsFetchCompleted:(BOOL)isTestMode_inApp {
    //動画広告読み込み完了時の処理
}

- (void)play {
    //再生準備が出来ているか確認し、再生開始
    if (_movieInterstitial != nil && [_movieInterstitial isPrepared]) { 
        //再生準備が出来ていたら、再生開始
        [_movieInterstitial play];
    }
}

● 各種コールバック受け取り

#pragma mark - ADFmyMovieRewardDelegate

- (void)AdsDidShow:(NSString*)adnetworkKey {
    //動画表示開始時の処理
}

- (void)AdsDidCompleteShow {
    //動画再生完了時の処理
}

- (void)AdsDidHide{
    //動画を閉じた時の処理
}

- (void)AdsPlayFailed {
    //動画再生失敗時の処理
}

● 広告の破棄

//デリゲートの参照の破棄
_movieInterstitial.delegate = nil;

//インスタンスの全破棄
[ADFmyMovieInterstitial disposeAll];

1-3. 実装例(Swift)

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

var window: UIWindow?

//OSがサポートバージョン以上だったら、動画読込を開始
if ADFmyMovieInterstitial.isSupportedOSVersion() {
    //広告枠IDを指定し、動画読込を開始
    if let vc = self.window?.rootViewController {
        ADFmyMovieInterstitial.initWithAppID("広告枠ID", viewController: vc)
    }
}

● デリゲート実装 〜 インスタンス受け取り 〜 再生開始

//指定したクラスにデリゲートを実装する (ViewController 例)
class SampleViewController: UIViewController, ADFmyMovieRewardDelegate {

    override func viewDidLoad() {
        //動画インタースティシャルのインスタンスを受け取る
        //指定した広告枠 動画インタースティシャル インスタンスを受け取り、保持
        self.movieInterstitial = ADFmyMovieInterstitial.getInstance("広告枠ID", delegate: self)
    }

    func AdsFetchCompleted(isTestMode_inApp: Bool) {
        //動画広告読み込み完了時の処理
    }

    @IBAction func triggerVideo(_ sender: AnyObject) {
        //再生準備が出来ているか確認し、再生開始
        if let movieInterstitial = mMovieInterstitial{ 
            if movieInterstitial.isPrepared() {
                movieInterstitial.play()
            }
        }
    }

}

results matching ""

    No results matching ""