adRequest.addTestDevice(“device_id”)是什么意思?

时间:2015-06-08 07:10:21

标签: android admob

我对 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 个答案:

答案 0 :(得分:7)

根据the docs

  

确保在开发和测试应用程序时始终要求测试广告非常重要。使用实时广告制作广告进行测试违反了AdMob政策,可能导致您的帐户被暂停。有关如何使用测试广告的详细信息,请参阅我们的Ad Targeting guide

这意味着无论您使用的设备/模拟器数量多少,您在使用测试广告时都不会影响您的帐户。 基本上 addTestDevice(“deviceid”)可防止生成错误展示,并确保测试广告始终可用。

完成测试并转换到制作阶段后,您可以删除对 addTestDevice(“deviceid”)的所有调用。

答案 1 :(得分:1)

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

这是您必须添加设备ID的方式,您可以在 Android studio 的日志中获取设备ID。 只有该设备才会加载测试广告。

答案 2 :(得分: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);。但它会在Dubug或测试APK文件中包含它。使用此行(builder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);)安装APK的所有设备都将被视为测试设备。因此,当您为Playstore制作已签名的APK时,您需要将其删除。

如果您没有找到您的设备ID,那么首先运行您的应用,而不在您的测试设备中测试设备ID。成功构建后,您将在Logcat中看到您的设备ID