【问题标题】:Should we first call MobileAds.setRequestConfiguration or MobileAds.initialize?我们应该先调用 MobileAds.setRequestConfiguration 还是 MobileAds.initialize?
【发布时间】:2019-09-24 16:35:24
【问题描述】:

这方面的文档不多。我在想,我们应该先打电话吗

RequestConfiguration conf= new RequestConfiguration.Builder()
        .setMaxAdContentRating(
                MAX_AD_CONTENT_RATING_T)
        .build();

MobileAds.setRequestConfiguration(conf);
MobileAds.initialize(context, APP_ID);

或者

MobileAds.initialize(context, APP_ID);
RequestConfiguration conf= new RequestConfiguration.Builder()
        .setMaxAdContentRating(
                MAX_AD_CONTENT_RATING_T)
        .build();

MobileAds.setRequestConfiguration(conf);

https://developers.google.com/admob/android/quick-start

虽然谷歌建议尽早致电MobileAds.initialize

在加载广告之前,让您的应用通过以下方式初始化移动广告 SDK 调用 MobileAds.initialize() 初始化 SDK 并调用 初始化完成后(或在 30 秒超时)。这只需要做一次,最好是在应用程序 发射。

他们还提到需要在MobileAds.initialize 之前设置“特定于请求的标志”。

警告:移动广告 SDK 或中介可能会预加载广告 调用 MobileAds.initialize() 时的合作伙伴 SDK。如果你需要 获得欧洲经济区 (EEA) 用户的同意,设置任何 特定于请求的标志(例如 tagForChildDirectedTreatment 或 tag_for_under_age_of_consent),或在加载前采取其他措施 广告,请确保在初始化移动广告 SDK 之前这样做。

所以,不是很清楚应该先调用哪个。

【问题讨论】:

  • 你应该在你的 Application 类中这样做!
  • 最好放在应用类中。

标签: android admob


【解决方案1】:

根据谷歌开发者支持,以下是正确的做法

https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/17oVu0sABjs

RequestConfiguration conf= new RequestConfiguration.Builder()
        .setMaxAdContentRating(
                MAX_AD_CONTENT_RATING_T)
        .build();

MobileAds.setRequestConfiguration(conf);
MobileAds.initialize(context, APP_ID);

【讨论】:

    【解决方案2】:

    这样做是这样的:

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

    【讨论】:

      【解决方案3】:

      据官方documentation

      在加载广告之前,让您的应用通过调用 MobileAds.initialize() 来初始化移动广告 SDK,这会初始化 SDK 并在初始化完成后(或在 30 秒超时后)回调完成侦听器。只需执行一次,最好是在应用启动时。

      所以,你应该先初始化MobileAds,看看官方文档中的例子here

         protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          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);
      }
      

      【讨论】:

      • RequestConfiguration.Builder一起使用怎么样? MobileAds.initialize 的样本不多。
      • builder 用于构建要在 adview 上显示的广告请求,在此之前您应该初始化您的移动广告
      • 如果您查看同一页面,则需要在“MobileAds.initialize”之前调用“request-specific flags”。 “tagForChildDirectedTreatment”在RequestConfiguration中提供
      • 是的,但他们只是要求添加将在 RequestConfiguration 中识别的标志
      • 是的,但他们只是要求添加将在 RequestConfiguration 中识别的标志
      猜你喜欢
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 2015-09-07
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多