Admob bannerView Error de solicitud: No hay anuncios para mostrar
objective-c cocos2d-iphone (14)
Tengo este problema en uno de mis anuncios para un juego de iOS
Aquí está mi código, lo extraño es que si agrego el dispositivo en la lista request.testDevices muestra el banner de demostración, si quito de testDevices, no muestra un banner real, pero si cambio mi BundleIdentifier en XCODE, muestra una pancarta real, por lo que creo que es algo con mi cuenta de Admob, ¿alguien tiene algo así?
Siempre está fallando con este error:
AdView didFailToReceiveAdWithError ---------------------------: Domain Domain = com.google.ads Code = 1 "Error de solicitud: No hay anuncios para mostrar. " UserInfo = {NSLocalizedDescription = Error de solicitud: No hay anuncios para mostrar., NSLocalizedFailureReason = Error de solicitud: No hay anuncios para mostrar.}
En mi 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... */
}
en mi 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;
}
}
Acababa de crear una nueva cuenta y había visto ese problema. Al verificar mi cuenta, había un mensaje en la parte superior de la página de Admob: "Sus bloques de anuncios no muestran anuncios porque todavía no ha proporcionado la información de pagos de su cuenta". Haga clic en el botón Solucionarlo, complete el formulario y los anuncios se mostrarán en unas pocas horas.
Acabo de tener este error hoy, el problema para mí era simple, era porque el adUnitID
es básicamente todavía nuevo. Tuve que esperar más de 2 horas después de crear el adUnitID
para que se sirvieran los anuncios.
Si tiene este error, y algunos de sus adUnitIDs
anuncios y otros no. Es muy probable que tenga el mismo problema, y la única forma de solucionarlo es esperar.
Asegúrate de no hacer otra variable de GADBannerView. Use una variable en cada controlador haciéndolo global y solo cambie la identificación de la unidad.
por ejemplo, esta línea debe estar fuera de cualquier controlador (global)
var bannerView: GADBannerView!
luego úselo donde quiera y solo cambie la identificación como corresponda
bannerView.adUnitID = "ca-app-exampleid-abcabc938-4e8"
Asegúrese de que está utilizando los ID de anuncio de prueba cuando está en una sesión de depuración.
https://developers.google.com/admob/ios/banner?hl=en-US
La forma más sencilla de cargar anuncios de prueba es utilizar nuestro ID de bloque de anuncios de prueba dedicado para los banners de iOS: ca-app-pub-3940256099942544/2934735716
El servidor de anuncios devolverá este mensaje principalmente porque no hay anuncios para su ID de bloque de anuncios. Compruebe si la identificación de su bloque de anuncios es correcta o no. Recibirá el mismo error si el ancho / alto de su banner es 0. Asegúrese de que su adUnitID sea perfecto. o verifique los siguientes enlaces que pueden ayudarlo a https://groups.google.com/forum/#!topic/google-admob-ads-sdk/ioXU2nX9W28
Estaba acostumbrado a iniciar el banner así:
adBannerView = GADBannerView()
y estaba funcionando.
No puedo decir exactamente de qué versión de la biblioteca de AdMob, pero de repente el banner ya no se mostraba.
Iniciar el banner con el tamaño como parámetro, solucionado el problema:
adBannerView = GADBannerView(adSize: kGADAdSizeBanner)
Este error podría ocurrir si no ha configurado su información de pago y facturación en su cuenta de AdMob. Según Admob después de configurar los detalles de pago, pueden pasar hasta 2 horas antes de que sea completamente funcional.
Esto solucionó mi problema
- cambiando id de banner a id de ejemplo
- ejecuta la aplicación entonces.
- cambiando id de nuevo a id de producción.
Me encontré con este error también. Tanto mi banner como los anuncios intersticiales fallaron con este error. Descubrí que es mi error cambiar a UserAgent globalmente, después de cambiar UserAgent para que funcione por defecto.
Para mí, la razón por la que comenzó a mostrar esto es que no tenía ningún método de pago configurado en mi cuenta de AdMob.
Una vez que haya configurado esto, el error desapareció y los anuncios comenzaron a mostrarse al instante.
¡Espero que esto ayude a alguien!
Resuelvo esto agregando request.testDevice = @[@"xxxxxxxxxxxx"]
antes de la solicitud de carga. (Obtengo este consejo y el número de dispositivo de prueba de la consola)
Si está utilizando su aplicación en modo de depuración o prueba, asegúrese de que está utilizando AppID y BannerID de prueba proporcionados por google admob, que sería como:
AdMobID de prueba de Google: ca-app-pub-3940256099942544 ~ 1458002511
Google Test BannerID ca-app-pub-3940256099942544/2934735716
Tuve el mismo problema al probar la aplicación de muestra en mi teléfono. Lo arreglé con los siguientes pasos:
Restablecer el identificador de publicidad en iPhone 6, ir a:
Configuración -> Privacidad -> Publicidad -> Restablecer identificador de anuncio
Una posible razón es un error de restricción .
Debes garantizar que la restricción de tu bannerView a otras vistas sea la correcta.