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
應用程式及將改在背景執行或中止運作前被呼叫