更新 Google Ads SDK addTestDevice 后被弃用,如何解决?

Att*_*lah 30 android admob google-play-services google-ads-api

更新后Google Ads SDK to 19.0.0给出了一条已弃用的警告消息addTestDevice(),而我搜索此链接以解决问题但没有成功。我该如何解决?

这是我的代码

   mAdView.loadAd(new  RequestConfiguration.Builder
          .setTestDeviceIds(AdRequest.DEVICE_ID_EMULATOR) // show error
          .setTestDeviceIds(DEV_ID) // show error
          .build());
Run Code Online (Sandbox Code Playgroud)

和开发者网站建议

// Deprecated AdRequest.Builder.addTestDevice().Use 
   RequestConfiguration.Builder.setTestDeviceIds() instead.
Run Code Online (Sandbox Code Playgroud)

hat*_*ata 64

我是这样的:

List<String> testDevices = new ArrayList<>();
testDevices.add(AdRequest.DEVICE_ID_EMULATOR);

RequestConfiguration requestConfiguration
    = new RequestConfiguration.Builder()
        .setTestDeviceIds(testDevices)
        .build();
MobileAds.setRequestConfiguration(requestConfiguration);

Adview adView = new AdView(context);
// ... invoke some methods of adView ...
adView.loadAd(new AdRequest.Builder().build());
Run Code Online (Sandbox Code Playgroud)

官方参考说 aRequestConfiguration是将用于每个AdRequest. 据我了解,一旦拥有setRequestConfiguration(),您AdRequest就不再需要单独设置测试设备了。

  • @Attaullah 是的,我想是的。因为AdView的参数是Activity的Context。但我不知道“全局”这个词明确意味着活动范围或应用程序范围。 (2认同)

Moh*_*ane 5

如果您使用 Android 模拟器,则无需执行此setTestDeviceIds()方法,因为模拟器会自动配置为测试设备。

但如果您使用真实设备或其他模拟器作为测试设备,则必须使用它

List<String> testDeviceIds = Arrays.asList("33BE2250B43518CCDA7DE426D04EE231");
RequestConfiguration configuration =
    new RequestConfiguration.Builder().setTestDeviceIds(testDeviceIds).build();
MobileAds.setRequestConfiguration(configuration);   
Run Code Online (Sandbox Code Playgroud)

获取设备 ID 检查 logcat 输出中是否有类似于下面的消息,该消息显示您的设备 ID 以及如何将其添加为测试设备:

I/Ads: Use RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231"))
to get test ads on this device."
Run Code Online (Sandbox Code Playgroud)

来源 :


小智 1

  String testDeviceId = "xxx";

final RequestConfiguration.Builder requestConfigurationBuilder = new RequestConfiguration.Builder(); 

requestConfigurationBuilder.setTestDeviceIds(Collections.singletonList(testDeviceId)).build();

final RequestConfiguration requestConfiguration = requestConfigurationBuilder.build();

MobileAds.setRequestConfiguration(requestConfiguration);

adLoader.loadAd(new AdRequest.Builder().build());
Run Code Online (Sandbox Code Playgroud)