AdMob测试设备有什么意义?

时间:2013-09-03 05:32:12

标签: android admob

我可以看到有一些测试ID用于测试Android设备中的AdMob广告。我知道如何从log cat获取测试ID。

使用语句adRequest.addTestDevice("TEST_DEVICE_ID");测试Android设备中的广告有什么区别?因为在这两种情况下我都可以毫无问题地获得广告。

代码:

AdRequest adRequest = new AdRequest();
adRequest.addTestDevice("TEST_DEVICE_ID");                

3 个答案:

答案 0 :(得分:5)

“TEST_DEVICE_ID”只是设备唯一ID的占位符 它应该被替换为:

adRequest.addTestDevice("3E4409D3BCF2XXXXX5D87F53CD4XXXXX");  

要查找您的设备ID:在代码中使用adRequest.addTestDevice("TEST_DEVICE_ID");运行您的应用,这会将您的设备ID打印到日志中。在logcat跟踪中搜索包含文本的INFO消息:

adRequest.addTestDevice  

答案 1 :(得分:4)

通过这样做,您将在设备/模拟器上加载测试广告。

这很好,因为很多时候,您可能会错误地点击广告,如果这种情况经常发生或者Admobs决定您故意制作这些点击以增加收入,则可能会禁止您的帐户。

来自文档:

https://developers.google.com/admob/android/targeting#adrequest

  

在测试您的应用程序时,建议您申请测试广告   您不要求无效的展示次数。此外,你可以随时   依靠可用的测试广告。

答案 2 :(得分:0)

使用此:

new AdRequest.Builder()
        .addTestDevice(Device.getId(this))
        .build();

Device类:

public class Device {

    public static String getId(Context context) {
        String deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
        try {
            MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
            digest.update(deviceId.getBytes());
            byte messageDigest[] = digest.digest();

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

            deviceId = hexString.toString();
        } catch (NoSuchAlgorithmException e) {
            deviceId = "";
        } finally {
            return deviceId.toUpperCase();
        }
    }
}