2012-05-08 60 views
3

我從以下鏈接集成了iAd/Admob顯示代碼:http://www.apptite.be/tutorial_mixing_ads.php 並且出現了一些奇怪的結果。在admob上,我的點擊率下降了40%,但展示次數保持不變。就好像兩個廣告同時展示一樣,iAds在admob廣告之上。有沒有人看到可能導致該網站的代碼問題?iAd&Admob集成

非常感謝您的幫助。

+1

我會推薦使用調解解決方案來實施多個廣告網絡,而不是滾動您自己的自制咖啡解決方案。 AdMob的最新SDK包含[廣告網絡中介](https://developers.google.com/mobile-ads-sdk/docs/ios/mediation/),iAd是受支持的廣告網絡之一。 –

回答

0

首先,我們應該從谷歌下載Admob Sdk。 該文件需要在谷歌的AdMob API: -

GADAdSize.h
GADBannerView.h
GADBannerViewDelegate.h
GADInterstitial.h
GADInterstitial.h
GADRequest.h
GADRequestError.h
libGoogleAdMobAds

#import <UIKit/UIKit.h> 
#import "GADBannerViewDelegate.h" 

@class GADBannerView, GADRequest; 

@interface BannerExampleViewController : UIViewController 
    <GADBannerViewDelegate> { 
    GADBannerView *adBanner_; 
} 

@property (nonatomic, retain) GADBannerView *adBanner; 

- (GADRequest *)createRequest; 

@end 


#import "BannerViewController.h" 
#import "GADBannerView.h" 
#import "GADRequest.h" 

@implementation BannerExampleViewController 

@synthesize adBanner = adBanner_; 

#pragma mark init/dealloc 

// Implement viewDidLoad to do additional setup after loading the view, 
// typically from a nib. 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    CGPoint origin = CGPointMake(0.0, 
           self.view.frame.size.height - 
           CGSizeFromGADAdSize(kGADAdSizeBanner).height); 
    self.adBanner = [[[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner 
                origin:origin] 
        autorelease]; 

    self.adBanner.adUnitID = AdMob key; 
    self.adBanner.delegate = self; 
    [self.adBanner setRootViewController:self]; 
    [self.view addSubview:self.adBanner]; 
    [self.adBanner loadRequest:[self createRequest]]; 
} 

- (void)dealloc { 
    adBanner_.delegate = nil; 
    [adBanner_ release]; 
    [super dealloc]; 
} 

#pragma mark GADRequest generation 

- (GADRequest *)createRequest { 
    GADRequest *request = [GADRequest request]; 
    request.testing = YES; 
    return request; 
} 

#pragma mark GADBannerViewDelegate impl 

- (void)adViewDidReceiveAd:(GADBannerView *)adView { 
    NSLog(@"Received ad successfully"); 
} 

- (void)adView:(GADBannerView *)view 
    didFailToReceiveAdWithError:(GADRequestError *)error { 
    NSLog(@"Failed to receive ad with error: %@", [error localizedFailureReason]); 
} 

@end 
0

嗯,所以我看,上面寫着代碼:

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
    NSLog(@"iAdBanner failed"); 

    // Only request adMob when iAd did fail 
    [self adMobRequest]; 

而且在蘋果的網站,它說:「錯誤發送到您的委託後,也橫幅畫面繼續嘗試下載新的廣告,因此,實施這兩種委託方法可以讓您的應用程序僅在廣告加載時顯示廣告條。「 (link

我在猜測發生的事情是,如果iAd失敗,您顯示的是AdMob廣告,但是iAd也會重試,因此如果它再次失敗,則會請求另一個AdMob廣告儘管可能已經有人出現了?