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 algún medio para agregar de manera proramática la ID del dispositivo en ejecución.
El siguiente código convertirá el dispositivo en ejecución actual en un dispositivo de prueba 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úsculas. 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://stackoverflow.com/a/21333739/2662474 Ya no necesito esta función, así que no la he probado. ¡Buena suerte!