开始使用

借助 AdMob 中介功能,您可以通过 多个来源,包括 AdMob 广告联盟和第三方广告来源, 一个地方。AdMob 中介功能可帮助您最大限度地提高填充率, 向多个广告联盟发送广告请求,确保找到 最适合投放广告的网络。 案例研究

前提条件

在为广告格式集成中介功能之前,您需要将相应广告格式集成到自己的应用中:

第一次使用中介功能?已读 AdMob 中介概览

对于出价: Google 移动广告 SDK 18.3.0 或更高版本。

初始化移动广告 SDK

快速入门指南介绍了如何初始化移动广告 SDK。 在初始化调用期间,中介适配器还会 进行初始化。请务必等到初始化完成后 您加载广告,是为了确保所有广告联盟 发出调用请求

以下示例代码展示了如何检查每个适配器的初始化 然后再发出广告请求

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.AdapterStatus;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        new Thread(
                () ->
                    // Initialize the Google Mobile Ads SDK on a background thread.
                    MobileAds.initialize(
                        this,
                        initializationStatus -> {
                          Map<String, AdapterStatus> statusMap =
                              initializationStatus.getAdapterStatusMap();
                          for (String adapterClass : statusMap.keySet()) {
                            AdapterStatus status = statusMap.get(adapterClass);
                            Log.d(
                                "MyApp",
                                String.format(
                                    "Adapter name: %s, Description: %s, Latency: %d",
                                    adapterClass, status.getDescription(), status.getLatency()));
                          }
                          // Start loading ads here...
                        }))
            .start();
    }
}

Kotlin

import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) { initializationStatus ->
        val statusMap =
          initializationStatus.adapterStatusMap
        for (adapterClass in statusMap.keys) {
          val status = statusMap[adapterClass]
          Log.d(
            "MyApp", String.format(
              "Adapter name: %s, Description: %s, Latency: %d",
              adapterClass, status!!.description, status.latency
            )
          )
        }
        // Start loading ads here...
      }
    }
  }
}

检查哪个广告联盟适配器类加载了广告

以下是一些示例代码,用于记录横幅广告的广告网络类名称:

Java

public void onAdLoaded() {
  Log.d("Banner adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
}

Kotlin

override fun onAdLoaded() {
  Log.d("Banner adapter class name:" + ad.responseInfo.mediationAdapterClassName)
}

请参阅关于 getMediationAdapterClassName()ResponseInfo 文档 了解此方法的详情。

使用 Activity 实例初始化广告对象

在新广告对象(例如, AdView), 您必须传入一个 Context。 使用中介时,此 Context 会传递到其他广告联盟。部分 广告联盟需要更严格的 Context 类型 Activity 如果没有 Activity 实例,可能无法投放广告。因此, 我们建议在初始化广告对象时传入 Activity 实例 以确保中介广告联盟获得一致的体验。

确保在横幅广告的所有第三方广告来源界面中停用刷新功能 AdMob 中介所使用的广告单元数量。这可防止重复刷新,因为 AdMob 还会根据横幅广告单元的 刷新率。

搭配使用原生广告和 AdMob 中介

以下是植入原生广告时可以考虑的一些最佳做法 AdMob 中介。

原生广告展示政策
每个广告网络都有自己的政策。使用中介功能时,请务必 请注意,您的应用仍需遵守参与中介的 广告联盟。
使用 loadAd(),而不要使用 loadAds()
loadAds() 方法仅投放 Google 广告。对于参与中介的广告,请使用 loadAd()

美国州级隐私保护法律和 GDPR

如果您需要遵守美国州/省/自治区/直辖市隐私权 法律一般数据保护 条例 (GDPR),请遵循 美国州级法规中的步骤 设置GDPR 设置以添加您的 AdMob 中的中介合作伙伴 - 隐私权和消息功能 美国各州或 GDPR 广告合作伙伴列表。否则,可能会导致合作伙伴 无法在您的应用中投放广告

详细了解如何启用“受限的数据处理” (RDP) 以及遵守 GDPR 通过 Google User Messaging Platform (UMP) 征求用户意见 SDK