主题
Bing 推荐任务创建
POST /v3/keywords_data/bing/keywords_for_keywords/task_post
接口说明
该接口用于根据一组给定,获取 Bing Ads 提供的推荐。
- 单个任务最多可提交 200 个
- 每个任务最多可返回 3000 条建议
- 支持查询 最近 24 个月 的历史数据
- 这是标准异步模式:创建任务,再通过结果接口或回调方式获取结果
- 如果你需要实时返回结果,建议改用
/v3/keywords_data/bing/keywords_for_keywords/live/
请求地址
POST https://api.seermartech.cn/v3/keywords_data/bing/keywords_for_keywords/task_post
计费说明
该接口在创建任务时扣费。 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
参考价:原文未提供明确 USD 单价,无法换算固定人民币价格。
调用限制
- 每分钟最多 2000 次 API 调用
- 单次 POST 最多可 100 个任务
- 如果单次请求中任务数 100,出部分会返回错误
40006
获取结果的方式
任务创建成功后,你可以通过以下方式获取结果:
- 使用返回的任务
id调用对应结果接口查询 - 创建任务时指定
postback_url,任务完成后本平台会向该地址发送结果的 POST 请求(gzip 压缩) - 创建任务时指定
pingback_url,任务完成后本平台会向该地址发送 GET 通知
注意:如果你的服务器在 10 秒未响应回调请求,连接会因时中断,任务会转对应的
tasks_ready列表,需改为主动拉取。
请求体格式
所有 POST 数据使用 JSON(UTF-8 编码),并且请求体为 JSON 数组:
json
[
{
"location_code": 2840,
"language_code": "en",
"keywords": [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
]
}
]请求参数
| 字段名 | 类型 | 说明 |
|---|---|---|
keywords | array | 填。列表。每个任务最多 200 个,每个不 100 个字符。系统会自动转为小写。 |
location_name | string | 搜索引擎地域完整名称。当未提供 location_code 或 location_coordinate 时填。使用该字段时,无需再传 location_code 或 location_coordinate。示例:London,England,United Kingdom |
location_code | integer | 搜索引擎地域代码。当未提供 location_name 或 location_coordinate 时填。使用该字段时,无需再传 location_name 或 location_coordinate。示例:2840 |
location_coordinate | string | 地理坐标,格式为 "latitude,longitude"。当未提供 location_name 或 location_code 时填。使用该字段时,无需再传 location_name 或 location_code。结果会按该坐标所属国家返回。示例:52.6178549,-155.352142 |
language_name | string | 搜索语言完整名称。当未提供 language_code 时填。支持:English、French、German |
language_code | string | 搜索语言代码。当未提供 language_name 时填。支持:en、fr、de |
sort_by | string | 可选。结果排序方式,支持按 search_volume、cpc、competition 或 relevance 降序排序。默认:relevance |
keywords_negative | array | 可选。排除列表。最多 200 个词,这些词会从结果中忽略;系统会自动转为小写。 |
device | string | 可选。设备类型。可选值:all、mobile、desktop、tablet。默认:all |
date_from | string | 可选。时间范围起始日期,格式:yyyy-mm-dd。最早可设置为今天起往前 24 个月。未设置时默认返回最近 12 个月数据。示例:2020-01-01 |
date_to | string | 可选。时间范围结束日期,格式:yyyy-mm-dd。未设置时默认返回最近 12 个月数据。最早可设置为今天起往前 24 个月,最晚可设置为今天起往后 1 个月。示例:2020-03-15 |
search_partners | boolean | 可选。是否 Bing 搜索合作网络。true 表示返回 Bing、Yahoo、AOL 及合作站点网络的数据;默认 false,返回 Bing、AOL 和 Yahoo 搜索网络数据 |
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 对象会带回该值 |
地域与语言说明
查询可用地域
可通过以下接口获取 Bing 支持的地域列表:
/v3/keywords_data/bing/locations
语言支持
当前支持以下语言:
English/enFrench/frGerman/de
日期范围说明
- 历史数据可追溯 24 个月
- 若未指定
date_from和date_to,默认返回最近 12 个月 - 对于过去 1 年的数据,不建议自定义时间区间,建议直接使用默认范围
回调说明
postback_url
- 任务完成后推送完整结果
- 请求方法:
POST - 数据格式:
gzip压缩 - URL 中可使用:
$id:任务 ID$tag:URL 编码后的自定义标签
pingback_url
- 任务完成后发送通知
- 请求方法:
GET - URL 中同样支持
$id和$tag
编码注意事项
回调 URL 中的特殊字符会进行 URL 编码,例如:
#会被编码为%23
响应结构
接口返回 JSON 数据,核心字段如下:
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | API 当前版本 |
status_code | integer | 接口通用状态码,完整列表见 /v3/appendix/errors |
status_message | string | 接口通用状态信息 |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求总费用,单位 USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | tasks 数组中失败任务数量 |
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 | 当前接口路径 |
data | object | 回显你在 POST 中提交的任务参数 |
result | array / null | 任务创建接口中该字段通常为 null,结果需后续查询或由回调推送 |
状态码与错误处理
建议对以下两类状态进行完整处理:
- 接口级状态:顶层
status_code、status_message - 任务级状态:
tasks[].status_code、tasks[].status_message
常见注意点:
- 单次请求任务 100 个时,出部分返回
40006 - 回调地址 10 秒无响应时,回调会时终止
- 任务创建成功不代表结果已立即生成,需处理完成
完整错误码请参考:
/v3/appendix/errors
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/keywords_data/bing/keywords_for_keywords/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"location_name": "United States",
"keywords": [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
]
},
{
"language_code": "en",
"location_code": 2840,
"keywords": [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
],
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"keywords": [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
],
"postback_url": "https://your-server.com/postbackscript"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/keywords_data/bing/keywords_for_keywords/task_post"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
data = [
{
"location_name": "United States",
"keywords": [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
]
},
{
"language_code": "en",
"location_code": 2840,
"keywords": [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
],
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"keywords": [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
],
"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",
keywords: [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
]
},
{
language_code: "en",
location_code: 2840,
keywords: [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
],
tag: "some_string_123",
pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
location_name: "United States",
language_name: "English",
keywords: [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
],
postback_url: "https://your-server.com/postbackscript"
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/keywords_data/bing/keywords_for_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
{
"version": "0.1.20200923",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0917 sec.",
"cost": 0.05,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "8adf2c4e-6c3c-4f2f-9db8-1a2b3c4d5e6f",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0210 sec.",
"cost": 0.05,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"bing",
"keywords_for_keywords",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "keywords_for_keywords",
"se": "bing",
"location_code": 2840,
"language_code": "en",
"keywords": [
"average page rpm adsense",
"adsense blank ads how long",
"leads and prospects"
]
},
"result": null
}
]
}响应示例说明
创建任务接口成功后:
- 顶层
status_code = 20000表示请求处理成功 - 任务级
status_code = 20100通常表示任务已成功创建 result为null属于正常现象,因为这是异步任务创建接口- 后续需通过任务结果接口、
pingback_url或postback_url获取推荐数据
实用场景
- 批量扩展投放词库:基于种子词批量获取 Bing 推荐,快速补广告投放和 SEO规划的候选词池。
- 筛除无流量词:结合
keywords_negative排除品牌不或转化意图偏弱的词,提升研究结果的可用性。 - 按地区制定本地化策略:通过
location_code、location_name或坐标参数获取特定国家/地区词建议,支持本地 SEO 与区域广告投放。 - 按设备优化词策略:分别查询
mobile、desktop、tablet设备下的建议,落地页和广告素材做设备侧优化。 - 构建异步生产流程:通过
pingback_url或postback_url对接系统,实现大批量任务自动创建、回传与库。