Google Mobile Ads — 是Google用于在移动应用中展示广告的SDK,包括AdMob和Google Ad Manager。该SDK支持所有主要格式:横幅广告、插页式广告(interstitial)、奖励视频(rewarded)和原生广告。Google Mobile Ads SDK每年处理超过1万亿次广告请求,并用于80%具有广告变现的应用。根据Google AdMob Documentation, 2025的数据,正确集成后每用户平均收入为每月$0.50-2.00。
要点
Google Mobile Ads — 是Google面向移动应用的广告平台,提供用于展示广告的SDK和收入分析工具。该平台包括两个主要系统:AdMob(面向独立开发者)和Google Ad Manager(面向拥有直接广告活动的大型发布商)。两个系统使用相同的Google Mobile Ads SDK,简化了平台之间的迁移。
Google Mobile Ads 的工作原理基于实时竞价(RTB — Real-Time Bidding)。当应用请求广告展示时,SDK向Google服务器发送请求,算法在其中分析用户画像、应用上下文和可用广告活动。竞价胜出者在100-300毫秒内确定——广告商出价越高,开发者收入越大。根据Google(2025)的数据,Android应用的平均eCPM为$5-15。
eCPM(effective Cost Per Mille)——变现的关键指标,显示每1000次展示的收入。eCPM取决于用户地区(美国和欧洲较高,亚洲较低)、广告格式(奖励视频eCPM为$10-30,横幅为$0.50-2)和一年中的时间(12月eCPM高出30-50%)。Google Mobile Ads SDK通过竞价为最大eCPM自动优化展示。
横幅广告 — 固定尺寸的矩形区块(320x50 — 标准,320x100 — 大,300x250 — 中)。横幅位于屏幕底部或顶部,占用最小空间。缺点:eCPM低($0.50-2)和用户习惯化——横幅的点击率(CTR)为0.05-0.5%。横幅每30-60秒自动刷新,但Google建议为了保持用户体验,刷新间隔不应少于60秒。
Interstitial(插页式广告) — 在应用自然暂停时(游戏关卡之间、屏幕切换时)展示的全屏广告。Interstitial的eCPM为$3-15,但需要谨慎放置——频繁展示会使用户厌烦。Google限制频率:每分钟不超过一个interstitial。据Google称,正确放置的interstitial不会将用户留存率降低超过5%。
Rewarded(奖励广告) — 用户观看后获得奖励的视频(额外生命、金币、高级访问权限)。最昂贵的格式,eCPM为$10-30,用户参与度高——80%的用户同意观看奖励视频。重要提示:奖励必须对用户有意义,否则用户不会观看广告。Rewarded interstitial — 混合格式(无需强制观看即可获得奖励),自SDK 21.0.0起可用。
// 加载和展示RewardedAd
class RewardedAdManager {
private var rewardedAd: RewardedAd? = null
fun loadAd(context: Context) {
RewardedAd.load(
context,
"ca-app-pub-3940256099942544/5224354917",
AdRequest.Builder().build(),
object : RewardedAdLoadCallback() {
override fun onAdLoaded(ad: RewardedAd) {
rewardedAd = ad
}
override fun onAdFailedToLoad(
error: LoadAdError
) {
Log.d("AdMob", error.message)
}
}
)
}
}原生广告 — 视觉上适应应用设计的广告:开发者控制标题、描述、图像和号召性用语按钮的位置。原生广告在所有格式中具有最高的CTR(0.5-2%),并且与应用UX的集成效果最佳。Google Mobile Ads SDK提供原生广告模板(NativeTemplate)或通过NativeAdOptions进行完全控制。ad_source_type格式显示原生广告素材来自哪个网络。
AdMob — Google面向移动应用的广告平台,面向独立开发者和小型工作室。AdMob提供通过竞价的自动广告位填充、通过Web界面的简单配置以及与30+广告网络的内置中介。资金提现门槛:$100。AdMob适用于90%的开发者,包括月收入达$100 000的中型工作室。
Google Ad Manager — 面向大型发布商的高级平台,支持自有广告活动(直接交易)、程序化担保和来源优先级排序。Ad Manager支持多个广告服务器、竞争性竞价(App Bidding)和为每个广告商提供的详细分析。接入Ad Manager需要月流量超过500万次展示。据Google称,与AdMob相比,Ad Manager可将大型发布商的收入提高15-30%。
| 标准 | AdMob | Ad Manager |
|---|---|---|
| 受众 | 独立开发者 | 大型发布商 |
| 直接交易 | 否 | 是 |
| App Bidding | 有限 | 完全 |
| 流量门槛 | 任意 | 500万+/月展示 |
| 分析 | 标准 | 高级 |
从AdMob迁移到Ad Manager只需更改应用代码中的Ad Unit ID——SDK保持不变(Google Mobile Ads SDK)。Google建议从AdMob开始,在月收入达到$10 000+时考虑迁移到Ad Manager。App Bidding — Ad Manager的关键技术,允许所有广告网络在单个竞价中竞争,将eCPM提高10-40%。
中介(Ad Mediation) — Google Mobile Ads的技术,允许将多个广告网络连接到一个Ad Unit。当SDK请求广告时,它依次查询各个网络:首先Google Ads,然后是合作伙伴网络(Facebook Audience Network、Unity Ads、AppLovin、IronSource、Mintegral等),为此用户选择出价最高的网络。
Google Mobile Ads SDK通过适配器(adapters)支持30多个广告网络的中介,这些适配器作为单独的Gradle依赖项加载。每个适配器实现统一的Google接口,使SDK能够与任何网络一致地工作。据Google称,与仅使用AdMob相比,中介可将总广告收入提高15-50%。App Bidding — 中介的更高级版本,所有网络同时参与单个竞价,而非顺序进行。
// 配置中介(build.gradle)
dependencies {
implementation "com.google.android.gms:play-services-ads:23.3.0"
// 中介适配器
implementation "com.google.ads:mediation-facebook:6.17.0.0"
implementation "com.google.ads:mediation-unity:4.10.0.0"
implementation "com.google.ads:mediation-applovin:12.3.0.0"
}
// 初始化Mobile Ads SDK
MobileAds.initialize(this) {
Log.d("AdMob",
"Initialized: $it")
}重要提示:中介会增加广告展示延迟,因为SDK会依次查询多个网络。对于横幅来说这不关键(可接受延迟——最多2秒),但对于interstitial和rewarded,超过1秒的延迟会降低展示概率(用户可能离开屏幕)。Google建议使用App Bidding代替顺序中介以最小化延迟。App Bidding在100-200毫秒内并行处理所有出价。
在Android应用中配置Google Mobile Ads始于在build.gradle中添加play-services-ads依赖并在Application类中初始化SDK。Google Mobile Ads SDK需要Android 5.0(API 21)和Google Play Services版本21.0.0+。建议尽早初始化SDK——在Application.onCreate()中——以便广告与应用启动并行加载。
初始化SDK后,开发者在AdMob或Ad Manager Web界面中创建Ad Unit,并将AdView嵌入到应用的布局中(用于横幅)或以编程方式加载InterstitialAd/RewardedAd。重要提示:开发时使用测试Ad Unit ID,发布后使用生产环境ID。Google Mobile Ads SDK根据AdMob控制台测试设备中添加的设备自动检测测试模式。
// 在Application类中初始化SDK
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
MobileAds.initialize(this)
// 启用GDPR同意模式
val params = RequestConfiguration.Builder()
.setTagForUnderAgeOfConsent(false)
.build()
MobileAds.setRequestConfiguration(params)
}
}
// XML中的内联横幅
// <com.google.android.gms.ads.AdView
// android:id="@+id/adView"
// android:layout_width="match_parent"
// android:layout_height="wrap_content"
// app:adUnitId="ca-app-pub-3940256099942544/6300978111"
// app:adSize="BANNER" />配置SDK和Ad Units后,开发者必须在应用中添加隐私政策——这是Google在Play Store中发布的强制条件。还需要集成UMP SDK(User Messaging Platform),用于收集来自欧洲经济区和英国的用户对数据处理同意。没有UMP SDK,Google可能限制个性化广告的展示,这将使eCPM降低40-60%。
Google Mobile Ads要求遵守来自欧洲经济区(EEA)、英国、美国(CCPA/CPRA)和其他有数据立法地区的用户的隐私规则。主要工具是User Messaging Platform(UMP)SDK,它向用户显示同意对话框,用于收集和处理数据以个性化广告。
未获得用户的个性化同意,Google Mobile Ads SDK将仅展示非个性化广告,这会使eCPM降低40-60%。TCF v2.0(透明度与同意框架)——用于在广告系统之间传递同意信号的IAB Europe标准。Google Ad Manager自动支持TCF v2.0。对于AdMob,需要通过UMP SDK与参数FORMS_PUBLISHER_ID进行集成。
// UMP SDK用户同意请求
val consentInfo = UserMessagingPlatform.getConsentInformation(this)
consentInfo.requestConsentInfoUpdate(
context,
ConsentRequestParameters.Builder()
.setTagForUnderAgeOfConsent(false)
.build()
) { error ->
if (error != null) return@requestConsentInfoUpdate
if (consentInfo.isConsentFormAvailable()) {
UserMessagingPlatform.loadAndShowConsentFormIfRequired(
activity,
activity.getOnConsentFormSuccess(),
activity.getOnConsentFormFailure()
)
}
}附加要求:对于加州用户(CCPA),Google要求支持“不出售我的个人信息”选项。对于儿童(COPPA)——启用tagForChildDirectedTreatment。Google Play Store要求所有带广告的应用都有隐私政策,并在Google Play Console中提供链接。违反这些要求将导致广告展示被阻止或应用从Play Store中移除。
带有用户奖励处理的奖励广告集成的完整示例。应用在启动时加载奖励视频,在点击“获取奖励”按钮时展示,并在完全观看后向用户发放金币。代码使用协程进行异步加载,并检查如果用户已收到奖励则不展示广告(防止重复奖励)。
class RewardViewModel : ViewModel() {
private var rewardedAd: RewardedAd? = null
private val _rewardEarned = MutableLiveData<Boolean>(false)
val rewardEarned: LiveData<Boolean> = _rewardEarned
fun loadRewardedAd(context: Context) {
RewardedAd.load(context, AD_UNIT_ID,
AdRequest.Builder().build(),
object : RewardedAdLoadCallback() {
override fun onAdLoaded(ad: RewardedAd) {
rewardedAd = ad
}
}
)
}
fun showAd(activity: Activity) {
rewardedAd?.show(activity, {
// 用户获得奖励
_rewardEarned.postValue(true)
addCoins(100)
loadRewardedAd(activity) // Preload next
})
}
}奖励广告的最佳实践:在关闭当前广告后立即预加载下一个广告(用户无需等待加载)。仅在奖励明确的上下文中展示奖励视频(例如“观看广告赚取100金币”按钮)。Google禁止在用户未明确请求的情况下展示奖励广告(禁止自动播放)。检查onUserEarnedReward回调——仅在其后发放奖励。
优化Google Mobile Ads的收入始于正确选择广告格式。横幅(用于稳定的后台收入)和奖励视频(用于活跃互动)的组合可提供最大总收入。仅在自然暂停时使用interstitial——每会话不超过3-4次。Firebase的Google Analytics可让您跟踪哪些屏幕带来最大收入以及用户最常在何处关闭广告。
第二个重要因素是中介。通过AdMob中介连接3-5个广告网络。据Google称,带有中介的应用收入高出30%。App Bidding(可用于Ad Manager和部分AdMob)由于同时竞价可额外提高10-40%。广告展示位置的A/B测试:在不同用户细分群体中测试横幅的不同位置(上/下、左/右)和interstitial的频率。
第三个因素是地理位置定位。美国、加拿大和澳大利亚的eCPM比印度或印度尼西亚高出3-5倍。如果您的应用在低eCPM地区受欢迎,Google建议使用来自这些地区的网络(例如印度的InMobi)进行waterfall中介。设置频率上限(frequency cap):每2分钟不超过1次interstitial,每小时不超过5次奖励视频——这可以降低用户对广告的疲劳感。
常见问题
正确集成后每用户平均收入为每月$0.50-2.00。使用组合格式:横幅用于基础收入,奖励视频用于主动变现,interstitial用于自然暂停。务必连接中介和用于GDPR的UMP SDK。最大收入来自美国和欧洲的用户。
主要要求:AdMob账户、应用中的隐私政策、用于收集欧洲经济区用户同意的UMP SDK集成、Google Play Console中的应用年龄评级。Google Play Store要求所有带广告的应用在发布时注明,并遵守Google Ads不可接受内容政策。
App Bidding是所有广告网络同时参与广告展示竞价的技术。胜出者在100-200毫秒内确定。与顺序中介(网络逐一查询)不同,App Bidding可将收入提高10-40%并减少展示延迟。App Bidding可在Google Ad Manager和部分AdMob中使用。
低eCPM可能是由以下原因造成的:用户地区(亚洲和非洲eCPM较低)、不正确的格式(横幅收入低于奖励视频)、缺乏中介(仅使用AdMob)、UMP配置不正确(未获得个性化同意)或广告拦截器比例过高。检查AdMob分析并配置App Bidding。
可以,但有约束。应用必须在RequestConfiguration中激活tagForChildDirectedTreatment(true)。Google将仅展示安全的非个性化广告。儿童应用的eCPM低60-80%。在Google Play Console中必须指定应用的目标受众。违反COPPA——AdMob账户被屏蔽。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。