# App 广告收入怎么算：AdMob eCPM 计算

> 一次广告展示的收入是 eCPM 除以 1000。总收入＝展示次数÷1000×eCPM，eCPM 随格式、国家、ATT 和同意而变。

原始页面：[App 广告收入怎么算：AdMob eCPM 计算](https://devoria.fr/zh-hans/blog/app-ad-revenue-admob-ecpm-calculation)
作者：[Mehdi Azizi](https://devoria.fr/zh-hans/mehdi-azizi)
发布：2026-10-25
内容最后修订：2026-10-25


一次 App 内广告展示的收入等于 eCPM 除以 1000：按 Google 示例里用的 4 美元 eCPM，一次展示值 0.004 美元。**你的广告收入＝展示次数除以 1000，再乘以 eCPM**，而这个 eCPM 会随广告格式、国家、iOS 上的跟踪授权以及欧洲的用户同意而变化。对于以欧元结算的 AdMob 账户，Google 会在次月 21 日左右付款，前提是余额达到 70 欧元。

如果想和订阅做对比，整体情况见[一个 App 能赚多少钱](https://devoria.fr/zh-hans/blog/how-much-money-mobile-app-ads-subscription)。我的 iOS App 靠订阅变现，不靠广告：本指南依据的是 Google、Apple 和相关库的官方页面，于 2026 年 10 月 25 日重新核对过。

## 一次广告能赚多少：计算方法

Google 把 eCPM 定义为[你每 1000 次展示获得的收入估算值](https://support.google.com/admob/answer/7356428)：（总收入÷展示次数）×1000。把公式倒过来，就得到你的收入。

> 收入＝展示次数÷1000×eCPM

从请求到展示，[AdMob 术语表](https://support.google.com/admob/table/16327896)跟踪三个指标：

1. **请求数**：你的 App 每请求一次广告就算一次，即使什么都没显示。
2. **匹配率**：收到广告的请求所占的比例。
3. **展示率**：收到的广告中真正展示出来的比例。

只要广告有一个像素可见，就算一次展示。**广告加载了但从未显示，不算展示。**

## AdMob 广告格式及其风险

[AdMob 帮助中心](https://support.google.com/admob/answer/6128738)介绍了六种格式。下表把它的描述和 Google、Apple 的规则放在一起对照。

| 格式           | 显示位置                   | 优点               | 需要注意的风险             |
| -------------- | -------------------------- | ------------------ | -------------------------- |
| 横幅广告       | 屏幕顶部或底部的横条       | 可见且不打断使用   | 靠近按钮容易误点           |
| 插页式广告     | 全屏，出现在自然停顿处     | 占满屏幕，可放视频 | Apple 要求有明显的关闭按钮 |
| 激励广告       | 用户自愿观看短视频换取奖励 | 用户明确同意       | 奖励绝不能是现金           |
| 插页式激励广告 | 在过渡处全屏显示（测试版） | 无需用户主动请求   | 需要带“不用了”选项的介绍页 |
| 开屏广告       | 覆盖在加载界面上           | 把启动等待变现     | 前几次打开时应避免         |
| 原生广告       | 融入内容，沿用 App 风格    | 与设计融为一体     | 必须标注“广告”             |

在 Google 这边，不建议把[横幅放在可交互元素旁边](https://support.google.com/admob/answer/6275345)；插页式广告位置不当会导致误点，[可能让广告投放被停用](https://support.google.com/admob/answer/6066980)。[激励广告](https://support.google.com/admob/answer/7313578)需要用户明确同意，并且不能直接奖励任何有货币价值的物品。Google 建议[在用户使用几次之后再显示开屏广告](https://developers.google.com/admob/ios/app-open)，原生广告必须[标注“广告”“推广”或“赞助”](https://support.google.com/admob/answer/6329638)。

在 Apple 这边，[guideline 2.5.18](https://developer.apple.com/app-store/review/guidelines/) 要求打断使用的广告必须明确表明自己是广告，并配有明显且足够大的关闭按钮。它规定广告只能出现在主 App 中，并且必须提供举报不当广告的方式。3.2.2 允许奖励用户观看广告，但拒绝主要为展示广告而设计的 App。1.3 规定，除少数情况外，儿童类别不得含有第三方广告。

### 为什么各格式的 eCPM 不一样

每种格式卖的是不同的空间：一条横幅、一整屏、一段用户自愿观看的视频。我查阅的 AdMob 帮助页面并没有按 eCPM 给它们排名，但提到启用更多格式会[让更多广告主参与竞争](https://support.google.com/admob/checklist/10424733)。**eCPM 高但很少被看到的格式，可能比 eCPM 一般但每屏都能看到的格式赚得少。**你自己的排名可以在 [AdMob 报告](https://support.google.com/admob/answer/10979428)里按格式和国家查看。

## 影响 eCPM 的因素

### 国家和平台

Google 写道，[eCPM 很大程度上取决于市场和平台](https://support.google.com/admob/answer/15337570)：可能在一个国家上涨，同时在另一个国家下跌。我不给你按国家划分的 eCPM 表：网上流传的那些来自别的 App、别的受众和别的时间段。

### iOS 上的 ATT

在 Apple 看来，利用来自其他公司 App 的数据展示定向广告就属于跟踪。这需要[通过 App Tracking Transparency 征得用户同意](https://developer.apple.com/app-store/user-privacy-and-data-use/)，否则广告标识符只会是一串零。Google 承认 [iOS 的隐私变化可能导致 eCPM 波动](https://support.google.com/admob/answer/9997589)，但没有给出具体影响的数字。

在 Apple 弹窗之前先解释你的请求，并[等用户回应后再加载广告](https://developers.google.com/admob/ios/privacy/strategies)。用锁定功能或提供奖励来换取用户同意，是 [guideline 5.1.2](https://devoria.fr/zh-hans/blog/guideline-5-1-2-third-party-ai-att-data-sharing) 所禁止的。

### 欧洲的用户同意

要投放个性化广告，Google 要求使用[经过认证的同意管理平台](https://support.google.com/admob/answer/13554116)，并接入 IAB 的 TCF 框架：欧洲经济区和英国自 2024 年 1 月 16 日起执行，瑞士自 2024 年 7 月 31 日起执行。Google 在 AdMob 中提供的欧洲同意消息是经过认证的。如果用户的选择既不允许个性化广告，也不允许非个性化广告，AdMob 会尝试投放[受限广告](https://support.google.com/admob/answer/10105530)，不做个性化，也不做再营销。

### 填充率和季节

根据 [Google 关于收入下降的页面](https://support.google.com/admob/checklist/10424733)，匹配率低通常与收入下降有关，而展示率低则说明 App 的集成或体验有问题。要识别季节因素，Google [建议做同比比较](https://support.google.com/admob/answer/15337570)。季节性下降多半不是你能控制的。

## AdMob 什么时候付款，Apple 抽多少

对于以欧元结算的账户，[AdMob 的付款门槛是 70 欧元](https://support.google.com/admob/answer/2772208)，低于这个数 Google 绝不付款。[每月周期](https://support.google.com/admob/answer/2772140)由三个日期构成：

1. **3 日**：上个月的预估收入确定为最终收入。
2. **20 日之前**：你的付款信息已更新，余额达到门槛，且没有设置暂缓付款。
3. **21 日左右**：发出付款；如果 21 日是周末或节假日，则顺延到下一个工作日。

低于门槛时，余额会结转，累加到下个月。

Apple 的佣金针对的是通过 App Store 购买的数字商品和服务。由 Analysis Group 为 Apple 撰写、2026 年 6 月发布的 [App Store 生态系统报告](https://www.apple.com/newsroom/pdfs/Apples_Global_App_Store_Ecosystem_and_Its_Growth_2025.pdf)，把 App 内广告归入不抽佣金的收入。**AdMob 付给你的钱，Apple 一分不拿。**至于订阅，Apple 的分成见 [Small Business Program 指南](https://devoria.fr/zh-hans/blog/apple-small-business-program-15-percent-commission)。

## 分步计算示例

下面所有数值都是为这个练习设定的假设。**既不是我某个 App 的实测数据，也不是市场平均值。**

假设有一款小游戏：每天 500 人打开，每人玩两局，每局结束时看到一次插页式广告。设匹配率为 90%，展示率为 80%，eCPM 为 3 欧元。

| 步骤          | 计算           | 结果       |
| ------------- | -------------- | ---------- |
| 每日请求数    | 500×2          | 1,000      |
| 匹配成功      | 1,000×0.9      | 900        |
| 每日展示次数  | 900×0.8        | 720        |
| 30 天展示次数 | 720×30         | 21,600     |
| 当月收入      | 21,600÷1,000×3 | 64.80 欧元 |

如果插页式广告加载太慢，展示率掉到 50%，展示次数就变成 13,500 次，也就是 40.50 欧元。

假设这个月是 10 月。64.80 欧元在 11 月 3 日确定，低于 70 欧元的门槛：11 月 21 日不付款。如果 11 月收入相同，余额在 12 月初达到 129.60 欧元，付款在 12 月 21 日左右发出。**在这个场景里，从第一次广告展示到第一笔付款发出，相隔将近三个月。**

## 在 Expo App 中集成 AdMob

`react-native-google-mobile-ads` 这个库把 AdMob 带到 Expo。以下步骤参照[它的 Expo 文档](https://docs.page/invertase/react-native-google-mobile-ads/installation/expo)。

### 1. 安装库

运行 `npx expo install react-native-google-mobile-ads`。

### 2. 声明插件

**插件在 `app.json` 中声明，填入你的 AdMob 应用 ID 和跟踪请求的说明文字。**文档还加了 `skAdNetworkItems` 列表，需要与 Google 的列表保持同步。

```json
{
  "expo": {
    "plugins": [
      [
        "react-native-google-mobile-ads",
        {
          "androidAppId": "ca-app-pub-xxxxxxxx~xxxxxxxx",
          "iosAppId": "ca-app-pub-xxxxxxxx~xxxxxxxx",
          "userTrackingUsageDescription": "你的 ATT 说明文字"
        }
      ]
    ]
  }
}
```

### 3. 别用 Expo Go

**这个库包含原生代码，Expo Go 无法运行。**你需要一个开发构建，例如先 `npx expo prebuild` 再 `npx expo run:ios`，每次修改插件选项后都要重新构建。

### 4. 先征得同意，再初始化

Google 提醒，[SDK 初始化时可能就已经开始预加载广告](https://developers.google.com/admob/ios/quick-start)。**先征得同意，只有在 `canRequestAds` 为 `true` 时才初始化 SDK。**如果征求同意失败，库的文档建议照样继续尝试：SDK 会沿用上一次会话的同意状态。

```ts
import mobileAds from "react-native-google-mobile-ads";
import { AdsConsent } from "react-native-google-mobile-ads";

export async function demarrerLesPubs(): Promise<void> {
  try {
    await AdsConsent.gatherConsent();
  } catch (erreur) {
    // 之前的同意状态仍然有效。
    console.warn("同意状态未更新", erreur);
  }
  const info = await AdsConsent.getConsentInfo();
  if (info.canRequestAds) {
    await mobileAds().initialize();
  }
}
```

如果你在 AdMob 中配置了 ATT 消息，[同意 SDK 也会处理 Apple 的跟踪请求](https://docs.page/invertase/react-native-google-mobile-ads/european-user-consent)，并在之前先显示一条解释消息。

### 5. 开发时使用测试广告

文档提醒，开发阶段使用真实广告[可能导致你的账户被停用](https://docs.page/invertase/react-native-google-mobile-ads/first-ad)。**整个开发过程都使用 `TestIds` 标识符。**

### 6. 发布 app-ads.txt 文件

它声明谁有权销售你的广告，Google 认为这是[避免大量收入损失](https://support.google.com/admob/answer/9787936)所必需的。**把它放在你 App Store 页面中[营销网址（Marketing URL）字段所指网站的根目录](https://support.google.com/admob/answer/9363762)**，内容类似 `google.com, pub-0000000000000000, DIRECT` 这样一行。

### 7. 申报 SDK 收集的数据

按照 App Store Connect 中的 App Privacy 填写信息。

## 第一个 App 选广告还是订阅？

在示例中，每天 500 名玩家每月带来 64.80 欧元，每人约 13 欧分。在总指南里，一个月费 4.49 欧元的订阅（价格同样是为示例设定的），扣除法国 20% 的增值税和 15% 的佣金后，每位订阅者给你留下约 3.18 欧元。那篇指南对广告用的是另一套假设：每天看 3 次广告，eCPM 为 4 美元。改动任何一个假设，结果都会跟着变。

**当 App 每天会被打开多次时，广告才有意义**，比如游戏：Google 把激励广告描述为[免费变现游戏的理想方式](https://support.google.com/admob/answer/6128738)。对于只用几分钟的工具类 App，订阅往往更现实。计算见[iOS App 选订阅还是一次性买断](https://devoria.fr/zh-hans/blog/ios-app-subscription-vs-one-time-purchase)，接入方法见 [RevenueCat 与 iOS App 内订阅](https://devoria.fr/zh-hans/blog/revenuecat-ios-in-app-subscription-setup)。

## 写代码前先选好模式

[iOS Kit](https://devoria.fr/zh-hans/kits/ios) 包含我的 App 的起步代码，引导流程、付费墙和订阅都已写好，你可以按自己的节奏跟着做。

做决定之前，[免费诊断](https://devoria.fr/zh-hans/diagnostic)会告诉你项目真正卡在哪里，并发给你我的防 Apple 拒审清单。订阅的搭建方法详见 [iOS App 内订阅](https://devoria.fr/zh-hans/expertise/ios-in-app-subscription)页面。

## 常见问题

### 手机 App 上一次广告能赚多少？

eCPM 除以 1000。按 Google 示例中 4 美元的 eCPM，一次展示值 0.004 美元。

### Google AdMob 能赚多少？

没有固定金额。你的收入＝展示次数÷1000×eCPM，而 eCPM 随国家、格式、ATT、用户同意和季节而变化。

### AdMob 的付款门槛是多少？

以欧元结算的账户是 70 欧元。一个月的收入在次月 3 日确定，如果余额达到门槛，在 21 日左右付款；否则结转到下个月。

### Apple 会从广告收入中抽佣金吗？

不会。Analysis Group 为 Apple 撰写、2026 年 6 月发布的报告，把 App 内广告归入不抽佣金的收入。

### 手机游戏里的一次广告能赚多少？

计算方法相同。游戏有天然的停顿点适合放插页式广告，比如一关结束时，还有可以用来交换激励视频的奖励。

### 能在 Expo Go 里测试 AdMob 吗？

不能。这个库包含原生代码，Expo Go 无法运行。你需要一个开发构建，并使用测试广告。


## 你的项目

[iOS Kit](https://devoria.fr/zh-hans/kits/ios)：用 Claude Code 做你的 iPhone App：我自己 App 的起步代码、检查其工作的 skills，以及 Apple Review Kit、App Store Screenshots Kit 和 ASO Kit。129,99 €。
