カルーセル広告 実装方法

表示できる広告種類

広告種類 動画 静止画 サイズ 説明
ネイティブ広告 1:1.7の比率 1:1.7のネイティブ比率の広告を表示出来ます

カルーセル広告のサイズ

縦横の比率は端末がiPhoneとiPadで異なります。

端末 比率(横:縦)
iPhone 413 : 307
iPad 151 : 59

カルーセル内の広告がiPhoneの場合は画面に2.2個表示され、iPadの場合は画面に4.2個表示される仕様の為です。

実装方法

ファイルのインポート

#import <ADFMovieReward/ADFmyCarousel.h>

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

インスタンスの生成

+ (instancetype)initializeWithAppIDList:(NSDictionary<NSString *, NSString *> *)appIdDic;
パラメータ 説明
appIDDic Key(任意の文字列) : 広告枠ID

ADFmyCarouselクラスのinitializeWithAppIDList:メソッドにDictionary型(Key(任意の文字列):広告枠ID)を設定します。メソッドの返り値でADFmyCarouselクラスのインスタンスが返されます。
※Keyは、カルーセル広告内でImpressionなどのイベントが発生した時に、ADFmyCarouselDelegateのコールバック関数の引数で広告枠IDと一緒に渡されます。
initializeWithAppIDList:メソッドでは広告読み込みは行われず、通信も発生しません。

広告の読み込み

- (void)loadAndNotify:(id<ADFmyCarouselDelegate>)delegate;
パラメータ 説明
delegate デリゲートオブジェクト

設定された広告枠IDから広告を読み込みます。
ユーザー端末がiPhoneの場合は広告が4つ取得完了するまで読み込み、iPadの場合は広告が8つ取得完了するまで読み込みます。残りの広告枠は、カルーセル広告を端までスクロールした時に自動で読み込まれます。

取得の成功失敗をコールバックで受け取るためにloadAndNotifyTo:メソッドの引数にデリゲートを指定します。


ADFmyCarouselDelegate

広告読み込み終了時

- (void)onCarouselLoadFinish:(UIView *)carouselView;

広告の取得に成功した場合にコールバックされます。引数のcarouselViewを適切なサイズで表示してください。

パラメータ 説明
carouselView カルーセルの広告View

全広告読み込み失敗時

- (void)onCarouselLoadError:(ADFMovieError *)error;

initializeWithAppIDList:メソッドで設定された全広告枠IDで広告の取得に失敗した場合にコールバックされます。引数のADFMovieError については、「ADFMovieError_NoStock:0:広告の在庫がない場合」のみ渡されます。

パラメータ 説明
error エラー内容を格納したオブジェクト

その他イベント時

広告インプレッション時

- (void)onCarouselViewImpressionKey:(NSString *)key appID:(NSString *)appID index:(NSInteger)index;

広告クリック時

- (void)onCarouselViewClickKey:(NSString *)key appID:(NSString *)appID index:(NSInteger)index;
パラメータ 説明
key カルーセルインスタンス生成時に設定したkey
appID インプレッションが発生した広告枠ID
index カルーセルView内のindex

実装例(Objective-C)

● インスタンス生成 〜 広告の取得

@interface ViewController()<ADFmyCarouselDelegate>
@property (nonatomic)ADFmyCarousel *carousel;
@end

@implementation ViewController
- (void)viewDidLoad {
    //広告枠IDの設定
    self.carousel = [[ADFmyCarousel alloc] initWithAppIDList:@[@"広告枠1", @"広告枠2", @"広告枠3", @"広告枠4", @"広告枠5", @"広告枠6"]];

    //広告の読み込み
    [self.carousel loadAndNotify:self];
}

#pragma mark - ADFmyCarouselDelegate

//広告の取得成功のコールバック
- (void)onCarouselLoadFinish:(UIView *)carouselView {
    //広告を表示する処理を実装
}

//広告の取得失敗のコールバック
- (void)onCarouselLoadError:(ADFMovieError *)error {
    //読み込み失敗
}

● 広告の表示〜広告のコールバックイベント受け取り

@implementation ViewController

- (void)onCarouselLoadFinish:(UIView *)carouselView {
    //広告を表示する処理を実装
    carouselView.frame = self.containerView.bounds;
    [self.containerView addSubview:carouselView];
}

- (void)onCarouselLoadError:(ADFMovieError *)error {
    //読み込み失敗
}

- (void)onCarouselViewImpressionAppID:(NSString *)appID index:(NSInteger)index {
    //インプレッション時
}

- (void)onCarouselViewClickAppID:(NSString *)appID index:(NSInteger)index {
    //クリック時
}

実装例(Swift)

● インスタンス生成 〜 広告の取得

class ViewController: UIViewController, ADFmyCarouselDelegate {
    private var carousel: ADFmyCarousel?

    override func viewDidLoad() {
        super.viewDidLoad()

        //広告枠IDの設定
        carousel = ADFmyCarousel.initialize(withAppIDList: ["広告枠1", "広告枠2", "広告枠3", "広告枠4", "広告枠5", "広告枠6",])

        //広告の読み込み
        carousel?.loadAndNotify(self)
    }

    //広告の取得成功のコールバック
    func onCarouselLoadFinish(_ carouselView: UIView) {
        //広告を表示する処理を実装
    }

    //広告の取得失敗のコールバック
    func onCarouselLoadError(_ error: ADFMovieError) {
        //読み込み失敗
    }
}

● 広告の表示〜広告のコールバックイベント受け取り


class ViewController: UIViewController, ADFmyCarouselDelegate {

    func onCarouselLoadFinish(_ carouselView: UIView) {
        //広告を表示する処理を実装
        carouselView.frame = self.containerView.bound
        self.containerView.addSubView(carouselView)
    }

    func onCarouselLoadError(_ error: ADFMovieError) {
        //読み込み失敗
    }

    func onCarouselViewImpressionAppID(_ appID: String, index: Int) {
        //インプレッション時
    }

    func onCarouselViewClickAppID(_ appID: String, index: Int) {
        //クリック時
    }
}

results matching ""

    No results matching ""