Expandable
於 2014年6月24日 (二) 06:34 由 imported>Wikiuser 所做的修訂 (新頁面: 擴張式廣告結合了橫幅及插頁式廣告, 讓橫幅廣告被點擊後先不會因打開瀏覽器app而離開廣告所在的app, 讓使用者可以在同一個app裡全版面的...)
擴張式廣告結合了橫幅及插頁式廣告, 讓橫幅廣告被點擊後先不會因打開瀏覽器app而離開廣告所在的app, 讓使用者可以在同一個app裡全版面的豐富體驗
加入 ExpandableView
Expandable廣告使用 TADBannerView class 來實現擴張的行為 以 TADBannerView 的加入方法來加入
ExpandableViewController.h
// 匯入TADBannerView.h
#import "TADBannerView.h"
#import "TADBannerViewDelegate.h"
@interface BannerViewController : UIViewController <TADBannerViewDelegate>{
// 宣告 bannerView 為 instance variable
TADBannerView *bannerView;
}
@end
ExpandableViewController.m
#import " ExpandableViewController.h"
@implementation BannerViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 建立新的橫幅在螢幕上方, Adsize 定義在TADAdsize.h中
bannerView = [[TADBannerView alloc] initWithAdSize:kTADAdSizeBanner];
// 指定廣告Unit ID
bannerView.adUnitID = MY_BANNER_UNIT_ID;
// 指定detegate
bannerView.delegate = self;
// 指定rootViewController
bannerView.rootViewController = self;
// 將廣告view 加入self.view並請求廣告
[self.view addSubview:_bannerView];
[bannerView loadRequest: [TADRequest request]];
}
@end
特別注意
在 ViewController 的 view 即將消失前, 必須要將 bannerView 本身以及其 delegate 設定為 nil
- (void)viewWillDisappear:(BOOL)animated {
// view消失前, 必須要將bannerView物件及delegate設為nil
bannerView.delegate = nil;
bannerView = nil;
}
若要將Expandable的Banner放在螢幕下方, 建立時可定義origin
// 建立新的橫幅在螢幕下方, Adsize 定義在TADAdsize.h中 bannerView = [[TADBannerView alloc] initWithAdSize:kTADAdSizeBanner origin:CGPointMake(0, self.view.frame.size.height - 50)];
TADBannerViewDelegate
@protocol TADBannerViewDelegate <NSObject> @optional // Ad Request Lifecycle Notifications - (void)adViewDidReceiveAd:(TADBannerView *)view; - (void)adView:(TADBannerView *)view didFailToReceiveAdWithError:(TADRequestError *)error; // Click-Time Lifecycle Notifications - (void)adViewWillPresentScreen:(TADBannerView *)adView; - (void)adViewWillDismissScreen:(TADBannerView *)adView; - (void)adViewDidDismissScreen:(TADBannerView *)adView; - (void)adViewWillLeaveApplication:(TADBannerView *)adView; @end
- (void)adViewDidReceiveAd:(TADBannerView *)view
廣告載入成功後被呼叫, 可以在這裡呈現廣告
- (void)adView:(TADBannerView *)view didFailToReceiveAdWithError:(TADRequestError *)error
廣告載入失敗後被呼叫
- (void)adViewWillPresentScreen:(TADBannerView *)adView
廣告即將被呈現之前被呼叫
- (void)adViewWillDismissScreen:(TADBannerView *)adView
廣告即將被關閉之前被呼叫
- (void)adViewDidDismissScreen:(TADBannerView *)adView
廣告被關閉之後被呼叫
- (void)adViewWillLeaveApplication:(TADBannerView *)adView
應用程式及將改在背景執行或中止運作前被呼叫