借助 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 中介
以下是植入原生广告时可以考虑的一些最佳做法 AdMob 中介。
- 原生广告展示政策
- 每个广告网络都有自己的政策。使用中介功能时,请务必 请注意,您的应用仍需遵守参与中介的 广告联盟。
- 使用
loadAd()
,而不要使用loadAds()
loadAds()
方法仅投放 Google 广告。对于参与中介的广告,请使用loadAd()
。
美国州级隐私保护法律和 GDPR
如果您需要遵守美国州/省/自治区/直辖市隐私权 法律或一般数据保护 条例 (GDPR),请遵循 美国州级法规中的步骤 设置或 GDPR 设置以添加您的 AdMob 中的中介合作伙伴 - 隐私权和消息功能 美国各州或 GDPR 广告合作伙伴列表。否则,可能会导致合作伙伴 无法在您的应用中投放广告
详细了解如何启用“受限的数据处理” (RDP) 以及遵守 GDPR 通过 Google User Messaging Platform (UMP) 征求用户意见 SDK。