主题
按获取广告流量预测任务提交
接口说明
Ad Traffic By Keywords 用于按批量创建广告流量预测任务,可返回用于估算 CPC、点击量等指标的数据。相较常规搜索量接口,这类数据更适合评估某个在投放场景下的真实商业需求。
注意:自 6 月 1 日起,该接口返回的是整个任务中所有对应的整批 campaign 级数据,即一次任务提交的会一起参与结果计算。
该接口基于平台广告数据能力,返回结果会受到账号历史、已有广告素材等因素影响。为了尽量弱化这些因素的干扰,建议设置较高的 bid 值。
预测时间范围支持两种指定方式:
- 使用
date_from和date_to指定未来的日期范围; - 使用
date_interval指定相对时间区间:next_week、next_month、next_quarter
如果以上两种方式都未提供,默认使用 next_month。
该端点采用标准异步模式: 创建任务,再通过结果接口、任务 ID、或回调方式获取结果。若你需要实时返回结果,建议使用对应的 实时(Live)接口。
请求地址
POST https://api.seermartech.cn/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_post
计费说明
该接口按创建任务计费,而不是按数量计费。 单个任务中 keywords 最多可传 1000 个,无论传 1 个还是 1000 个,均按一次请求计费。
参考价约 ¥0.8000 / 次 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求限制
- 每分钟最多 2000 次 API 调用
- 每次 POST 最多提交 100 个任务 -过 100 个任务的部分会返回错误
40006 - 单个
keywords数组最多 1000 个
回调说明
你可以通过以下方式获取结果:
- 使用任务唯一标识
id后续查询 - 设置
postback_url,任务完成后由本平台向该地址发送结果的POST请求(gzip 压缩) - 设置
pingback_url,任务完成后由本平台向该地址发送通知GET请求
如果你的服务器在 10 秒未响应,连接会因时被中止,任务会转 /v3/keywords_data/google_ads/ad_traffic_by_keywords/tasks_ready 列表中拉取。
请求参数
POST 请求体为 JSON 数组格式:
json
[
{
"keywords": ["seo marketing"],
"bid": 999.0,
"match": "exact"
}
]字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
keywords | array | 填。列表。最多 1000 个;每个最多 80 个字符、10 个单词;提交后会自动转为小写。某些组可能无返回数据;相似可能被合并统计。建议需要精确比较时分开请求。Google Ads 不支持部分特殊符号、UTF 字符或 emoji。 |
bid | float | 填。自定义最高出价。返回的预测数据基于此值;通常出价越高,返回指标越高。 |
match | string | 填。匹类型,可选:exact、broad、phrase |
location_name | string | 可选。搜索引擎地区完整名称。不填时返回范围结果。使用该字段时,不要再传 location_code 或 location_coordinate。示例:London,England,United Kingdom |
location_code | integer | 可选。搜索引擎地区编码。不填时返回范围结果。使用该字段时,不要再传 location_name 或 location_coordinate。示例:2840 |
location_coordinate | string | 可选。GPS 坐标,格式为 "latitude,longitude"。使用该字段时,不要再传 location_name 或 location_code。结果将按该坐标所属国家返回。示例:52.6178549,-155.352142 |
language_name | string | 可选。搜索引擎语言完整名称。示例:English |
language_code | string | 可选。搜索引擎语言编码。示例:en |
date_from | string | 当指定 date_to 时填。预测时间范围开始日期,格式:yyyy-mm-dd。最小值为明天;不得晚于 date_to。若提供 date_from 和 date_to,则无需传 date_interval。示例:2021-10-30 |
date_to | string | 当指定 date_from 时填。预测时间范围结束日期,格式:yyyy-mm-dd。最小值为 date_from + 1 day;最大值为下一年当前月日。若提供 date_from 和 date_to,则无需传 date_interval。示例:2022-10-30 |
date_interval | string | 可选。预测时间区间,可选:next_week、next_month、next_quarter。默认:next_month。提供该字段时,无需传 date_from、date_to |
sort_by | string | 可选。结果排序字段,按降序排序。可选:relevance、average_cpc、cost、clicks。默认:relevance |
postback_url | string | 可选。任务完成后,平台会向该地址发送结果的 POST 请求(gzip 压缩)。支持 $id 和 $tag 变量占位。示例:http://your-server.com/postbackscript?id=$id&tag=$tag |
pingback_url | string | 可选。任务完成后,平台会向该地址发送通知 GET 请求。支持 $id 和 $tag 变量占位。示例:http://your-server.com/pingscript?id=$id&tag=$tag |
tag | string | 可选。用户自定义任务标识,最长 255 字符。可用于任务和业务记录,返回结果中的 data 对象会带回该值。 |
地区与语言列表
可通过以下容路径查询可用地区与语言:
- 地区列表:
/v3/keywords_data/google_ads/locations - 语言列表:
/v3/keywords_data/google_ads/languages
日期参数补说明
date_from 可设置的历史边界,需要结合状态接口判断:
- 若
/v3/keywords_data/google_ads/status/返回actual_data=false,则date_from可设置为上上个月及更早; - 若
/v3/keywords_data/google_ads/status/返回actual_data=true,则date_from可设置为上个月及更早。
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"location_name": "United States",
"language_code": "en",
"bid": 999.00,
"match": "exact",
"keywords": [
"seo marketing"
]
},
{
"language_code": "en",
"location_code": 2840,
"bid": 999.00,
"match": "exact",
"keywords": [
"seo marketing"
],
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"bid": 999.00,
"match": "exact",
"keywords": [
"seo marketing"
],
"postback_url": "https://your-server.com/postbackscript"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_post"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
data = [
{
"location_name": "United States",
"language_code": "en",
"bid": 999.00,
"match": "exact",
"keywords": ["seo marketing"]
},
{
"language_code": "en",
"location_code": 2840,
"bid": 999.00,
"match": "exact",
"keywords": ["seo marketing"],
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"bid": 999.00,
"match": "exact",
"keywords": ["seo marketing"],
"postback_url": "https://your-server.com/postbackscript"
}
]
response = requests.post(url, headers=headers, json=data)
print(response.json)TypeScript
typescript
import axios from "axios";
const postData = [
{
location_name: "United States",
language_name: "English",
bid: 999.0,
match: "exact",
keywords: ["seo marketing"],
},
{
language_code: "en",
location_code: 2840,
bid: 999.0,
match: "exact",
keywords: ["seo marketing"],
tag: "some_string_123",
pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag",
},
{
location_name: "United States",
language_name: "English",
bid: 999.0,
match: "exact",
keywords: ["seo marketing"],
postback_url: "https://your-server.com/postbackscript",
},
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_post",
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
data: postData,
})
.then((response) => {
// 返回任务提交结果
console.log(response.data);
})
.catch((error) => {
console.error(error);
});响应结构
接口返回 JSON 编码结果,顶层 tasks 数组。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | API 当前版本 |
status_code | integer | 通用状态码 |
status_message | string | 通用状态信息 |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求总费用,单位 USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | 返回错误的任务数量 |
tasks | array | 任务结果数组 |
tasks 数组字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态信息 |
time | string | 单任务执行耗时,单位秒 |
cost | float | 单任务费用,单位 USD |
result_count | integer | result 数组数量 |
path | array | URL 路径 |
data | object | 回显请求时提交的参数 |
result | array | null | 结果数组。对于 task_post 接口,此处通常为 null |
建议对
status_code和tasks[].status_code建立完善的异常处理机制。完整错误码可参考/v3/appendix/errors。
响应示例
json
{
"version": "3.20191128",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1169 sec.",
"cost": 0.15,
"tasks_count": 3,
"tasks_error": 0,
"tasks": [
{
"id": "01301455-1535-0111-0000-0e193f50bc50",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0020 sec.",
"cost": 0.05,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"google_ads",
"ad_traffic_by_keywords",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "ad_traffic_by_keywords",
"se": "google_ads",
"location_name": "United States",
"bid": 999,
"match": "exact",
"keywords": [
"seo marketing"
]
},
"result": null
},
{
"id": "01301455-1535-0111-0000-0e193f50bc51",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0021 sec.",
"cost": 0.05,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"google_ads",
"ad_traffic_by_keywords",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "ad_traffic_by_keywords",
"se": "google_ads",
"language_code": "en",
"location_code": 2840,
"bid": 999,
"match": "exact",
"keywords": [
"seo marketing"
],
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag",
"tag": "some_string_123"
},
"result": null
},
{
"id": "01301455-1535-0111-0000-1a12b9e9ee45",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0020 sec.",
"cost": 0.05,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"google_ads",
"ad_traffic_by_keywords",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "ad_traffic_by_keywords",
"se": "google_ads",
"location_name": "United States",
"language_name": "English",
"bid": 999,
"match": "exact",
"keywords": [
"seo marketing"
],
"postback_url": "https://your-server.com/postbackscript"
},
"result": null
}
]
}状态码说明
| 状态码 | 含义 |
|---|---|
20000 | 请求成功 |
20100 | 任务已创建 |
40006 | 单次 POST 提交的任务数 100 个 |
更多错误码请参考 /v3/appendix/errors。
使用建议
- 若希望减少广告账号历史对预测结果的影响,建议提高
bid - 若要比较相似的差异,建议拆分为多个请求分别提交
- 若不指定地区,将返回范围汇总结果
- 若使用回调,需确保服务端能在 10 秒完成响应
task_post负责创建任务,结果通常需要后续轮询或回调获取
实用场景
- 评估商业价值:按预测 CPC 和点击量,帮助判断某个 SEO 词是否同时备较强投放价值与转化潜力。
- 筛选优投放词:批量提交候选,根据点击量、成本或平均 CPC 排序,快速确定更值得投放的词组。
- 对比不同地域需求差异:针对不同
location_name或location_code建立任务,识别高潜力国家或城市,优化本地化投放与布局。 - 验证长尾词真实需求:通过广告流量预测补常规搜索量数据,识别看似搜索量不高但商业点击潜力强的长尾词。
- 建立自动化预测流水线:结合
pingback_url或postback_url异步回收结果,持续更新库中的出价、点击与成本预估数据。