主题
设置 Google 按类别获取任务
本接口使用 POST 方法,路径为:
/v3/keywords_data/google/keywords_for_category/task_post
Google AdWords 数据接口属于旧版接口,建议迁移至 Google Ads API。该接口用于根据指定的 Google 产品或服务类别获取建议,并返回以下数据:
- 最近一个月的搜索量
- 过去一年的搜索量趋势,可用于评估搜索需求变化
- 当前每次点击费用(CPC)
- 付费搜索竞争程度
本接口采用标准异步任务模式。提交任务后,系统会在后台采集数据,之后通过任务查询接口获取结果。任务执行时间取决于系统负载。
如果业务需要即时返回结果,可使用实时接口:
/v3/keywords_data/google/keywords_for_category/live
也可以通过以下接口查询 Google 返回的搜索量数据更新时间:
/v3/keywords_data/google/adwords_status
通常,Google 会在每月中旬更新数据。
计费与限制
- 账户在成功提交任务时计费。
- 参考价约 ¥0.36 / 个任务;价格可能根据任务有所不同。
- 每次请求最多提交 100 个任务。 平台限流以认证说明中的 30/60/120 次/分钟规则为准。
- 如果单次请求提交 100 个任务,出部分将返回错误码
40006。 - 单个请求最多返回 700 个及核心数据。
- 无论最终返回 1 个还是 700 个,均按一次请求计费。
- 实扣费以响应头
X-SeerMarTech-Charge-CNY为准。 - 任务结果可以通过任务 ID 查询,也可以在提交任务时
postback_url或pingback_url,由本平台在任务完成后主动通知。
如果的回调服务器在 10 秒未响应,连接将因时中断,任务会转移至 tasks_ready 列表。错误码和错误信息取决于回调服务器。
请求格式
请求体使用 UTF-8 编码的 JSON 数组:
json
[
{
"category_code": 13895,
"location_code": 2840,
"language_code": "en"
}
]请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
category_code | integer | Google 产品或服务类别 ID。填。可通过 GET /v3/keywords_data/google/categories 获取可用类别列表。 |
location_name | string | 搜索引擎地理位置的完整名称。可选。使用该参数后,不应同时传 location_code 或 location_coordinate。忽略该参数时返回结果。示例:London,England,United Kingdom。可通过 GET /v3/keywords_data/google/locations 获取可用位置及名称。 |
location_code | integer | 搜索引擎地理位置代码。可选。使用该参数后,不应同时传 location_name 或 location_coordinate。忽略该参数时返回结果。示例:2840。 |
location_coordinate | string | 地理位置 GPS 坐标。可选,格式为 纬度,经度,例如 52.6178549,-155.352142。数据将根据坐标所属国家返回。使用该参数后,不应同时传 location_name 或 location_code。忽略该参数时返回结果。 |
language_name | string | 搜索引擎语言的完整名称。可选。使用该参数后,不应同时传 language_code。忽略该参数时返回所有可用语言的结果。示例:English。可通过 GET /v3/keywords_data/google/languages 获取可用语言。 |
language_code | string | 搜索引擎语言代码。可选。使用该参数后,不应同时传 language_name。忽略该参数时返回所有可用语言的结果。示例:en。 |
search_partners | boolean | 是否同时返回 Google 搜索合作伙伴的数据。可选,默认值为 false。设置为 true 时,结果 Google 及搜索合作伙伴数据。 |
sort_by | string | 结果排序方式。可选,支持按 search_volume 或 relevance 降序排列。默认值为 search_volume。 |
keywords_negative | array | 排除列表。可选。列表中的不会出现在结果中,最多支持 200 个词条。提交的会自动转换为小写。 |
postback_url | string | 任务完成后接收结果的 URL。可选。本平台会向该地址发送结果的 gzip 压缩 POST 请求。URL 中可使用 $id 和 $tag 占位符,发送时会替换为任务 ID 和 URL 编码后的标签值。 |
pingback_url | string | 任务完成通知 URL。可选。任务完成后,本平台会向该地址发送 GET 请求。URL 中可使用 $id 和 $tag 占位符。 |
tag | string | 自定义任务标识。可选,最多 255 个字符。可用于任务与结果,提交的值会出现在响应的 data 对象中。 |
位置与语言参数说明
以下参数分别用于指定位置和语言,同一组参数中只能选择一种:
- 位置:
location_name、location_code、location_coordinate - 语言:
language_name、language_code
不传位置参数时返回结果;不传语言参数时返回所有可用语言的结果。
回调 URL 示例
postback_url 示例:
text
https://your-server.com/postbackscript?id=$id
https://your-server.com/postbackscript?id=$id&tag=$tagpingback_url 示例:
text
https://your-server.com/pingscript?id=$id
https://your-server.com/pingscript?id=$id&tag=$tag回调 URL 中的特殊字符会进行 URL 编码,例如 # 会编码为 %23。
请求示例
cURL
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/keywords_data/google/keywords_for_category/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"location_name": "United States",
"category_code": 13895
},
{
"language_code": "en",
"location_code": 2840,
"category_code": 13895,
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"category_code": 13895,
"postback_url": "https://your-server.com/postbackscript"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/keywords_data/google/keywords_for_category/task_post"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
post_data = [
{
"location_name": "United States",
"category_code": 13895
},
{
"language_code": "en",
"location_code": 2840,
"category_code": 13895,
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"category_code": 13895,
"postback_url": "https://your-server.com/postbackscript"
}
]
response = requests.post(url, headers=headers, json=post_data)
result = response.json()
if result.get("status_code") == 20000:
print(result)
else:
print(
"请求失败,错误码:%s,错误信息:%s"
% (result.get("status_code"), result.get("status_message"))
)TypeScript
typescript
import axios from "axios";
const postData = [
{
location_name: "United States",
category_code: 13895,
},
{
language_code: "en",
location_code: 2840,
category_code: 13895,
tag: "some_string_123",
pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag",
},
{
location_name: "United States",
language_name: "English",
category_code: 13895,
postback_url: "https://your-server.com/postbackscript",
},
];
axios
.post(
"https://api.seermartech.cn/v3/keywords_data/google/keywords_for_category/task_post",
postData,
{
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 数组。提交成功后,每个任务通常返回任务 ID,result 为 null。后续可使用任务 ID 查询任务结果。
顶层响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 整体状态码。成功通常为 20000。完整错误码请参考错误码文档。 |
status_message | string | 整体状态信息。 |
time | string | 请求执行耗时,例如 0.0683 sec.。 |
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 | 任务状态信息,例如 Task Created.。 |
time | string | 任务执行耗时。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的结果数量。任务刚创建时通常为 0。 |
path | array | 请求路径信息。 |
data | object | 本次任务提交时使用的参数及系统补信息。 |
result | array | null | 任务结果数组。任务创建接口返回时为 null。 |
响应示例
json
{
"version": "0.1.20200130",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0683 sec.",
"cost": 1.08,
"tasks_count": 3,
"tasks_error": 0,
"tasks": [
{
"id": "01301831-1535-0107-0000-21cc045291e0",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0020 sec.",
"cost": 0.36,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"google",
"keywords_for_category",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "keywords_for_category",
"se": "google",
"location_name": "United States",
"category_code": 13895
},
"result": null
},
{
"id": "01301831-1535-0107-0000-77a3219d7e0b",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0022 sec.",
"cost": 0.36,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"google",
"keywords_for_category",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "keywords_for_category",
"se": "google",
"language_code": "en",
"location_code": 2840,
"category_code": 13895,
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag",
"tag": "some_string_123"
},
"result": null
},
{
"id": "01301831-1535-0107-0000-99a3219d7e0b",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0022 sec.",
"cost": 0.36,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"google",
"keywords_for_category",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "keywords_for_category",
"se": "google",
"language_name": "English",
"location_name": "United States",
"category_code": 13895,
"postback_url": "https://your-server.com/postbackscript"
},
"result": null
}
]
}状态码与错误处理
建议客户端同时检查以下状态信息:
- 顶层
status_code - 每个任务对象中的
status_code tasks_error是否大于0- HTTP 状态码及响应头中的计费信息
任务创建成功时,任务级状态码通常为:
20000:请求成功20100:任务已创建
当任务数量单次请求限制时,出限制的任务会返回:
40006:单次请求中的任务数量 100 个
实用场景
- 按产品类别批量发现,快速构建电商或 SaaS 产品的库,扩大 SEO覆盖范围。
- 结合搜索量趋势筛选目标词,识别需求增长或下降的,为日历和季度选题提供依据。
- 按国家、城市和语言拆分数据,比较不同市场的搜索需求,支持化 SEO 和本地化落地页规划。
- 结合 CPC 与竞争程度评估商业价值,优选择搜索需求和转化潜力的,提升 SEO 与付费投放协同效率。
- 使用负过滤无词条,在批量获取时排除不符合业务范围的主题,降低后续洗和人工筛选成本。