如何通过API调用获取Google Play自有应用每日下载量
基于绑定私钥的Service Account拉取Google Play自有应用每日下载量实现指引
你找不到直接对应API的原因是:下载量属于应用统计类数据,不在应用发布类接口的分类里,统一归属于Google Play Android Developer API v3的stats模块,不需要对接其他第三方服务,直接用官方SDK就能实现。
前置配置(没做这步100%调不通)
- 打开Google Play Console,进入「用户和权限」页面,把你持有的Service Account对应的邮箱添加为控制台成员
- 给该成员分配查看应用统计信息权限,勾选你需要拉取数据的目标应用,不需要给多余的发布、编辑权限
- 打开对应Service Account所属的Google Cloud项目,搜索并启用Google Play Android Developer API,不要错开其他无关API
环境依赖安装
直接安装Google官方提供的API SDK即可,不要使用第三方封装的非官方包:pip install google-api-python-client google-auth
可直接运行的Python实现代码
from google.oauth2 import service_account from googleapiclient.discovery import build import datetime # 以下参数替换为你自己的实际配置 KEY_FILE_PATH = "你的Service Account私钥JSON文件本地路径" PACKAGE_NAME = "目标应用包名,例如com.your.app" # 示例拉取T-1日到T-8日的7天数据,Play统计数据有UTC时间延迟,不建议拉取当日数据 END_DATE = datetime.date.today() - datetime.timedelta(days=1) START_DATE = END_DATE - datetime.timedelta(days=7) # 拉取统计数据所需的最小权限范围,不用申请写权限 API_SCOPES = ["https://www.googleapis.com/auth/androidpublisher"] # 加载私钥凭证 creds = service_account.Credentials.from_service_account_file(KEY_FILE_PATH, scopes=API_SCOPES) # 初始化API客户端 play_service = build("androidpublisher", "v3", credentials=creds) # 调用统计接口拉取每日用户安装量(即Google Play前台展示的下载量口径) resp = play_service.stats().get( packageName=PACKAGE_NAME, startDate=START_DATE.isoformat(), endDate=END_DATE.isoformat(), metrics=["userInstalls"] ).execute() # 解析并输出每日数据 for daily_item in resp.get("stats", []): stat_date = daily_item["date"] daily_download = daily_item["metrics"]["userInstalls"]["count"] print(f"日期:{stat_date},当日下载量:{daily_download}")
注意事项
- 指标口径区分:
userInstalls是用户在商店点击安装的下载量口径,和Play控制台前台展示的下载数一致;deviceInstalls是设备完成安装的激活量,两个数值存在差异,按需选择 - 权限同步延迟:刚在Play Console给Service Account加完权限后,需要等待1~2小时完成全球节点同步,立刻调用会返回403权限错误
- 数据更新延迟:Play的每日统计数据在UTC时间次日12点左右才会生成全量数据,自动定时任务建议设置在UTC时间每日14点之后拉取前一日数据,避免拿到空值或不完整数据
- 如果需要按国家、应用版本、渠道等维度拆分下载数据,调用接口时传入
dimensions参数即可,例如dimensions=["country", "appVersion"]就能拿到对应维度拆分的统计结果
内容的提问来源于stack exchange,提问作者jack mark
相关产品推荐
相关产品推荐

