adRequest.addTestDevice("device_id")的含义是什么?

6

我对AdMob广告请求(adrequest)感到困惑。 我不明白adRequest.addTestDevice("device_id")是什么意思。

如果我写:

AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .addTestDevice(DeviceInfo.getDeviceId(activity)).build();

对于每个设备,它会影响我的AdMob账户吗? 还是addTestDevice("deviceid")只针对测试设备或现实生活设备? 如果我只添加我的测试设备ID到AdRequest中,那么它会向其他设备显示广告吗?
3个回答

7
根据文档
重要的是在开发和测试应用程序时始终请求测试广告。 使用实际生产广告进行测试违反AdMob政策,可能会导致帐户被暂停。 有关如何使用测试广告的更多信息,请参见我们的广告定位指南
这意味着即使您使用多个设备/模拟器,使用测试广告也不会影响您的帐户。 基本上,addTestDevice(“deviceid”)可防止生成虚假印象,并始终确保测试广告可用。
当您完成测试并转换到生产阶段时,可以删除所有对addTestDevice(“deviceid”)的调用。

但是,什么是deviceid?我已经将该行代码添加到我的代码中(使用随机字符串),但没有任何反应,我始终看到真正的广告... - Massimo
测试广告仅会在代码中包含的设备上显示。因此,如果您想在某个设备上看到测试广告,请确保已将该设备的ID包含在 #addTestDevice() 中。如果您没有这样做,则会显示真实广告。 - Nana Ghartey
我注意到在模拟器上测试时,即使没有使用addTestDevice(DEVICE_ID_EMULATOR),我也会得到测试广告。那么我是否需要使用addTestDevice(DEVICE_ID_EMULATOR)呢? - Lefteris

1
AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).addTestDevice("1915F1CFC0D22C6DBB4C8ED97B0CCBA1").build();

这是如何添加设备ID的方式,您可以从Android Studio的日志中获取您的设备ID。只有针对该设备,测试广告才会加载。


1
根据Google政策,如果您想测试广告,则需要在应用程序中定义测试设备ID。如果您未定义测试设备并在一个设备上多次测试该应用程序,则Google将视其为违法活动以获取广告收入。因此,我们需要在调试应用程序中定义测试设备ID。
注意:即使您已在应用程序中添加了设备ID,也不要点击广告。这将被视为政策违规行为,您的帐户可能会被封锁。您只能测试广告是否在您的应用程序中可见。
@AnkitaKoladiya's answer所述,您可以使用以下内容:
AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();

您可以像下面这样使用,以避免意外地使用测试设备 ID 创建已签名的 APK:

AdRequest.Builder builder = new AdRequest.Builder();
if (BuildConfig.DEBUG) {
    builder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
}
builder.build();

这不会在签名APK时包含builder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);。但是它将包含在Debug或测试APK文件中。所有安装带有此行(builder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);)的APK的设备都将被视为测试设备。因此,在为Playstore创建签名APK时需要删除该行。

如果您找不到设备ID,则首先在测试设备上运行不带测试设备ID的应用程序。成功构建后,您将在Logcat中看到设备ID


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接