java android eclipse admob cocos2d-android

java - Admob No llenar desde el servidor de anuncios: no se pudo cargar el anuncio: 3



android eclipse (15)

Mi problema es que los anuncios no se muestran en absoluto en mi aplicación, el modo de prueba o no. Voy a mantener esta pregunta específica para el modo de prueba, y una vez que consiga que funcione, me preocuparé por los anuncios en vivo.

Información de desarrollo

Estoy usando Eclipse para el desarrollo.

He configurado anuncios utilizando Google Play Services y Admob en mi aplicación de Android, como se describe en la documentación en línea proporcionada por Google.

He agregado la ID de mi dispositivo con addTestDevice ("xxxxxxxxxxxxxxxxx"), y he revisado la ID del dispositivo con hash varias veces para estar seguro de que es correcta.

El problema (ver más abajo para información de registro)

Cuando ejecuto la aplicación en mi dispositivo, no se muestra ningún anuncio. Esto sucede incluso cuando he agregado mi dispositivo como dispositivo de prueba.

He buscado alto y bajo, y he encontrado muchos problemas similares, pero todavía tengo que encontrar una respuesta a este problema específico.

Salida LogCat

10-28 13:56:41.659: I/Ads(1704): Starting ad request. 10-28 13:56:42.187: I/Ads(1704): No fill from ad server. 10-28 13:56:42.187: W/Ads(1704): Failed to load ad: 3 10-28 13:56:42.199: W/Ads(1704): No GMSG handler found for GMSG: gmsg://mobileads.google.com/jsLoaded?google.afma.Notify_dt=1414504602197

Mi actividad

package bb.hoppingbird; import org.cocos2d.layers.CCScene; import org.cocos2d.nodes.CCDirector; import org.cocos2d.opengl.CCGLSurfaceView; import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdSize; import com.google.android.gms.ads.AdView; import com.google.android.gms.ads.InterstitialAd; import android.app.Activity; import android.content.SharedPreferences; import android.media.MediaPlayer; import android.os.Bundle; import android.support.v4.view.ViewPager.LayoutParams; import android.util.DisplayMetrics; import android.view.KeyEvent; import android.widget.RelativeLayout; import android.widget.Toast; public class MainActivity extends Activity { private CCGLSurfaceView mGLSurfaceView; //<!-- Admob Ads Using Google Play Services SDK --> private static final String AD_UNIT_ID = "ca-app-pub-xxxxxxxxxxxxxxxxxxxx"; private static final String AD_INTERSTITIAL_UNIT_ID = "ca-app-pub-xxxxxxxxxxxxxxxxxxxx"; /** The Admob ad. */ private InterstitialAd interstitialAd = null; public AdView adView = null; public static MainActivity app; public void onCreate(Bundle savedInstanceState) { app = this; super.onCreate(savedInstanceState); // set view mGLSurfaceView = new CCGLSurfaceView(this); //Ads ---------------- // Create the adView RelativeLayout layout = new RelativeLayout(this); layout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); //<!-- Ads Using Google Play Services SDK --> adView = new AdView(this); adView.setAdSize(AdSize.SMART_BANNER); adView.setAdUnitId(AD_UNIT_ID); // Add the adView to it RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); adView.setLayoutParams(params); layout.addView(mGLSurfaceView); layout.addView(adView); setContentView(layout); //New AdRequest AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("0D47C6944503F0284666D16BB79BF684") .build(); // Start loading the ad in the background. adView.loadAd(adRequest); //-----------------------------------------------------Interstitial Add // Create an Interstitial ad. interstitialAd = new InterstitialAd(this); interstitialAd.setAdUnitId(AD_INTERSTITIAL_UNIT_ID); interstitialAd.setAdListener(new AdListener() { @Override public void onAdLoaded() { interstitialAd.show(); } @Override public void onAdFailedToLoad(int errorCode) { Toast.makeText(getApplicationContext(), "Interstitial Ads loading failed", Toast.LENGTH_SHORT).show(); } }); // Load the interstitial ad. //showInterstitialAds(); //---------------------- // set director CCDirector director = CCDirector.sharedDirector(); director.attachInView(mGLSurfaceView); director.setAnimationInterval(1/60); // get display info DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); G.display_w = displayMetrics.widthPixels; G.display_h = displayMetrics.heightPixels; G.scale = Math.max(G.display_w/1280.0f, G.display_h/800.0f); G.width = G.display_w / G.scale; G.height = G.display_h / G.scale; // get data SharedPreferences sp = CCDirector.sharedDirector().getActivity().getSharedPreferences("GameInfo", 0); G.music = sp.getBoolean("music", true); G.sound = sp.getBoolean("sound", true); // create sound G.soundMenu = MediaPlayer.create(this, R.raw.menu); G.soundMenu.setLooping(true); G.soundGame = MediaPlayer.create(this, R.raw.game); G.soundGame.setLooping(true); G.soundCollide = MediaPlayer.create(this, R.raw.collide); G.soundJump = MediaPlayer.create(this, R.raw.jump); G.soundLongJump = MediaPlayer.create(this, R.raw.long_jump); G.soundSpeedDown = MediaPlayer.create(this, R.raw.speed_down); G.soundSpeedUp = MediaPlayer.create(this, R.raw.speed_up); G.soundDirection = MediaPlayer.create(this, R.raw.direction_sign); G.soundClick = MediaPlayer.create(this, R.raw.menu_click); G.soundCollect = MediaPlayer.create(this, R.raw.collect); G.bgSound = G.soundMenu; // show menu CCScene scene = CCScene.node(); scene.addChild(new MenuLayer(true)); director.runWithScene(scene); } @Override public void onPause() { if (adView != null) { adView.pause(); } super.onPause(); G.bgSound.pause(); CCDirector.sharedDirector().onPause(); } @Override public void onResume() { super.onResume(); if (adView != null) { adView.resume(); } if( G.music ) G.bgSound.start(); CCDirector.sharedDirector().onResume(); } @Override public void onDestroy() { // Destroy the AdView. if (adView != null) { adView.destroy(); } super.onDestroy(); G.bgSound.pause(); CCDirector.sharedDirector().end(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if( keyCode == KeyEvent.KEYCODE_BACK ) { CCDirector.sharedDirector().onKeyDown(event); return true; } return super.onKeyDown(keyCode, event); } public void showInterstitialAds() { runOnUiThread(new Runnable() { public void run() { AdRequest interstitialAdRequest = new AdRequest.Builder().build(); interstitialAd.loadAd(interstitialAdRequest); } }); } }


En mi caso estaba probando usando un emulador y obteniendo el mismo error. Después de cambiar a un teléfono todo funciona.

Probar otro dispositivo de prueba.


En mi caso, encontré que mi dirección de facturación no se verificó y los anuncios se bloquearon. Verifique la dirección de facturación que se corregirá automáticamente. https://www.google.com/adsense/


En mi caso, este fue el error resultante de solicitar un anuncio restringido geográficamente a una región que no es compatible con ese anuncio. Si codifiqué la ubicación del paquete de solicitud de anuncios para que estuviera dentro de la región aceptable, o no incluyera una ubicación en la solicitud, el anuncio se publicó correctamente. de lo contrario tuve el mismo error que OP en la consola.


En mi caso, mis anuncios de banner tienen el código de respuesta 3 en algunos dispositivos con un alto API y especialmente con pantalla ancha (he usado un tamaño de banner inteligente), cambiando la dependencia de com.google.android.gms.ads a com.google.firebase:firebase-ads (en caso de que estés usando Firebase) resolvió mi problema.


Estaba probando en Galaxy S4, luego mi amigo probó en Nota 2 y no mostró el anuncio de banner. Por lo tanto, el problema era la identificación del dispositivo de prueba. Si está realizando una prueba, asegúrese de que la ID del dispositivo de prueba sea del dispositivo en el que está realizando la prueba.


Los anuncios están deshabilitados desde el servidor Admob, su código está bien, intente cambiar el nombre del paquete y vea si se muestran los anuncios. Entonces contacte a admob para ver el problema.


Los problemas se presentan solo si esa aplicación en particular está suspendida de playstore. Tal vez puede intentar cambiar el nombre del paquete y también con la nueva Admob Id. Existe la posibilidad de que esa id. De admob en particular también se pueda suspender debido a la conformidad.


Si crea un adunit y lo utiliza inmediatamente puede mostrar este error, intente cargar anuncios después de 30 minutos o más.


Si su cuenta de AdMob solo está configurada para anuncios de banner y está usando anuncios intersticiales, puede tener este problema. Mis 2 centavos.


Si tu aplicación es compatible con Designed for Families.

Bundle extras = new Bundle(); extras.putBoolean("is_designed_for_families", true); AdRequest request = new AdRequest.Builder() .addNetworkExtrasBundle(AdMobAdapter.class, extras) .build();



Tuve este problema también hoy. Mi aplicación no se suspendió, pero el cambio de nombre apk funcionó. Habíamos cambiado el nombre de una aplicación de prueba para lanzarla a producción; cambiamos el nombre de apk como resultado. Esto arruinó nuestro relleno de anuncios tanto en MoPub como en Admob.


Yo tuve este problema también. No fue hasta que fui a Admob.com y "manualmente" agregué mi aplicación para poder obtener mi "ID de bloque de anuncios". Puse esta cadena de identificación del adView.setAdUnitId anuncios como el argumento que mi llamada adView.setAdUnitId . Luego instalé y abrí la versión "APK" que generé a través de Eclipse. Archivo> Exportar> Exportar aplicación de Android


prueba esto:

MobileAds.initialize(this, getString(R.string.admob_app_id)); AdView mAdView = findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest);


Debe usar la ID que Google le proporcionó para el dispositivo de prueba actual. Lo puedes encontrar en logcat, solo encuentra algo como esto:

Ads: Use AdRequest.Builder.addTestDevice("903A70A3D439E256BAED43E65A79928E") to get test ads on this device.