カルーセル広告 実装方法
表示できる広告種類
広告種類 | 動画 | 静止画 | サイズ | 説明 |
---|---|---|---|---|
ネイティブ広告 | ☓ | ○ | 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) {
//クリック時
}
}