1-1. 実装方法
① 動画インタースティシャル広告専用の広告枠が必要となります。
アドフリくん管理画面の「広告枠」タブ > 「広告枠 追加」 > 「バナー種類」で「動画インタースティシャル広告」を選択します。② アドフリくん動画リワードSDK導入後、ADFmyMovieInterstitial.hをインポートします。
■ アドフリくん動画リワードSDKのインポート #import <ADFMovieReward/ADFmyMovieInterstitial.h>
③ 利用するアドネットワークのSDKをプロジェクトに導入 /importします。
※各アドネットワークの導入方法/importについては、「アドネットワーク別 導入方法」を参照ください。④ サポート対象のOSバージョンか、ADFmyMovieInterstitialクラスの下記のstaticメソッドで事前に確認可能です。
■ サポート対象のOSバージョンか否か +(BOOL) isSupportedOSVersion
⑤ “アドフリくん管理画面で発行された広告枠 ID” を指定してADFmyMovieInterstitialクラスのinitWithAppIDメソッド(static)を呼び、動画読込を開始します。
application:didFinishLaunchingWithOptions:ライフサイクル等、アプリの開始直後に極力呼び出して下さい。■ 広告枠IDを設定、動画読込を開始(広告枠IDごとに静的保持) + (void)initWithAppID:(NSString *)appID viewController:(UIViewController*)viewController @param (NSString *)appID : 広告枠ID (UIViewController *)viewController : RootViewcontrollerなど、常に存在するViewController
(既に読込開始している広告枠を指定した場合は、既存の読込が継続されます。)
⑥ デリゲート(後述)によるコールバックを受け取りたいタイミングで ADFmyMovieInterstitialクラスgetInstanceメソッ ド(static)を呼び出し、 ADFmyMovieInterstitialクラスのインスタンスを受け取って下さい。
※ ⑤を呼び出していない場合は nil が返却されます。■ 動画インタースティシャルのインスタンスの受け取り + (ADFmyMovieInterstitial * __nullable)getInstance:(NSString *)appID delegate:(id<ADFmyMovieRewardDelegate>)delegate @param (NSString *)appID : 広告枠ID (id<ADFmyMovieRewardDelegate>)delegate : デリゲート(後述)を実装したクラスのインスタンス @return (ADFmyMovieInterstitial* __nullable)myMovieInterstitial : 指定した広告枠IDの動画インタースティシャルインスタンス(存在しない場合nil)
(動画の再生準備が完了していた際は、インスタンス受け取り直後に完了通知も受け取ります。)
⑦ デリゲート(後述)で広告表示準備の完了通知を受け取った後、動画再生開始メソッドを呼びます。
■ 動画再生開始 -(void)play
・再生準備が完了したアドネットワークの中から、1つ動画が選択されます。
・再生が完了(あるいは失敗)したアドネットワークは、自動的に次の動画読み込みが行われます。⑧ アドフリくん動画インタースティシャルの終了は、ADFmyMovieInterstitialクラスのdisposeAllメソッド(static)で行います。
(呼ばれた後は、広告の表示が一切行われなくなります)■ インスタンスの全破棄処理 -(void)disposeAll
※ アドフリくんに関するリソースの全て開放しますが、こちらで完全な制御を行うことが出来ません。(アドネットワークごとの動作は各々のSDK内で行っているため )
⑨ 動画のステータス変更に関する通知を受け取りたいクラスに下記デリゲートを実装します。
デリゲート
ADFmyMovieRewardDelegate
正常系 イベント
■ 広告の表示準備完了のイベントの受け取り
【非推奨】
- (void)AdsFetchCompleted:(BOOL)isTestMode_inApp (BOOL) isTestMode_inApp : テストモードか否か(この機能は現在の未実装で、常にYESを返します)
【推奨】
- (void)AdsFetchCompleted:(NSString *)appID isTestMode:(BOOL)isTestMode_inApp (NSString *)appID : 広告枠ID (BOOL) isTestMode_inApp : テストモードか否か(こ 機能 現在 未実装で、常にYESを返します)
■ 動画広告の再生開始時のイベントの受け取り
【非推奨】
- (void)AdsDidShow:(NSString *)adnetworkKey (NSString *) adnetworkKe : 再生を開始したアドネットワークのアドネットワークキー
【推奨】
- (void)AdsDidShow:(NSString *)appID adNetworkKey:(NSString *)adNetworkKey (NSString *)appID : 広告枠ID (NSString *) adnetworkKe : 再生を開始したアドネットワークのアドネットワークキー
■ 動画再生完了時のイベントの受け取り
【非推奨】
- (void)AdsDidCompleteShow
【推奨】
- (void)AdsDidCompleteShow:(NSString *)appID (NSString *)appID : 広告枠ID
■ 広告を閉じた時のイベントの受け取り
【非推奨】
- (void)AdsDidHide
【推奨】
- (void)AdsDidHide:(NSString *)appID (NSString *)appID : 広告枠ID
異常系 イベント
■ 動画再生失敗時のイベントの受け取り
【非推奨】
- (void)AdsPlayFailed
【推奨】
- (void)AdsPlayFailed:(NSString *)appID (NSString *)appID : 広告枠ID
動画の視聴が何かしらの理由で最後まで行われなかった場合に通知されます。
デリゲートの破棄
デリゲートの参照を破棄したい場合は、ADFmyMovieInterstitialクラスのインスタンスの delegateプロパティに nilを入れて下さい。
1-2. Objective-c 実装方法
■ 使用例 (詳細は、サンプルアプリ・MovieRewardSample を参照)
● アプリ起動〜事前準備開始
●サポート対象のOSバージョンか /** サポート対象 OSバージョンかを取得 */ BOOL isSupported = [ADFmyMovieInterstitial isSupportedOSVersion]; ●広告枠IDを指定し、動画読込を開始 (AppDelegate内、application:didFinishLaunchingWithOptions ライフサイクル内に記述 例 ) //OSがサポートバージョン以上だったら、動画読込を開始 if ([ADFmyMovieInterstitial isSupportedOSVersion] ) { [ADFmyMovieInterstitial initWithAppID:@”広告枠ID” viewController:self.window.rootViewController]; }
● デリゲート実装 〜 インスタンス受け取り 〜 再生開始
●指定したクラスにデリゲートを実装する (ViewController 例) @interface MovieInterstitialViewController ()<ADFmyMovieRewardDelegate> ●動画インタースティシャルのインスタンスを受け取る //指定した広告枠 動画インタースティシャル インスタンスを受け取り、保持 _movieInterstitial = [ADFmyMovieInterstitial getInstance:@"広告枠ID" delegate:self]; ●動画読込完了の通知を受け取る (デリゲート) /** 動画広告 読み込みが完了した時に呼 れるデリゲート */ -(void)AdsFetchCompleted:(BOOL)isTestMode_inApp { } ●再生準備が出来ているか確認し、再生開始 if ( _movieInterstitial != nil && [_movieInterstitial isPrepared] ) { //再生準備が出来ていたら、再生開始 [_movieInterstitial play]; }
● 各種コールバック受け取り
●動画表示開始時 / 動画再生完了時 / 動画を閉じた時 / 動画再生失敗時 通知を受け取る(デリゲート) /** 動画 表示を開始した時に呼 れるデリゲート */ - (void)AdsDidShow:(NSString*)adnetworkKey { //adnetworkKey = 表示を開始した動画広告 アドネットワークキー } /** 動画広告を最後まで観た時に呼 れるデリゲート */ - (void)AdsDidCompleteShow { } /** 動画広告を閉じた時に呼 れるデリゲート */ - (void)AdsDidHide{ } /** 動画広告 再生エラー時に呼 れるデリゲート */ - (void)AdsPlayFailed { } ●デリゲートの参照の破棄 _movieInterstitial.delegate = nil; ●インスタンスの全破棄 [ADFmyMovieInterstitial disposeAll];
1-3. Swift 実装方法
■ 使用例(最もシンプルな例を記述しています)
● アプリ起動〜事前準備開始
●サポート対象のOSバージョンか /** サポート対象 OSバージョンかを取得 */ ADFmyMovieInterstitial.isSupportedOSVersion() ●広告枠IDを指定し、動画読込を開始 (AppDelegate内、applicationライフサイクル内に記述の例) var window: UIWindow? //OSがサポートバージョン以上だったら、動画読込を開始 if ADFmyMovieInterstitial.isSupportedOSVersion(){ if let vc = self.window?.rootViewController{ ADFmyMovieInterstitial.initWithAppID("広告枠ID", viewController: vc) } }
● デリゲート実装 〜 インスタンス受け取り 〜 再生開始
●指定したクラスにデリゲートを実装する (ViewController 例) class SampleViewController: UIViewController, ADFmyMovieRewardDelegate {} ●動画インタースティシャルのインスタンスを受け取る //指定した広告枠 動画インタースティシャル インスタンスを受け取り、保持 mMovieInterstitial = ADFmyMovieInterstitial.getInstance("広告枠ID", delegate: self) ●動画読込完了の通知を受け取る (デリゲート) /** 動画広告 読み込みが完了した時に呼 れるデリゲート */ func AdsFetchCompleted(isTestMode_inApp: Bool) { } ●再生準備が出来ているか確認し、再生開始 if let movieInterstitial = mMovieInterstitial{ if movieInterstitial.isPrepared() { movieInterstitial.play() } }