如何使用AdMob中介界面?

1. 集成 AdMob 廣告
請按照將AdMob廣告集成到應用中的相同說明操做。要集成非插頁式廣告(橫幅尺寸、頁首橫幅尺寸等),請遵守admob裏集成KeyMob橫幅式廣告教程說明。要集成插頁式廣告(佔據整個屏幕的全屏廣告),請遵守admob裏集成KeyMob插頁式廣告教程說明。

完成這些集成步驟以後,您須要執行下文介紹的一些小修改,將AdMob廣告展現位置改成中介展現位置,從而展現來自多個廣告網絡的廣告。

2. 添加廣告網絡適配器和SDK
如今您能夠下載並向項目中添加相關廣告網絡的適配器和 SDK,以便投放來自這些廣告網絡的廣告。您能夠在中介網絡頁面上找到這些廣告網絡的連接。

要在Xcode中添加您下載的廣告網絡適配器/SDK,請右鍵點擊您的項目,而後點擊Add Files to <project>(將文件添加到 <項目>)

3.添加必需的連接器標記
如今您須要將-ObjC添加到應用目標的構建設置中的 Other Linker Flags(其餘連接器標記):
1:在 Xcode 的項目導航器中,按藍色的頂級項目圖標。
2:依次點擊目標和Build Settings(構建設置)標籤。
3:在Other Linker Flags(其餘連接器標記)下,將-ObjC同時添加至 Debug(調試 )和 Release(發佈)。

4. 加入廣告網絡配置
您須要加入所選的廣告網絡要求的框架、編譯器標記或連接器標記。爲方便您查閱,中介網絡頁面中提供了相應連接,指向針對每一個廣告網絡的具體說明。

您無需撰寫額外的代碼來建立每一個廣告網絡的廣告視圖。AdMob Mediation SDK 會根據須要調用每一個廣告網絡的適配器和 SDK 以建立廣告。下文將介紹如何設置中介監聽器,以便您收到全部廣告網絡的廣告事件通知。

5.(可選)指定其餘請求參數
您能夠視須要在請求中添加用戶的地理位置、性別和生日。這些不是必需的參數,可是廣告網絡可使用它們投放定位更精確的廣告。咱們提供了用於設置生日和地理位置的方法,還提供了用於設置性別的屬性。系統會將這些信息傳遞給全部接受這些參數的廣告網絡。請查看如下示例:
- (void)setBirthdayWithMonth:(NSInteger)m day:(NSInteger)d year:(NSInteger)y;

- (void)setLocationWithLatitude:(CGFloat)latitude longitude:(CGFloat)longitude accuracy:(CGFloat)accuracyInMeters;

@property (nonatomic, assign) GADGender gender;

typedef enum {
  kGADGenderUnknown,
  kGADGenderMale,
  kGADGenderFemale
} GADGender;
一些廣告網絡接受用戶收入或橫幅廣告顏色等其餘參數。廣告網絡會逐漸在它們的中介適配器中添加對這些具體參數的支持,不過目前還沒法傳遞針對特定廣告網絡的參數。

6.(可選)設置事件通知
要收到有關廣告生命週期事件(例如展現)的通知,您能夠實現GADBannerViewDelegate。在使用中介時,此委託會自動將您正在中介的全部廣告網絡的事件通知給您。例如,來自任意廣告網絡的展現會經過GADBannerViewDelegate的方法adViewDidReceiveAd進行報告。

7.(可選)實現自定義事件
利用自定義事件,您能夠投放來自您的廣告服務器的廣告,或投放來自AdMob中介不支持的廣告網絡的廣告,或者調用您選擇的任何其餘代碼。

要建立自定義事件,請定義一個實現GADCustomEventBanner的類。
自定義事件必須在成功收到廣告或沒法收到廣告時向GADCustomEventBannerDelegate回報。爲此,您須要調用合適的委託方法(以下所示)。若是沒法作到這一點,中介按序調用備用廣告的功能就沒法正確運行。

理想狀況下,您的自定義事件還應通知委託,以報告點擊次數和點擊操做的結果(呈現全屏模式或退出應用)。這樣一來,您的報告中將會顯示點擊統計信息,您設置的全部事件監聽器都會正確運行。

咱們會在運行時實例化您的GADCustomEventBanner,併爲您設置GADCustomEventBannerDelegate,您無需自行實例化這些類。

下面是一個自定義事件示例:
@implementation MyCustomEventBanner

// Will be set by the SDK.
@synthesize delegate = delegate_;

#pragma mark -
#pragma mark GADCustomEventBanner

- (void)requestBannerAd:(GADAdSize)adSize
              parameter:(NSString *)serverParameter
                  label:(NSString *)serverLabel
request:(GADCustomEventRequest *)request {

// TODO: Use the parameters and self.delegate to make a banner request to your

// ad network. Remember to set this class to be your banner's delegate.

}

#pragma mark -
#pragma mark MyBanner Callbacks

- (void)adViewDidReceiveAd:(MyBanner *)view {
[self.delegate customEventBanner:self didReceiveAd:view];

}

- (void)adView:(MyBanner *)view
didFailToReceiveAdWithError:(NSError *)error {
[self.delegate customEventBanner:self didFailAd:error];

}

- (void)adViewWillPresentScreen:(MyBanner *)adView {
[self.delegate customEventBannerWillPresentModal:self];

}

- (void)adViewWillDismissScreen:(MyBanner *)adView {
[self.delegate customEventBannerWillDismissModal:self];

}

- (void)adViewDidDismissScreen:(MyBanner *)adView {
[self.delegate customEventBannerDidDismissModal:self];

}

- (void)adViewWillLeaveApplication:(MyBanner *)adView {
[self.delegate customEventBannerWillLeaveApplication:self];

}

@end

有關詳情,請參閱GADCustomEventBanner.h和GADCustomEventBannerDelegate.h文件。
自定義事件能夠調用廣告請求的方法以訪問年齡或性別等請求參數。有關詳情,請參閱GADCustomEventRequest.h。

要建立佔據整個屏幕的插頁式廣告自定義事件,而不是橫幅廣告視圖中的自定義事件,請使用GADCustomEventInterstitial取代GADCustomEventBanner(有關詳情,請參閱GADCustomEventInterstitial.h和GADCustomEventInterstitialDelegate.h文件)。

8. (可選)檢查 adNetworkClassName的值
您能夠視須要檢查GADBannerView的adNetworkClassName屬性,此屬性可返回在調用adViewDidReceiveAd回調後提取了當前橫幅廣告的廣告網絡的廣告網絡類名稱:
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
NSLog(@"Banner adapter class name: %@", bannerView.adNetworkClassName);

}

一樣,對於插頁式廣告,請在interstitialDidReceiveAd中檢查GADInterstitial的adNetworkClassName屬性:
- (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial {
NSLog(@"Interstitial adapter class name: %@",  interstitial.adNetworkClassName);

}

對於標準Google AdMob廣告和經過中介投放的 Google AdMob 廣告,adNetworkClassName會返回GADMAdapterGoogleAdMobAds。對於經過自定義事件獲取的廣告,該屬性會返回GADMAdapterCustomEvents。

9.(可選)處理旋轉和全寬橫向廣告
智能橫幅廣告仍然屬於新鮮事物,所以來自其餘廣告網絡的中介支持較爲有限。不過,有幾個廣告網絡支持「細長」的廣告格式(在 iPhone 上展現的 480x32 和在 iPad 上展現的 1024x66)。對於這些廣告網絡,您能夠在UIViewController中指定kGADAdSizeSmartBannerLandscape智能橫幅廣告尺寸,以便在橫向模式中投放這些細長的廣告尺寸。請參見如下示例代碼:
1:定義 adSizeForOrientation:
// Define a common function for choosing an ad size based on the device's
// orientation.
- (GADAdSize)adSizeForOrientation:(UIInterfaceOrientation)orientation {
// Landscape.
// Only some networks support a thin landscape size
// (480x32 on iPhone or 1024x90 on iPad).

if (UIInterfaceOrientationIsLandscape(orientation)) {
     return kGADAdSizeSmartBannerLandscape;
  }
  // Portrait.
  // Most networks support banner (320x50) and Leaderboard (728x90)
  // sizes.
  if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    return kGADAdSizeLeaderboard;
  } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    return kGADAdSizeBanner;
  }
  // Unknown idiom.
  return kGADAdSizeBanner;

}

2:在建立廣告時調用尺寸選擇函數:
{
// Call the common function you've defined to choose the appropriate ad size
// at ad creation time.
GADAdSize adSize = [self adSizeForOrientation:self.interfaceOrientation];
GADBannerView *adView = [[GADBannerView alloc] initWithAdSize:adSize];
// Request ad

}

3:針對不一樣的屏幕方向設置廣告尺寸:
// In the code of your UIViewController that handles interface rotation, set the
// appropriate ad size.

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
self.adView.adSize = [self adSizeForOrientation:orientation];

}git

相關文章
相關標籤/搜索