studio pruebas error_code_internal_error developer android eclipse admob

pruebas - interstitial admob android studio



¿Cómo puedo obtener la identificación del dispositivo para Admob? (14)

Estoy usando Eclipse para desarrollar aplicaciones para Android, y quiero integrar Admob para ganar dinero. El tutorial dice que debería mirar el LogCat para encontrar la identificación, pero ¿dónde está?

Cuando corro tanto en el modo de prueba como en el modo real, a veces el eclipse notifica que los Anuncios han vuelto, pero no aparece en el emu ... ¿alguien puede explicarlo?


Algo similar a Google Ads, de la documentación:

public AdRequest.Builder addTestDevice (String deviceId)

Hace que un dispositivo reciba anuncios de prueba. El ID de dispositivo se puede obtener al ver la salida de logcat después de crear un nuevo anuncio. Para emuladores, usa DEVICE_ID_EMULATOR.

por ejemplo, mi ID del dispositivo de prueba que se muestra en LogCat es "B86BC9402A69B031A516BC57F7D3063F" :

AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("B86BC9402A69B031A516BC57F7D3063F") .build();


Estoy usando Unity 5.2, ¿puedo usar la siguiente propiedad para obtener la identificación del dispositivo? ¿Es la identificación correcta?

SystemInfo.deviceUniqueIdentifier


Funciona de esta manera:

InterstitialAd mInterstitial = new InterstitialAd(this); mInterstitial.setAdUnitId("your id"); AdRequest adRequest = new AdRequest.Builder() .addTestDevice("some words") .build(); mInterstitial.loadAd(adRequest);

Después de ejecutar la aplicación ... Ir a Logcat poner en Verbose poner en el campo de búsqueda AdRequest, por lo que el dispositivo de id muestra donw.

.addTestDevice ("poner el id aquí");

Espero haber ayudado;


Las respuestas aceptadas funcionarán si solo está probando en el emulador o en algunos dispositivos, pero si está probando en una gran cantidad de dispositivos, es posible que necesite algunos medios para agregar proramáticamente la identificación del dispositivo del dispositivo en ejecución.

El siguiente código hará que el dispositivo en ejecución actual se convierta en un dispositivo de prueba de AdView mediante programación

... if(YourApplication.debugEnabled(this)) //debug flag from somewhere that you set { String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID); String deviceId = md5(android_id).toUpperCase(); mAdRequest.addTestDevice(deviceId); boolean isTestDevice = mAdRequest.isTestDevice(this); Log.v(TAG, "is Admob Test Device ? "+deviceId+" "+isTestDevice); //to confirm it worked }

Debe usar el md5 de la ID de Android, y debe estar en mayúscula. Aquí está el código md5 que utilicé

public static final String md5(final String s) { try { // Create MD5 Hash MessageDigest digest = java.security.MessageDigest .getInstance("MD5"); digest.update(s.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); for (int i = 0; i < messageDigest.length; i++) { String h = Integer.toHexString(0xFF & messageDigest[i]); while (h.length() < 2) h = "0" + h; hexString.append(h); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { Logger.logStackTrace(TAG,e); } return ""; }

EDITAR: Aparentemente el método MD5 no es perfecto, y se sugirió probar https://.com/a/21333739/2662474 Ya no necesito esta característica, así que no he probado. ¡Buena suerte!


Otra forma más fácil de mostrar anuncios de prueba es usar la identificación de dispositivo de prueba para pancarta para mostrar anuncios de prueba admob para todos los dispositivos . " ca-app-pub-3940256099942544/6300978111 ". Esta identificación de los anuncios de prueba admob se anotó en el tutorial admob de google: link . Esta es la cita del enlace de arriba:

  • Esta es la identificación del dispositivo de prueba para el intersticial " ca-app-pub-3940256099942544/1033173712 ". Esto también se usó en el tutorial intersticial

Para obtener la ID del dispositivo Hash

dentro de la oncreate

String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID); String deviceId = md5(android_id).toUpperCase(); Log.i("device id=",deviceId);

luego agrega esta clase para md5 ()

public String md5(String s) { try { // Create MD5 Hash MessageDigest digest = java.security.MessageDigest.getInstance("MD5"); digest.update(s.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); for (int i=0; i<messageDigest.length; i++) hexString.append(Integer.toHexString(0xFF & messageDigest[i])); return hexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; }


Si está ejecutando anuncios admob en un emulador, entonces no hay ID. simplemente use el método AdManager y configúrelo en TEST_EMULATOR como dice logcat. Si ejecuta en un dispositivo real con la depuración de usb y mira el logcat, la ID aparecerá allí.


Si está mostrando anuncios usando el diseño XML y si ya tiene "ads: testDevices =" en su archivo XML de diseño, AdMob NO imprimirá el mensaje "Para obtener anuncios de prueba en este dispositivo ..." en la salida de LogCat. Quítelo y verá el mensaje LogCat.

Aquí hay un buen tutorial sobre cómo encontrar la identificación del dispositivo en LogCat: http://webhole.net/2011/12/02/android-sdk-tutorial-get-admob-test-device-id/



Si no lo obtiene en el logcat, simplemente coloque el ID de cualquier dispositivo y cargue sus anuncios y ejecute su aplicación, luego vaya al registro, así lo obtendrá. I/Ads: Use AdRequest.Builder.addTestDevice("XXXXXXXXXXXXXXXXXXXXXXXXX") to get test ads on this device. después de eso ponlo y ejecuta tu aplicación nuevamente.


Simplemente vaya a Play Store y descargue la aplicación Device ID para obtener el ID del dispositivo y copiar y pegarlo en su código. Saludos feliz codificación :)


Tengo algunos dispositivos en los que estaba probando y no quería obtener manualmente el DeviceID para cada uno. Las respuestas aquí para obtener programáticamente los DeviceID no funcionaban para mí (Cero faltantes), lo que hizo que se mostraran anuncios reales en lugar de anuncios de prueba.

Puse esto en mi clase de aplicación onCreate, y luego expuse deviceId usando un método getter para que se pueda acceder a él en todo momento.

@Override public void onCreate() { super.onCreate(); String androidId = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID); deviceId = MD5(androidId).toUpperCase(); } public static String getDeviceId() { return deviceId; } private static String deviceId;

Y el método MD5;

public String MD5(String md5) { try { java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5"); byte[] array = md.digest(md5.getBytes()); StringBuffer sb = new StringBuffer(); for (int i = 0; i < array.length; ++i) { sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3)); } return sb.toString(); } catch (java.security.NoSuchAlgorithmException e) { } return null; }

Luego usando esto cada vez que creo un objeto AdRequest:

if(BuildConfig.DEBUG) { AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice(Application.getDeviceId()) .build(); adView.loadAd(adRequest); } else { AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .build(); adView.loadAd(adRequest); }


aplicación: build.gradle

dependencies { ... compile ''com.google.firebase:firebase-ads:10.0.1'' ... }

Tu actividad:

AdRequest.Builder builder = new AdRequest.Builder(); if(BuildConfig.DEBUG){ String android_id = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); String deviceId = io.fabric.sdk.android.services.common.CommonUtils.md5(android_id).toUpperCase(); builder.addTestDevice(deviceId); } AdRequest adRequest = builder.build(); adView.loadAd(adRequest);


  • ¿Tu aplicación está publicada en Play store? Con anuncios en vivo :

Si su aplicación está en Play Store y muestra anuncios en vivo, no puede usar anuncios en vivo para realizar pruebas, agregue su ID de dispositivo en el código para obtener anuncios de prueba de Admob en su dispositivo real. Nunca use anuncios en vivo durante el desarrollo o las pruebas.

Para obtener la identificación real del dispositivo en logcat,

  1. Conecte su dispositivo en modo de depuración USB a Android Studio

  1. Abra cualquier aplicación en su dispositivo que muestre anuncios en vivo de Admob: en el dispositivo conectado, si descargó su aplicación de Play Store (mostrando anuncios en vivo) abra esa aplicación o bien abra cualquier otra aplicación que muestre anuncios AdMob en vivo. Su dispositivo debe tener una conexión a Internet.

  2. Filtra el logcat con ''dispositivo'' como se muestra a continuación para obtener el dispositivo de prueba

Lea las pruebas de anuncio de Admob en el dispositivo: las identificaciones de los dispositivos pueden cambiar para obtener más