「AdMob Mediation Banner」修訂間的差異

出自TAMedia
跳至導覽 跳至搜尋
imported>Wikiuser
imported>Wikiuser
行 3: 行 3:
新增Custom Event的詳細說明可以參考https:'''//developers.google.com/mobile-ads-sdk/docs/admob/mediation#ios。<br>'''
新增Custom Event的詳細說明可以參考https:'''//developers.google.com/mobile-ads-sdk/docs/admob/mediation#ios。<br>'''
最後,在專案中加入與Custom Event對應的Class,其中Custom Event的Class Name需要和新增的Class Name保持一致,例如Custom Event的Class Name是TADCustomView,則新增的Class Name也必須為TADCustomView。
最後,在專案中加入與Custom Event對應的Class,其中Custom Event的Class Name需要和新增的Class Name保持一致,例如Custom Event的Class Name是TADCustomView,則新增的Class Name也必須為TADCustomView。


== Custom Banner View ==
== Custom Banner View ==

於 2014年7月14日 (一) 06:56 的修訂

首先將AdMob和TAMedia SDK整合至專案中,AdMob SDK可以在這裡下載 https://developers.google.com/mobile-ads-sdk/download?#downloadios。
接著在AdMob Mediation新增Custom Event(https://mediation.admob.com)。
新增Custom Event的詳細說明可以參考https://developers.google.com/mobile-ads-sdk/docs/admob/mediation#ios。
最後,在專案中加入與Custom Event對應的Class,其中Custom Event的Class Name需要和新增的Class Name保持一致,例如Custom Event的Class Name是TADCustomView,則新增的Class Name也必須為TADCustomView。


Custom Banner View

// TADCustomBanner.h

// 匯入 TAMedia SDK 定義
#import "TADBannerView.h"
#import "TADBannerViewDelegate.h"

// 匯入 Admob SDK 定義
#import "GADCustomEventBanner.h"
#import "GADCustomEventBannerDelegate.h"

@interface TADCustomBanner : NSObject<GADCustomEventBanner, TADBannerViewDelegate>
{
    // 以 instant variable 的方式, 宣告 bannerView 物件
    TADBannerView *_bannerView;
}

@property (nonatomic, weak) id<GADCustomEventBannerDelegate> delegate;

@end


// TADCustomBanner.m

#import "TADCustomBanner.h"

@interface TADCustomBanner ()
@end

@implementation TADCustomBanner

@synthesize delegate = _delegate;

- (void)requestBannerAd:(GADAdSize)adSize
              parameter:(NSString *)serverParameter
                  label:(NSString *)serverLabel
                request:(GADCustomEventRequest *)customEventRequest  {
    
    // 將 GADCustomEventRequest 物件裡的資訊轉入 TADRequest 物件
    TADRequest *tadRequest = [TADRequest request];
    tadRequest.testing = customEventRequest.isTesting;
    tadRequest.gender = (TADGender)customEventRequest.userGender;
    tadRequest.birthday = customEventRequest.userBirthday;
    [tadRequest setLocationWithLatitude:customEventRequest.userLatitude longitude:customEventRequest.userLongitude accuracy:customEventRequest.userLocationAccuracyInMeters];
    
    // bannerView 物件初始化, 帶入自訂的origin
    if (!_bannerView) {
        _bannerView = [[TADBannerView alloc] initWithAdSize:TADAdSizeFromCGSize(adSize.size) origin:CGPointMake(0.0, 264.0)];
    }
    
    // 必須要設定delegate
    _bannerView.delegate = self;
    
    // serverParameter 為 AD Unit ID, 在 Admob 裡設定
    _bannerView.adUnitID = serverParameter;
    
    // 載入廣告
    [_bannerView loadRequest:tadRequest];
}

#pragma mark -
#pragma mark - TADBannerViewDelegate

- (void)adViewDidReceiveAd:(TADBannerView *)view {
    NSLog(@"CustomBanner - didReceived! View: %@", view);
    [_delegate customEventBanner:self didReceiveAd:view];
    
    // 在這裡設定 rootViewController!!!
    view.rootViewController = [_delegate viewControllerForPresentingModalView];
}

- (void)adView:(TADBannerView *)view didFailToReceiveAdWithError:(NSError *)error {
    [_delegate customEventBanner:self didFailAd:error];
}

- (void)adViewWillPresentScreen:(TADBannerView *)adView {
    [_delegate customEventBannerWillPresentModal:self];
}

- (void)adViewWillDismissScreen:(TADBannerView *)adView {
    [_delegate customEventBannerWillDismissModal:self];
}

- (void)adViewDidDismissScreen:(TADBannerView *)adView {
    [_delegate customEventBannerDidDismissModal:self];
}

- (void)adViewWillLeaveApplication:(TADBannerView *)adView {
    [_delegate customEventBannerWillLeaveApplication:self];
}

- (void)dealloc {
    // Custom物件消失前, 要將 bannerView 及其 delegate 設為 nil
    if (_bannerView != nil) {
        _bannerView.delegate = nil;
        _bannerView = nil;
    }
}

@end




Back