動画ネイティブ広告(FLEX)

実装方法

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

Reward

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

#import <ADFMovieReward/ADFmyMovieNativeAdFlex.h>

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

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

+ (BOOL)isSupportedOSVersion

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

+ (void)initializeWithAppID:(NSString *)appID viewController:(UIViewController*)viewController;
パラメータ 説明
appID 対象の広告枠ID

⑥各アドネットワークへ広告の取得リクエストを行います。ADFmyMovieNativeAdFlexgetInstance:delegate:メソッドでインスタンスを作成し、広告取得の成功・失敗をコールバックで受け取るためにデリゲートを指定します。

動画ネイティブ広告(FLEX)のインスタンスの作成
+ (ADFmyMovieNativeAdFlex *)getInstance:(NSString *)appID delegate:(id<ADFmyMovieRewardDelegate>)delegate;
パラメータ 説明
appID 対象の広告枠ID
delegate デリゲートオブジェクト

⑦広告枠が新ローディングモードの場合、広告表示準備を明示的に行う必要があります。

- (void)load;

loadメソッドを呼び出すとそのタイミングで各アドネットワークへの表示準備開始をします。 load()関数を呼び出さないと表示準備が行われません。

⑧広告の取得が完了したら、任意のタイミングでplayを実行して動画広告の再生を開始することができます。再生を開始した時点でインプレッションが発生します。

- (void)play;

- (void)playWithPresentingViewController:(UIViewController *)viewController;
パラメータ 説明
viewController アプリ最前面viewのUIViewController、多くの場合は「self」

⑨画面遷移など任意のタイミングで広告の表示を終了したい場合は、以下の関数を実行してください。

- (void)finish;

⑩広告の取得状況に関する通知を受け取りたいクラスに下記デリゲートを実装します。


ADFmyMovieRewardDelegate

広告の表示準備完了

- (void)AdsFetchCompleted:(NSString *)appID isTestMode:(BOOL)isTestMode_inApp

広告の取得に成功した場合にメインスレッドでコールバックされます。このコールバックが実行された時点で広告のレイアウトまで完了します。あとは動画を再生したい任意のタイミングでplayメソッドを呼び出してください。

パラメータ 説明
appID 対象の広告枠ID

■ 広告表示準備失敗時のイベントの受け取り

- (void)AdsFetchFailed:(NSString *)appID error:(NSError *)error;
パラメータ 説明
appID 広告枠ID
error エラー情報
error.code 説明
ADF_FETCH_ERROR_CODE_OUTOFSTOCK ADNWから在庫が返却されなかった場合
ADF_FETCH_ERROR_CODE_NOADNETWORK 配信設定において利用可能なADNWが一つもなかった場合
ADF_FETCH_ERROR_CODE_ALREADY_LOADING 前回のLoadingがまだ完了してない場合

広告の視聴開始

- (void)AdsDidShow:(NSString *)appID adNetworkKey:(NSString *)adNetworkKey

動画の表示を開始した時に呼ばれます

パラメータ 説明
appID 対象の広告枠ID
adNetworkKey 再生を開始したアドネットワークのアドネットワークキー

広告の視聴終了

- (void)AdsDidCompleteShow:(NSString *)appID

動画広告の再生が完了した時に呼ばれます

パラメータ 説明
appID 対象の広告枠ID

広告の視聴失敗

- (void)AdsPlayFailed:(NSString *)appID

広告の視聴に失敗した場合にメインスレッドでコールバックされます。

パラメータ 説明
appID 対象の広告枠ID

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

Objective-C

● アプリ起動 〜 事前準備開始
#import <ADFMovieReward/ADFmyMovieNativeAdFlex.h>
@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // OSがサポートバージョン以上だったら、広告枠の情報取得開始
    if ([ADFmyMovieNativeAdFlex isSupportedOSVersion]) {
        [ADFmyMovieNativeAdFlex initWithAppID:@"広告枠ID" viewController:self.window.rootViewController];
    }
}
● デリゲート実装 〜 広告の取得開始 〜 広告の表示
@interface MovieNativeAdFlexViewController ()<ADFmyMovieRewardDelegate>

@property (nonatomic, strong)ADFmyMovieNativeAdFlex *movieNativeAdFlex;

- (void)viewDidLoad {
    [super viewDidLoad];
   if (![ADFmyMovieNativeAdFlex isSupportedOSVersion]) {
       // アドフリくんの管理画面で発行された広告枠IDを設定してください。
       _movieNativeAdFlex = [ADFmyMovieNativeAdFlex getInstance:@"広告枠ID" delegate:self];
     }
}

- (IBAction) startPopupAd:(id)sender {
    //広告再生の準備が出来たか?
    if ( self.movieNativeAdFlex != nil && [self.movieNativeAdFlex isPrepared] ) {
        // 再生開始
        [self.movieNativeAdFlex play];
    }
}

- (IBAction)finishAd:(id)sender {
    if (self.movieNativeAdFlex) {
        // 再生終了
        [self.movieNativeAdFlex finish];
    }
}

#pragma mark - Delegate

- (void)AdsFetchCompleted:(NSString *)appID isTestMode:(BOOL)isTestMode_inApp {
    // 動画広告の読み込みが完了した
}

- (void)AdsDidShow:(NSString *)appID adNetworkKey:(NSString *)adNetworkKey {
    // 動画の表示を開始した
}

- (void)AdsDidCompleteShow:(NSString *)appID {
    // 動画広告を最後まで観た
}

- (void)AdsDidHide:(NSString *)appID {
    // 動画広告を閉じた
}

- (void)AdsPlayFailed:(NSString *)appID {
    // 動画広告再生エラー
}

Swift

● アプリ起動 〜 事前準備開始
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    if ADFmyMovieNativeAdFlex.isSupportedOSVersion() {
        // 広告枠IDを指定し、OSがサポートバージョン以上だったら、動動画読込を開始
        if let vc = self.window?.rootViewController {
            ADFmyMovieNativeAdFlex.initWithAppID("広告枠ID", viewController: vc)
        }
    }
    return true
}
● デリゲート実装 〜 インスタンス受け取り 〜 再生開始
class SampleViewController: UIViewController, ADFmyMovieRewardDelegate {

    private var ad: ADFmyMovieNativeAdFlex? = nil

    override func viewDidLoad() {
        // デリゲートをセットしてADFmyMovieNativeAdFlexのインスタンスを取得する
        ad = ADFmyMovieNativeAdFlex.getInstance("広告枠ID", delegate: self)
    }

    @IBAction func didTapPlayButton(_ sender: Any) {
        if let nativeAdFlex = ad, nativeAdFlex.isPrepared() {
            // 再生開始
            nativeAdFlex.play()
        }
    }

    @IBAction func didTapFinishButton(_ sender: Any) {
        if let nativeAdFlex = ad {
            // 再生終了
            nativeAdFlex.finish()
        }
    }

    func adsFetchCompleted(_ appID: String!, isTestMode isTestMode_inApp: Bool) {
        // 動画広告の読み込みが完了した
    }

    func adsDidShow(_ appID: String!, adNetworkKey: String!) {
        // 動画広告の表示を開始した
    }

    func adsDidCompleteShow(_ appID: String!) {
        // 動画広告を最後まで観た
    }

    func adsDidHide(_ appID: String!) {
        // 動画広告を閉じた
    }

    func adsPlayFailed(_ appID: String!) {
        // 動画広告の再生エラー
    }
}

results matching ""

    No results matching ""