How can I get device ID for Admob How can I get device ID for Admob android android

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!


If you are running admob ads on an emulator then there is no ID. just use the AdManager method and set it to TEST_EMULATOR like the logcat says. If you run on an actual device with usb debugging and watch the logcat, the ID will appear in there.


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();