「Expandable」修訂間的差異
跳至導覽
跳至搜尋
imported>Wikiuser |
imported>Wikiuser |
||
| 行 92: | 行 92: | ||
@optional | @optional | ||
'''// Ad Request Lifecycle Notifications''' | '''// Ad Request Lifecycle Notifications''' | ||
'''// 廣告載入成功後被呼叫, 可以在這裡呈現廣告''' | '''// 廣告載入成功後被呼叫, 可以在這裡呈現廣告''' | ||
- (void)adViewDidReceiveAd:(TADBannerView *)view; | - (void)adViewDidReceiveAd:(TADBannerView *)view; | ||
| 行 98: | 行 98: | ||
- (void)adView:(TADBannerView *)view didFailToReceiveAdWithError:(TADRequestError *)error; | - (void)adView:(TADBannerView *)view didFailToReceiveAdWithError:(TADRequestError *)error; | ||
'''// Click-Time Lifecycle Notifications''' | '''// Click-Time Lifecycle Notifications''' | ||
'''// 廣告即將被呈現之前被呼叫''' | '''// 廣告即將被呈現之前被呼叫''' | ||
- (void)adViewWillPresentScreen:(TADBannerView *)adView; | - (void)adViewWillPresentScreen:(TADBannerView *)adView; | ||
於 2014年7月24日 (四) 09:04 的修訂
擴張式廣告結合了橫幅及插頁式廣告, 讓橫幅廣告被點擊後先不會因打開瀏覽器app而離開廣告所在的app, 讓使用者可以在同一個app裡全版面的豐富體驗
加入 ExpandableView
Expandable廣告使用 TADBannerView class 來實現擴張的行為 加入方法與 TADBannerView 相同
// ExpandableViewController.h
// 匯入 TAMedia SDK 定義
#import "TADBannerView.h"
@interface ExpandableViewController : UIViewController <TADBannerViewDelegate>
{
// 以 instant variable 的方式, 宣告 bannerView 物件
TADBannerView *bannerView;
}
@end
// ExpandableViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor whiteColor];
self.title = @"TAMedia Expandable";
UIButton *fireButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
fireButton.frame = CGRectMake(10, 120, 200, 40);
fireButton.backgroundColor = [UIColor colorWithRed:239/255.0 green:239/255.0 blue:239/255.0 alpha:1.0];
[fireButton setTitle:@"Expandable Ad" forState:UIControlStateNormal];
[fireButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[fireButton addTarget:self action:@selector(requestAd) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:fireButton];
}
- (void)requestAd
{
TADRequest *request = [TADRequest request];
// Type: TADGender
request.gender = [_GENDER_];
// Set birthday
[request setBirthdayWithYear:[_YEAR_] month:[_MONTH_] day:[_DAY_]];
// Set location
[request setLocationWithLatitude:[_LATITUDE_] longitude:[_LONGITUDE_] accuracy:[_ACCURACY_]];
// bannerView 物件初始化, 帶入自訂的origin
if (!bannerView) {
bannerView = [[TADBannerView alloc] initWithAdSize:kTADAdSizeBanner origin:CGPointMake(0, self.view.frame.size.height - 50)];
}
// 必須要設定delegate
bannerView.delegate = self;
// 設定 AD Unit ID
bannerView.adUnitID = [_YOUR_AD_UNIT_ID_];
// 設定 rootViewController
bannerView.rootViewController = self;
// 載入廣告
[bannerView loadRequest:request];
}
特別注意
在 ViewController 的 view 即將消失前, 必須要將 bannerView 本身以及其 delegate 設定為 nil
// ExpandableViewController.m
- (void)viewWillDisappear:(BOOL)animated {
// viewController 的 view 消失前, 必須將 bannerView 及其 delegate 設為 nil
if (bannerView != nil) {
bannerView.delegate = nil;
bannerView = nil;
}
}
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