主题
Google Play 应用交集(实时)
POST /v3/dataforseo_labs/google/app_intersection/live
本接口使用 POST 方法,路径为:
/v3/dataforseo_labs/google/app_intersection/live
用于获取多个 Google Play 应用排名的列表。接口会返回指定应用在同一 Google Play 搜索结果页(SERP)中出现的,以及对应应用的排名、应用信息和数据。
app_id 是 Google Play 应用页 URL 中的应用标识。例如:
https://play.google.com/store/apps/details?id=org.telegram.messenger
,org.telegram.messenger 即为该应用的 app_id。
**数据更新频率:**每周更新。最新更新时间可通过状态接口查询:
/v3/dataforseo_labs/status
请求说明
- 请求体使用 UTF-8 编码的 JSON。
- POST 请求体格式为 JSON 数组:
[{ ... }]。 - 每次实时接口调用只能 1 个任务。 平台限流以认证说明中的 30/60/120 次/分钟规则为准。
- 支持设置返回数量、过滤条件和排序规则。
app_ids最多支持指定 20 个应用。
计费
每次请求单独计费,参考价约 ¥0.0792 / 次。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
app_ids | object | 是 | 目标 Google Play 应用 ID。对象的键应使用 "1" 至 "20",值为应用 ID。最多支持 20 个应用。 |
location_name | string | 条件填 | 地区名称。不传 location_code 时填。目前支持 United States。 |
location_code | integer | 条件填 | 地区代码。不传 location_name 时填。目前支持 2840。 |
language_name | string | 条件填 | 语言名称。不传 language_code 时填。目前支持 English。 |
language_code | string | 条件填 | 语言代码。不传 language_name 时填。目前支持 en。 |
filters | array | 否 | 结果过滤条件。最多支持 8 个过滤条件,多个条件之间需要使用 and 或 or。 |
order_by | array | 否 | 结果排序规则。最多支持 3 条排序规则,排序方向为 asc 或 desc。 |
limit | integer | 否 | 最多返回的数量。默认值为 100,最大值为 1000。 |
offset | integer | 否 | 结果偏移量。默认值为 0。例如设置为 10 时,将跳过前 10 条结果。 |
tag | string | 否 | 用户自定义任务标识,最长 255 个字符。该值会原样返回在响应任务的 data 对象中。 |
include_serp_info | boolean | 否 | 是否返回对应的 SERP 信息。设置为 true 时,响应中的 serp_info 可能数据。 |
app_ids 示例
json
{
"app_ids": {
"1": "org.telegram.messenger",
"2": "com.zhiliaoapp.musically"
}
}如果只指定一个应用,接口返回该应用的排名结果。
可用地区和语言
可通过以下接口查询可用地区和语言:
/v3/dataforseo_labs/locations_and_languages
当前本接口支持:
json
{
"location_name": "United States",
"location_code": 2840,
"language_name": "English",
"language_code": "en"
}过滤条件
支持以下运算符:
<、<=、>、>=、=、<>、in、not_in
示例:
json
{
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500
]
]
}多个条件示例:
json
{
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500
],
"and",
[
"keyword_data.keyword",
"in",
[
"telegram",
"messenger"
]
]
]
}过滤器语法,请参考过滤器说明。
排序条件
排序条件使用与 filters 相同的字段表达式,并在末尾指定排序方向:
json
{
"order_by": [
[
"keyword_data.keyword_info.search_volume",
"desc"
]
]
}可使用 asc(升序)或 desc(降序)。单次请求最多设置 3 条排序规则,多个规则之间使用逗号分隔。
请求示例
cURL
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/dataforseo_labs/google/app_intersection/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"app_ids": {
"1": "org.telegram.messenger",
"2": "com.zhiliaoapp.musically"
},
"location_code": 2840,
"language_code": "en",
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500
]
],
"limit": 10
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/dataforseo_labs/google/app_intersection/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
payload = [
{
"app_ids": {
"1": "org.telegram.messenger",
"2": "com.zhiliaoapp.musically",
},
"location_name": "United States",
"language_name": "English",
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500,
]
],
"limit": 10,
}
]
response = requests.post(url, headers=headers, json=payload)
data = response.json()
if data.get("status_code") == 20000:
print(data)
else:
print(
"请求失败,错误码:{},消息:{}".format(
data.get("status_code"),
data.get("status_message"),
)
)TypeScript
typescript
import axios from "axios";
const payload = [
{
app_ids: {
"1": "org.telegram.messenger",
"2": "com.zhiliaoapp.musically",
},
location_code: 2840,
language_code: "en",
filters: [
["keyword_data.keyword_info.search_volume", ">=", 500],
],
limit: 10,
},
];
axios
.post(
"https://api.seermartech.cn/v3/dataforseo_labs/google/app_intersection/live",
payload,
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
)
.then((response) => {
// 处理接口返回结果
console.log(response.data);
})
.catch((error) => {
console.error("请求失败:", error.response?.data || error.message);
});响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 请求级状态码。20000 表示成功。 |
status_message | string | 请求级状态信息。 |
time | string | 请求执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务总数。 |
tasks_error | integer | tasks 数组中执行失败的任务数。 |
tasks | array | 任务结果数组。 |
任务字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。 |
status_code | integer | 任务状态码,通常在 10000 至 60000 范围。 |
status_message | string | 任务状态信息。 |
time | string | 任务执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。 |
path | array | 请求路径信息。 |
data | object | 创建任务时提交的参数。 |
result | array | 任务结果数组。 |
完整错误码请参考错误码说明。
result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型,本接口为 google。 |
app_ids | object | 请求中指定的应用 ID。 |
location_code | integer | 请求中的地区代码。 |
language_code | string | 请求中的语言代码。 |
total_count | integer | 数据库中与请求条件匹的结果总数。 |
items_count | integer | items 数组中返回的结果数量。 |
items | array | 排名及应用排名数据。 |
items 字段
每个 items素表示一个应用交集。
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。 |
keyword_data | object | 返回的数据。 |
serp_info | object/null | 对应的 SERP 数据。未设置 include_serp_info: true,或数据库中没有该的 SERP 数据时为 null。 |
intersection_result | object | 该下各应用的 SERP 排名数据。 |
keyword_data
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。 |
keyword | string | 返回的。 |
location_code | integer | 地区代码。 |
language_code | string | 语言代码。 |
keyword_info | object | 指标信息。 |
keyword_info
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。 |
last_updated_time | string | 数据更新时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
competition | float/null | 竞争度,取值范围为 0 至 1。本接口中通常为 null。 |
competition_level | string/null | 付费搜索结果中的竞争等级,可选值为 LOW、MEDIUM、HIGH。本接口中通常为 null。 |
cpc | float/null | 历史平均单次点击费用。本接口中通常为 null。 |
search_volume | integer | Google Play 中该的月均搜索量估值。 |
low_top_of_page_bid | float/null | 广告展示在首页顶部所需的较低竞价估值。本接口中通常为 null。 |
high_top_of_page_bid | float/null | 广告展示在首页顶部所需的较高竞价估值。本接口中通常为 null。 |
categories | array/null | 产品和服务类别。本接口中通常为 null。 |
monthly_searches | array/null | 过去 12 个月的月度搜索量数据。本接口中通常为 null。 |
serp_info
当 include_serp_info 设置为 true 且存在对应 SERP 数据时返回。
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。 |
check_url | string | 可直接访问的搜索结果页 URL,可用于核验结果。 |
serp_item_types | array/null | SERP 中出现的结果类型。本接口中可能为 null。 |
se_results_count | string | 该的搜索结果数量。 |
last_updated_time | string | SERP 数据最近更新时间,UTC 格式。 |
previous_updated_time | string | SERP 数据上一次更新时间,UTC 格式。 |
intersection_result
intersection_result 按应用 ID 分组返回 SERP 数据。对象中的 "1" 至 "20" 分别对应请求中 app_ids 对象的同名键。
每个应用对象可能以下 SERP素类型:
google_play_search_organic
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | SERP素类型,可能为 google_play_search_organic。 |
rank_group | integer | 在相同 type素组中的排名。不同类型之间不计算该排名。 |
rank_absolute | integer | 在整个 SERP 中的绝对排名。 |
position | string | 素在 SERP 中的对齐位置,可选值为 left、right。 |
app_id | string | 应用 ID。 |
title | string | 应用名称。 |
url | string | Google Play 应用页 URL。 |
icon | string | 应用图标 URL。 |
reviews_count | integer | 应用评论总数。 |
rating | object | 应用平均评分。 |
is_free | object | 应用价格信息。 |
developer | string | 应用开发名称。 |
developer_url | object | 开发在 Google Play 中的页面 URL。 |
rating
| 字段 | 类型 | 说明 |
|---|---|---|
rating_type | string | 评分类型,目前为 Max5。 |
value | float | 评分值。 |
votes_count | integer/null | 评分票数。本接口中可能为 null。 |
rating_max | integer | 评分最大值。Max5 类型的最大值为 5。 |
is_free
该对象用于描述应用在搜索结果中展示的价格信息。字段名称虽然为 is_free,可能或付费应用的价格。
| 字段 | 类型 | 说明 |
|---|---|---|
current | float | 当前价格。 |
regular | float | 常规价格。 |
max_value | float | 最高价格。 |
currency | string | 价格币种,使用 ISO 币种代码。 |
is_price_range | boolean | 是否以价格区间形式展示。 |
displayed_price | string | 搜索结果中展示的原始价格文本。 |
响应示例
json
{
"version": "0.1.20220428",
"status_code": 20000,
"status_message": "Ok.",
"time": "1.4156 sec.",
"cost": 0.0792,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "00000000-0000-0000-0000-000000000000",
"status_code": 20000,
"status_message": "Ok.",
"time": "1.4156 sec.",
"cost": 0.0792,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"google",
"app_intersection",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "app_intersection",
"se_type": "google",
"app_ids": {
"1": "org.telegram.messenger",
"2": "com.zhiliaoapp.musically"
},
"location_code": 2840,
"language_code": "en",
"limit": 10
},
"result": [
{
"se_type": "google",
"app_ids": {
"1": "org.telegram.messenger",
"2": "com.zhiliaoapp.musically"
},
"location_code": 2840,
"language_code": "en",
"total_count": 2,
"items_count": 2,
"items": [
{
"se_type": "google",
"keyword_data": {
"se_type": "google",
"keyword": "messenger",
"location_code": 2840,
"language_code": "en",
"keyword_info": {
"se_type": "google",
"last_updated_time": "2019-11-15 12:57:46 +00:00",
"competition": null,
"competition_level": null,
"cpc": null,
"search_volume": 5000,
"low_top_of_page_bid": null,
"high_top_of_page_bid": null,
"categories": null,
"monthly_searches": null
}
},
"serp_info": null,
"intersection_result": {
"1": {
"type": "google_play_search_organic",
"rank_group": 1,
"rank_absolute": 1,
"position": "left",
"app_id": "org.telegram.messenger",
"title": "Telegram",
"url": "https://play.google.com/store/apps/details?id=org.telegram.messenger",
"icon": "https://example.com/icon.png",
"reviews_count": 1000000,
"rating": {
"rating_type": "Max5",
"value": 4.5,
"votes_count": null,
"rating_max": 5
},
"is_free": {
"current": 0,
"regular": 0,
"max_value": 0,
"currency": "USD",
"is_price_range": false,
"displayed_price": "Free"
},
"developer": "Example Developer",
"developer_url": "https://play.google.com/store/apps/developer?id=Example"
}
}
}
]
}
]
}
]
}错误处理
建议根据以下字段实现统一的异常处理:
- 顶层
status_code:判断整个请求是否成功。 - 任务级
tasks[].status_code:判断单个任务是否成功。 status_message:获取对应的错误或状态说明。tasks_error:统计任务失败数量。
20000 表示请求成功。完整状态码和错误信息请参考错误码说明。
实用场景
- 发现排名:识别多个竞品应用同时覆盖的 Google Play ,为竞品研究和 ASO 词库建设提供依据。
- 评估竞争机会:结合
search_volume、应用排名和交集结果,筛选高搜索量但竞争相对可控的。 - 对比应用搜索表现:按查看不同应用的
rank_group和rank_absolute,定位自身应用与竞品的排名差距。 - 构建竞品监测报表:定期提交相同应用集合,跟踪数量、排名变化和数据更新时间。
- 支持 ASO优化:根据排名及应用标题、开发和 SERP 信息,优化应用标题、简介和布局。