4

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

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

编码:

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

3 回答 3

5

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

adRequest.addTestDevice("3E4409D3BCF2XXXXX5D87F53CD4XXXXX");  

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

adRequest.addTestDevice  
于 2013-09-20T00:56:21.563 回答
4

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

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

从文档:

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

建议在测试您的应用程序时请求测试广告,这样您就不会请求无效的展示次数。此外,您始终可以依靠可用的测试广告。

于 2013-09-03T05:36:49.683 回答
0

用这个:

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

设备类:

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();
        }
    }
}
于 2017-03-01T19:31:42.373 回答