一、接入文档
https://developers.google.com/admob/android/quick-start?hl=zh-cn
注意:需要科学上网,登录 AdMob 需要使用全局代理
二、下载官方 demo
拉取官方demo直接运行就可以看到效果
注意工程中会发现两个文件夹,一般都是用 AdMob 下的demo就行,具体区别如下:
AdMob 是一种简化的广告解决方案,适用于大多数普通应用,主要集成 AdMob 提供的广告类型。
AdManager 提供了更多高级功能和灵活性,适用于广告量较大或者需要进行复杂广告管理的应用,可以集成多个广告来源,适合大规模的广告投放和优化。
三、测试广告
- 使用蓝叠模拟器
- 需要开启全局代理
- 需要开启虚拟网卡
四、屏幕适配
注意如果你使用了 autosize 屏幕适配,需要使用副单位,关闭dp单位的支持,不然广告显示就有问题。
// 关闭dp的支持,使用副单位,彻底隔离修改 density 所造成的不良影响
AutoSizeConfig.getInstance().unitsManager
.setSupportDP(false)
.setSupportSubunits(Subunits.MM)
五、广告检查器
使用下面的代码打开,可以使用一个按钮触发,打开后是一个可视化的页面
MobileAds.openAdInspector(requireActivity()) { error ->
// Error will be non-null if ad inspector closed due to an error.
error?.let {
Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show()
}
}
有什么用
查看广告单元是否加载成功

检查你的第三方广告源适配器接入是否成功

查看隐私配置,主要就是 GDPR(欧盟地区的通用数据保护条例)和 CCPA(美国加州法案)

测试广告源,点击这个开关会提供选择,官方文档

六、关于中介(其他广告源)
前面提到的官方 demo 中的测试 id 和账号无关,也只能展示 AdMob广告源(带 ad test 标签),无法展示中介广告。
如果需要测试中介广告就需要使用自己 AdMob 中配置的广告单元 id,不分测试还是正式。
测试时必须配置测试设备id,否则会请求真实广告,属于违规行为,有封号风险。
可将开发者的手机永远标记为测试设备
除了admob配置测试设备外,其他的每个广告源都需要单独再配置测试设备
注意admob和其他广告源的适配器,版本要严格对应
配置测试设备id有两种方式,admob控制台配置和代码配置,需要注意的是这两种配置所需的id是不一样的。
- admob控制台中所需要的测试设备id在手机设置中找到广告id用来配置。
- 代码中配置的测试设备id,需要在集成后查看log日志,找到下面代码中的日志,这里面的 33BE2250B43518CCDA7DE426D04EE231 才是代码中需要配置的测试设备id:
I/Ads: Use RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231"))
to get test ads on this device."
七、关于隐私
主要就是 GDPR(欧盟地区的通用数据保护条例)和 CCPA(美国加州法案)的弹窗
关于隐私的实现逻辑在官方 demo 中可以找到代码,有个 GoogleMobileAdsConsentManager 类。值得注意的是被注释掉的 setDebugGeography 相关配置,这是 google 提供的强制模拟 GDPR 地区的开关,可以用来测试广告隐私弹窗。具体实现说明可参考官方文档。
八、容易踩坑
AndroidManifest中的 appid 没有替换
<manifest>
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>
</manifest>
1403

被折叠的 条评论
为什么被折叠?



