tagForChildDirectedTreatment(boolean) 弃用

tagForChildDirectedTreatment(boolean) deprecated

我正在尝试将库 'com.google.android.gms:play-services-ads' 从版本 17.2.0 更新到 18.1.1。我收到一条警告,指出 builder.tagForChildDirectedTreatment(true) 方法已被弃用。

文档 (https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest.Builder) it is said that setTagForChildDirectedTreatment(int) should be used instead. But I could not find any examples of how to use it. Documentation (https://developers.google.com/admob/android/targeting) 未更新。他们仍然使用已弃用的 tagForChildDirectedTreatment(true)。有人可以帮我吗?

这是我的代码:

private void loadAds() {
    MobileAds.initialize(this, getString(R.string.adMobAppId));
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId(getString(R.string.adMobUnitId));
    Bundle extras = new Bundle();
    extras.putBoolean("is_designed_for_families", true);
    AdRequest.Builder builder = new AdRequest.Builder()
            .addNetworkExtrasBundle(AdMobAdapter.class, extras);
    builder.tagForChildDirectedTreatment(true);
    mInterstitialAd.loadAd(builder.build());
    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {

            if (mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
            }

        }
    });
}

因为我遇到了同样的问题,找不到答案所以写了,但不知道对不对

这是我的代码

RequestConfiguration conf= new RequestConfiguration.Builder().setTagForChildDirectedTreatment(TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE).build();

    MobileAds.setRequestConfiguration(conf);
    MobileAds.initialize(this, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {
        }
    });
    mAdView = findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();

    mAdView.loadAd(adRequest);

这是我的代码:

MobileAds.initialize(this, id);
RequestConfiguration requestConfiguration = MobileAds.getRequestConfiguration().toBuilder()
        .setTagForChildDirectedTreatment(TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
        .build();
  1. 首先,我们需要初始化SDK:
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          MobileAds.initialize (this, id);
  1. 接下来,面向儿童的设置:
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          MobileAds.initialize (this, id);
          RequestConfiguration requestConfiguration = MobileAds.getRequestConfiguration (). toBuilder () //case sensitive!
             .setTagForChildDirectedTreatment (TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
             .build ();
  1. 创建横幅广告
    private void loadBannerAds()
    {
            Bundle extras = new Bundle();
            extras.putBoolean("is_designed_for_families", true);
            AdView mAdView = findViewById (R.id.adView);
            AdRequest adRequest = new AdRequest.Builder ()
               .addNetworkExtrasBundle (AdMobAdapter.class, extras)
               .build ();
            mAdView.loadAd (adRequest);
    }

这就是我在 Kotlin 中使用的。

    mAdView = findViewById(R.id.adView)
    MobileAds.initialize (this)
    val conf = RequestConfiguration.Builder()
        .setTagForChildDirectedTreatment(TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE).build()
    MobileAds.setRequestConfiguration(conf)
  
    val adRequest = AdRequest.Builder().build()
    mAdView.loadAd(adRequest)

它是这样完成的(这是在 Xamarin 中使用 C#):

MobileAds.RequestConfiguration =
    new RequestConfiguration
        .Builder()
        .SetTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatmentTrue)
        .SetMaxAdContentRating(RequestConfiguration.MaxAdContentRatingG)
#if DEBUG
        .SetTestDeviceIds(new[] { "..." })
#endif
        .Build();