Google Play
使用服务账号连接 Google Play,读取 Play Console 报告和 Play Developer API。
RevGlance 读取您 Play Console 的 Cloud Storage 存储桶中的月度 sales 和 earnings 报告,并向 Play Developer API 查询计费周期、退款,以及(启用实时通知时的)试用和取消。
连接
- 在 Google Cloud 中,于某个项目内创建一个 service account,添加 JSON 密钥并下载。为该项目开启 Google Play Android Developer API。
- 在 Play Console 中,打开 Users and permissions,邀请该服务账号的邮箱,并为您的应用授予 View financial data 权限。
- 从 Download reports › Financial 复制您的报告存储桶:即 Cloud Storage URI 中
pubsite_prod_rev_…的部分。 - 填写存储桶、应用的软件包名称(
com.example.app)以及完整的 JSON 密钥,然后选择 连接 Google Play。新的邀请最多可能需要一天才能访问到报告。
表单需要填写的内容
| 字段 | 格式示例 |
|---|---|
| 报告存储分区 | pubsite_prod_rev_01234567890987654321 |
| 软件包名称 | com.example.app |
| 服务账号 JSON加密存储 | { "type": "service_account", … } |
服务账号以只读权限登录 Cloud Storage(devstorage.read_only)和 Android Publisher API。
添加 webhook
没有实时通知时,试用不可见,取消也只会在续订逾期三天后才显示。有了实时通知,RevGlance 会获知每个订阅的购买令牌,并向 Play 查询其实时状态。
- 在 RevGlance 中,打开 设置 › 来源,打开 Google Play 数据源的菜单并选择 Webhook。在 签名密钥 下保存一个较长的随机密钥。
- 在 Google Cloud 中,创建一个 Pub/Sub 主题,并允许 Google Play 向其发布消息,具体方法请参阅 Play Console 的 Monetization setup 页面。
- 为该主题添加一个 push 订阅。其端点是在 webhook URL 末尾加上
?token=和您的密钥。 - 在 Play Console 中,打开 Monetization setup,输入该主题并发送一条测试通知。RevGlance 会确认收到测试通知和其他应用的通知,但不会对其进行处理。
预期情况
- 报告延迟。 Google 会在销售发生三到七天后发布报告。sales 报告先到;之后 earnings 报告会以 Google 实际支付给您的金额替换它们。
- 匿名客户。 Play 不提供买家姓名。同一订阅的订单共享一个 ID 前缀(
GPA.1234…),该前缀会成为一个匿名客户。一次性购买没有客户。 - 通过 API 获取的退款 最多回溯 30 天。更早的退款会随 earnings 报告到达。
Google Play 的计算方式
- Google 的报告会延迟三到七天发布。销售数据先到;之后收入报告会用 Google 扣除其手续费后实际支付给您的金额替换它们。扣款按税前计入。
- 每一行退款都会保留,包括部分退款。同一订单的两笔部分退款分布在两份月度报告中时可能冲突,其中一笔可能会遗漏。Google 未说明其报告中的退款是否为负数,因此它们被读取为退款金额。
- 通过 Play API 获取的退款只能追溯 30 天。更早的退款随收入报告到达。
- 没有实时通知时,取消只会表现为续订逾期三天,并在报告涵盖该日后计入。
- 测试购买不予计入。处于保留状态的订阅继续计入;已暂停的订阅在恢复前计为流失。
- MRR 是最新订单的税前金额。推介优惠按优惠价格计入,之后的常规价格显示为扩展。
- 失败的扣款不会被报告,因此该数字始终为零。

RevGlance