2012-05-08 156 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广告尽管可能已经有人出现了?