我对 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,那么它是否会将广告显示给其他设备?
答案 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 。