2014-09-03 2 views
4

Мое приложение предоставляет три объявления в UIScrollView (через DoubleClick for Publisher). Я использовал старую версию SDK AdMob для iOS, и все работает правильно. Я решил загрузить новую версию, потому что были некоторые проблемы с AppStore. Как только я добавил новую версию, я получаю сообщение об ошибке:Вопрос DFP: Объявление не отображается

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.

Banner Код:

- (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:

- (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]; 
} 

ответ

4

Сервер объявлений будет возвращать это сообщение в основном потому, что нет объявления для вашего рекламного блока ид. Проверьте, является ли ваш идентификатор рекламного блока правильным или нет. Вы получите ту же ошибку, если ваша ширина/высота баннера равна 0. Убедитесь, что ваш adUnitID прекрасен.

Смежные вопросы