How can I get device ID for Admob
The accepted answers will work if you are only testing on the Emulator or on a few devices, but if you are testing on a plethora of devices, you may need some means of prorammatically adding the running device's device ID.
The following code will make the current running device into an adview test device programmatically
... 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 }
You need to use the md5 of the Android ID, and it needs to be upper case. Here is the md5 code I used
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 "";}
EDIT: Apparently that MD5 method isnt perfect, and it was suggested to try https://stackoverflow.com/a/21333739/2662474 I no longer need this feature so I havent tested. Good luck!
Something similar to Google Ads, from the documentation:
public AdRequest.Builder addTestDevice (String deviceId)
Causes a device to receive test ads. The deviceId can be obtained byviewing the logcat output after creating a new ad. For emulators, use DEVICE_ID_EMULATOR.
for example my Test Device id displayed in LogCat is "B86BC9402A69B031A516BC57F7D3063F"
:
AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("B86BC9402A69B031A516BC57F7D3063F") .build();