【问题标题】:After updating Google Ads SDK addTestDevice is deprecated, How to resolve?更新 Google Ads SDK 后 addTestDevice 已弃用,如何解决?
【发布时间】:2020-06-17 17:36:24
【问题描述】:

更新后 Google Ads SDK to 19.0.0addTestDevice() 提供了已弃用的警告消息,而我搜索 this link 以解决问题但未成功。 我该如何解决?

这是我的代码

mAdView.loadAd(new RequestConfiguration.Builder
       .setTestDeviceIds(AdRequest.DEVICE_ID_EMULATOR) // show error
       .setTestDeviceIds(DEV_ID) // show error
       .build());

和开发者网站建议

已弃用 AdRequest.Builder.addTestDevice()。采用 RequestConfiguration.Builder.setTestDeviceIds() 代替。

【问题讨论】:

    标签: android admob google-play-services google-ads-api


    【解决方案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());
    

    【讨论】:

      【解决方案2】:

      我是这样做的:

      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());
      

      The official reference 表示RequestConfiguration 是用于每个AdRequest 的全局配置。据我了解,一旦你有了setRequestConfiguration(),你的AdRequests 就不再需要单独设置测试设备了。

      【讨论】:

      • 每个Activity都需要RequestConfiguration吗?
      • @Attaullah 是的,我想是的。因为 AdView 的参数是 Activity 的 Context。但我不知道“全局”这个词明确表示活动范围或应用程序范围。
      • 如果我真的理解 RequestConfiguration 在第一个活动中是必需的。
      • 请注意,根据开发者页面:“Android 模拟器自动配置为测试设备。”"
      • 我在 MainActivity 使用了这个配置,现在不同活动中的所有广告都有一个黑色的“测试广告”框。所以这个配置只能设置一次。
      【解决方案3】:

      我在 MainActivityonCreate 函数中这样做:

      val testDeviceIds = listOf("MY DEVICE ID")
      val config = RequestConfiguration.Builder().setTestDeviceIds(testDeviceIds).build()
      MobileAds.setRequestConfiguration(config)
      MobileAds.initialize(this)
      

      【讨论】:

      • 你知道 ConsentInformation.getInstance(applicationContext).addTestDevice("xxx") 是否也这样做吗?
      • 是否可以添加当前设备,仅此而已?不放一个固定的字符串吗?
      【解决方案4】:

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

      但如果你使用真机或其他模拟器作为测试设备你必须使用它

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

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

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

      Source :

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多