问题描述
我的应用程序在UIScrollView中(通过DFP广告管理系统)提供了三个广告。我使用了适用于iOS的旧版AdMob SDK,并且一切正常。我决定下载新版本,因为AppStore存在一些问题。添加新版本后,出现错误:
My app provide three ads in UIScrollView (via DoubleClick for Publisher). I used old version of AdMob SDK for iOS and everything works correctly. I decided to download new version because there were some problems with AppStore. Once I added new version, I'm getting error:
Error Domain=com.google.ads Code=1 "Request Error: No ad to show." UserInfo=0x14e88e60 {NSLocalizedDescription=Request Error: No ad to show., NSLocalizedFailureReason=Request Error: No ad to show.}
广告具有自定义尺寸的广告素材(320x125)。添加了UIScrollView的是960x125,并作为UITableView的标题放置。
Ads have custom size of creatives (320x125). UIScrollView where it's been added is 960x125 and It's placed as header of UITableView.
横幅代码:
- (void)viewDidLoad {
[super viewDidLoad];
DFPBannerView *bannerView = (DFPBannerView *)self.view;
[self preventBannerCaptureTouch:bannerView];
// Create a view of the standard size at the bottom of the screen.
// Available AdSize constants are explained in GADAdSize.h.
//bannerView = [[DFPBannerView alloc] initWithAdSize:CG];
bannerView.adSize = GADAdSizeFromCGSize(CGSizeMake(320, 125));
// Specify the ad's "unit identifier." This is your DFP ad unit ID.
bannerView.adUnitID = self.adUnitID;
[bannerView setAppEventDelegate:self];
[bannerView setDelegate:self];
bannerView.rootViewController = self.bannerOwner;
// Initiate a generic request to load it with an ad.
GADRequest *request = [[GADRequest alloc] init];
//request.testDevices = [NSArray arrayWithObjects: nil];
[bannerView loadRequest:request];
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
spinner.center = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height / 2);
[self.view addSubview:spinner];
[spinner startAnimating];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
- (void)preventBannerCaptureTouch:(GADBannerView*)bannerView {
for (UIWebView *webView in bannerView.subviews) {
if ([webView isKindOfClass:[UIWebView class]]) {
webView.scrollView.bounces = NO;
for (UIGestureRecognizer *gestureRecognizer in webView.gestureRecognizers) {
if ([gestureRecognizer isKindOfClass:NSClassFromString(@"GADImpressionTicketGestureRecognizer")]) {
gestureRecognizer.delegate = self;
}
}
for (id view in [[[webView subviews] objectAtIndex:0] subviews]) {
if ([view isKindOfClass:NSClassFromString(@"UIWebBrowserView")]) {
for (UIGestureRecognizer *recognizer in [view gestureRecognizers]) {
if ([recognizer isKindOfClass:NSClassFromString(@"UIWebTouchEventsGestureRecognizer")]) {
[view removeGestureRecognizer:recognizer];
}
}
return;
}
}
}
[webView setTintColor:[UIColor whiteColor]];
}
}
- (void)viewWillUnload {
[super viewWillUnload];
DFPBannerView *bannerView = (DFPBannerView *)self.view;
bannerView.appEventDelegate = nil;
bannerView.delegate = nil;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.bannerSlider bannerTouchesBegan:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[self.bannerSlider bannerTouchesEnded:touches withEvent:event];
}
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
[spinner stopAnimating];
}
- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error {
NSLog(@"GOOGLE Ad ERROR: %@", error);
[spinner stopAnimating];
}
UIScrollView的代码:
Code of UIScrollView:
- (void)viewDidLoad {
[super viewDidLoad];
UIScrollView *view = (UIScrollView *)self.view;
view.bounces = NO;
// @"/6499/example/banner"
GWBannerController *oneController = [[GWBannerController alloc] initWithNibName:@"BannerView" bundle:nil bannerOwner:self.bannerOwner bannerSlider:self ID:@"/XXX/iOSLeaderBanner_One"];
//GWBannerController *oneController = [[GWBannerController alloc] initWithNibName:@"BannerView" bundle:nil bannerOwner:self.bannerOwner bannerSlider:self ID:@"/6499/example/banner"];
oneController.view.frame = CGRectMake(0, 0, 320, 125);
[view addSubview:oneController.view];
[bannerArray addObject:oneController];
GWBannerController *twoController = [[GWBannerController alloc] initWithNibName:@"BannerView" bundle:nil bannerOwner:self.bannerOwner bannerSlider:self ID:@"/XXX/iOSLeaderBanner_Two"];
twoController.view.frame = CGRectMake(320, 0, 320, 125);
[view addSubview:twoController.view];
[bannerArray addObject:twoController];
GWBannerController *threeController = [[GWBannerController alloc] initWithNibName:@"BannerView" bundle:nil bannerOwner:self.bannerOwner bannerSlider:self ID:@"/XXX/iOSLeaderBanner_Three"];
threeController.view.frame = CGRectMake(640, 0, 320, 125);
[view addSubview:threeController.view];
[bannerArray addObject:threeController];
[view setContentSize:CGSizeMake(960, 125)];
[self startTimer];
}
推荐答案
广告服务器将返回此内容信息的主要原因是您的广告单元ID没有广告。检查您的广告单元ID是否正确。如果横幅广告的横幅宽度/高度为0,都会出现相同的错误。请确保您的adUnitID是完美的。
The ad server will return this message mainly because there are no ads for your ad unit id. Check whether your ad unit id is proper or not. You will get the same error if either your banner width/height is 0. Make sure that your adUnitID is perfect.
这篇关于DFP广告管理系统问题:无广告展示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!