web-dev-qa-db-fra.com

Erreur de requête d'admob bannerView: Aucune annonce à afficher

Je rencontre ce problème sur l'une de mes annonces pour un jeu iOS

Voici mon code, ce qui est étrange, c'est que si j'ajoute le périphérique à la liste request.testDevices, il affiche la bannière de démonstration. Si je supprime de testDevices, il n'affiche pas de véritable bannière, mais si je change d'outil bundleIdentifier sous XCODE, cela montre une vraie bannière, alors je pense que c'est quelque chose avec mon compte d'admob, est-ce que quelqu'un a jamais eu quelque chose comme ça?

Il échoue toujours avec cette erreur:

AdView didFailToReceiveAdWithError ---------------------------: Domaine d'erreur = com.google.ads Code = 1 "Erreur de requête: Aucune annonce à afficher. " UserInfo = {NSLocalizedDescription = Erreur de demande: aucune annonce à afficher., NSLocalizedFailureReason = Erreur de demande: aucune annonce à afficher.}

Sur mon AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Use Firebase library to configure APIs
    [FIRApp configure];
    [[FIRAnalyticsConfiguration sharedInstance] setAnalyticsCollectionEnabled:YES];
    // Initialize Google Mobile Ads SDK
    [GADMobileAds configureWithApplicationID:@"ca-app-pub-xx~xx"];
    /* other stuff here... */

}

sur mon rootViewController.m

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

   [self addBanner];
   // ..... more stuff here;
 }

- (void)addBanner{

    NSLog(@"CALL ADD BANNER ROOTVIEWCONTROLLER");

    if(!bannerViewAdded && ![MKStoreManager isFeaturePurchased:kFeatureAId]){

    NSLog(@"ADD BANNER ROOTVIEWCONTROLLER");
    CGSize size = [[CCDirector sharedDirector] winSize];


    // Create adMob ad View (note the use of various macros to detect device)
    if (IS_IPAD || IS_IPADHD) {
        bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeLeaderboard];
        bannerView.center = CGPointMake(size.width/2, (size.height-CGRectGetHeight(bannerView.frame)/2)-2);
    }
    else if (IS_IPHONE6) {
        bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
        bannerView.center = CGPointMake(size.width/2, (size.height-CGRectGetHeight(bannerView.frame)/2)-2);
    }
    else if (IS_IPHONE6P) {
        bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
        bannerView.center = CGPointMake(size.width/2, (size.height-CGRectGetHeight(bannerView.frame)/2)-2);
    }
    else {
        // boring old iPhones and iPod touches
        bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
        bannerView.center = CGPointMake(size.width/2, (size.height-CGRectGetHeight(bannerView.frame)/2)-2);
    }

    //[bannerView setBackgroundColor:[UIColor blueColor]];

    // Need to set this to no since we're creating this custom view.
    //bannerView.translatesAutoresizingMaskIntoConstraints = NO;

    // Note: Edit SampleConstants.h to provide a definition for kSampleAdUnitID
    // before compiling.

    // Replace this ad unit ID with your own ad unit ID.
    bannerView.adUnitID = @"ca-app-pub-xx/xx";
    bannerView.rootViewController = self;
    bannerView.delegate = self;
    [self.view addSubview:bannerView];


    GADRequest *request = [GADRequest request];
    //request.testDevices = @[ kGADSimulatorID ];
    //request.testDevices = @[  @"xx", @"xx"  , kGADSimulatorID ];

    [bannerView loadRequest:request];
    bannerViewAdded = YES;
    }

}

- (void)removeBanner {
  //admob
  if(bannerViewAdded){
      bannerViewAdded = NO;
      [bannerView removeFromSuperview];
      [bannerView release];
      bannerView = nil;
  }
  //No AdMOB
  if(localBannerAdded){
      localBannerAdded = NO;
      [localBannerButton removeFromSuperview];
      [localBannerButton release];
      localBannerButton = nil;
  }
}


- (void)addInterstitial{

    if(!interstitialViewAdded && ![MKStoreManager isFeaturePurchased:kFeatureAId]){
        NSLog(@"INIT INTERSTITIAL ROOTVIEWCONTROLLER");
        interstitialView =  [[GADInterstitial  alloc] initWithAdUnitID:@"ca-app-pub-xx/xx"];

        GADRequest *request = [GADRequest request];
        // Requests test ads on devices you specify. Your test device ID is printed to the console when
        // an ad request is made. GADBannerView automatically returns test ads when running on a
        // simulator.
        //request.testDevices = @[ kGADSimulatorID, @"xxx", @"xxx" ];
        [interstitialView loadRequest:request];
        [interstitialView setDelegate:self];

    }

}

- (void)adView:(GADBannerView *)gadBannerView didFailToReceiveAdWithError:(GADRequestError *)error{
    NSLog(@"AdView didFailToReceiveAdWithError --------------------------- : %@",  error);
    [self removeBanner];
    if(!localBannerAdded){
        CGSize size = [[CCDirector sharedDirector] winSize];
        localBannerButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
        localBannerButton.frame = CGRectMake(0.0, 0.0, 320.0, 50.0);
        [localBannerButton setTitle:@"DOWNLOAD MORE FREE GAMES" forState:UIControlStateNormal];
        localBannerButton.backgroundColor = [UIColor whiteColor];//[UIColor clearColor];
        [localBannerButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ];
        [self.view addSubview:localBannerButton];

        [localBannerButton setCenter:CGPointMake(self.view.center.x,(size.height-CGRectGetHeight(localBannerButton.frame)/2)-2)];

        // Add Target-Action Pair
        [localBannerButton addTarget:self action:@selector(openAppStore:) forControlEvents:UIControlEventTouchUpInside];
        localBannerAdded = YES;
    }
 }
20
Gil Beyruth

Je viens d'avoir cette erreur aujourd'hui, le problème pour moi était simple, c'était parce que la adUnitID est fondamentalement encore nouvelle. J'ai dû attendre plus de 2 heures après avoir créé la adUnitID pour que les annonces soient diffusées.

Si vous rencontrez cette erreur et que certains de vos adUnitIDsservent des annonces, d'autres non. Il est fort probable que vous ayez le même problème, et la seule façon de le résoudre est d’attendre.

14
Ibrahim

Le serveur de publicité renvoie ce message principalement parce qu'il n'y a pas d'annonce pour votre identifiant de bloc d'annonce. Vérifiez si l'ID de votre bloc d'annonces est correct ou non. Vous obtiendrez la même erreur si la largeur/hauteur de votre bannière est égale à 0. Assurez-vous que votre adUnitID est parfait ..__ ou Vérifiez les liens suivants pour vous aider https://groups.google .com/forum/#! topic/google-admob-ads-sdk/ioXU2nX9W28

L'ID de l'éditeur AdMob Legacy ne diffusant aucune annonce

11
Sangram S.

Je venais de créer un nouveau compte et j'ai vu ce problème. Lors de la vérification de mon compte, un message apparaît en haut de la page d'adobe: "Vos blocs d'annonces ne s'affichent pas car vous n'avez pas encore fourni les informations de paiement de votre compte.". Cliquez sur le bouton Fixez-le, remplissez le formulaire et les annonces seront diffusées dans quelques heures.

8
Tony

J'ai rencontré cette erreur aussi. Ma bannière et mes annonces interstitielles ont échoué avec cette erreur. J'ai constaté que c'est mon erreur de modifier UserAgent globalement. Après avoir modifié UserAgent par défaut, cela fonctionne bien.

4
monkjj

Pour moi, la raison pour laquelle cela a commencé à montrer cela est que je n’avais aucun moyen de paiement configuré sur mon compte AdMob. 

Une fois que j'ai configuré cela, l'erreur a disparu et les annonces ont commencé à être diffusées instantanément.

J'espère que cela aide quelqu'un!

2
Dejan Atanasov

Cela a résolu mon problème

  1. changer l'ID de la bannière en exemple 
  2. lancez l'application alors. 
  3. changer l'identifiant en identifiant de production.
2
Husam

Une des raisons possibles est un Constraint bug.

vous devez garantir que la contrainte de votre bannerView sur d'autres vues est droite

2
yuanjilee

Assurez-vous que vous utilisez les identifiants d'annonce test lors d'une session de débogage.

https://developers.google.com/admob/ios/banner?hl=en-US

Le moyen le plus simple de charger des annonces test consiste à utiliser notre identifiant d'unité d'annonce test dédié pour les bannières iOS: ca-app-pub-3940256099942544/2934735716

1
Ric Santos

Je résous ce problème en ajoutant request.testDevice = @[@"xxxxxxxxxxxx"] avant la demande de chargement.

0
Randall Wang

J'ai eu le même problème lors du test de l'exemple d'application sur mon téléphone. J'ai fixé avec les étapes suivantes: 

Réinitialiser l'identifiant publicitaire sur l'iPhone 6, allez à: 

Paramètres -> Confidentialité -> Publicité -> Réinitialiser l'identifiant de l'annonce

0
Rawand Saeed

Cette erreur peut survenir si vous n’avez pas configuré vos informations de paiement et de facturation dans votre compte AdMob.

Facturation et paiements

0
Muhammad Nayab

Si vous utilisez votre application en mode débogage ou en mode test, assurez-vous que vous utilisez les tests AppID et BannerID fournis par google admob, qui seraient les suivants:

Google Test AdMobID: Ca-app-pub-3940256099942544 ~ 1458002511

Google Test BannerID Ca-app-pub-3940256099942544/2934735716

0
Tejinder

Assurez-vous de ne pas créer une autre variable de GADBannerView. Utilisez une variable dans chaque contrôleur en le rendant global et changez simplement l'identifiant de l'unité. 

par exemple, cette ligne doit être sortie de tout contrôleur (global)

var bannerView: GADBannerView!

puis utilisez-le où vous voulez et changez l'identifiant en conséquence

bannerView.adUnitID = "ca-app-exampleid-abcabc938-4e8"
0
Hafiz Shoaib Awan