Skip to content

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

获取结果的方式

任务创建成功后,你可以通过以下方式获取结果:

  1. 使用返回的任务 id 调用对应结果接口查询
  2. 创建任务时指定 postback_url,任务完成后本平台会向该地址发送结果的 POST 请求(gzip 压缩)
  3. 创建任务时指定 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"
 ]
 }
]

请求参数

字段名类型说明
keywordsarray。列表。每个任务最多 200 个,每个不 100 个字符。系统会自动转为小写。
location_namestring搜索引擎地域完整名称。当未提供 location_codelocation_coordinate 时填。使用该字段时,无需再传 location_codelocation_coordinate。示例:London,England,United Kingdom
location_codeinteger搜索引擎地域代码。当未提供 location_namelocation_coordinate 时填。使用该字段时,无需再传 location_namelocation_coordinate。示例:2840
location_coordinatestring地理坐标,格式为 "latitude,longitude"。当未提供 location_namelocation_code 时填。使用该字段时,无需再传 location_namelocation_code。结果会按该坐标所属国家返回。示例:52.6178549,-155.352142
language_namestring搜索语言完整名称。当未提供 language_code 时填。支持:EnglishFrenchGerman
language_codestring搜索语言代码。当未提供 language_name 时填。支持:enfrde
sort_bystring可选。结果排序方式,支持按 search_volumecpccompetitionrelevance 降序排序。默认:relevance
keywords_negativearray可选。排除列表。最多 200 个词,这些词会从结果中忽略;系统会自动转为小写。
devicestring可选。设备类型。可选值:allmobiledesktoptablet。默认:all
date_fromstring可选。时间范围起始日期,格式:yyyy-mm-dd。最早可设置为今天起往前 24 个月。未设置时默认返回最近 12 个月数据。示例:2020-01-01
date_tostring可选。时间范围结束日期,格式:yyyy-mm-dd。未设置时默认返回最近 12 个月数据。最早可设置为今天起往前 24 个月,最晚可设置为今天起往后 1 个月。示例:2020-03-15
search_partnersboolean可选。是否 Bing 搜索合作网络。true 表示返回 Bing、Yahoo、AOL 及合作站点网络的数据;默认 false,返回 Bing、AOL 和 Yahoo 搜索网络数据
postback_urlstring可选。任务完成后,本平台会向该地址发送结果的 POST 请求,为 gzip 压缩格式。支持使用 $id$tag 变量。示例:http://your-server.com/postbackscript?id=$id&tag=$tag
pingback_urlstring可选。任务完成后,本平台会向该地址发送 GET 通知。支持使用 $id$tag 变量。示例:http://your-server.com/pingscript?id=$id&tag=$tag
tagstring可选。自定义任务标识,最长 255 个字符。便于将任务与业务系统中的记录。返回结果中的 data 对象会带回该值

地域与语言说明

查询可用地域

可通过以下接口获取 Bing 支持的地域列表:

/v3/keywords_data/bing/locations

语言支持

当前支持以下语言:

  • English / en
  • French / fr
  • German / de

日期范围说明

  • 历史数据可追溯 24 个月
  • 若未指定 date_fromdate_to,默认返回最近 12 个月
  • 对于过去 1 年的数据,不建议自定义时间区间,建议直接使用默认范围

回调说明

postback_url

  • 任务完成后推送完整结果
  • 请求方法:POST
  • 数据格式:gzip 压缩
  • URL 中可使用:
  • $id:任务 ID
  • $tag:URL 编码后的自定义标签

pingback_url

  • 任务完成后发送通知
  • 请求方法:GET
  • URL 中同样支持 $id$tag

编码注意事项

回调 URL 中的特殊字符会进行 URL 编码,例如:

  • # 会被编码为 %23

响应结构

接口返回 JSON 数据,核心字段如下:

字段名类型说明
versionstringAPI 当前版本
status_codeinteger接口通用状态码,完整列表见 /v3/appendix/errors
status_messagestring接口通用状态信息
timestring执行耗时,单位秒
costfloat本次请求总费用,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorintegertasks 数组中失败任务数量
tasksarray任务数组

tasks 数组字段

字段名类型说明
idstring任务唯一标识,UUID 格式
status_codeinteger任务状态码,范围通常为 10000-60000
status_messagestring任务状态信息
timestring任务执行耗时
costfloat单个任务费用,单位 USD
result_countintegerresult 数组数量
patharray当前接口路径
dataobject回显你在 POST 中提交的任务参数
resultarray / null任务创建接口中该字段通常为 null,结果需后续查询或由回调推送

状态码与错误处理

建议对以下两类状态进行完整处理:

  • 接口级状态:顶层 status_codestatus_message
  • 任务级状态tasks[].status_codetasks[].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 通常表示任务已成功创建
  • resultnull 属于正常现象,因为这是异步任务创建接口
  • 后续需通过任务结果接口、pingback_urlpostback_url 获取推荐数据

实用场景

  • 批量扩展投放词库:基于种子词批量获取 Bing 推荐,快速补广告投放和 SEO规划的候选词池。
  • 筛除无流量词:结合 keywords_negative 排除品牌不或转化意图偏弱的词,提升研究结果的可用性。
  • 按地区制定本地化策略:通过 location_codelocation_name 或坐标参数获取特定国家/地区词建议,支持本地 SEO 与区域广告投放。
  • 按设备优化词策略:分别查询 mobiledesktoptablet 设备下的建议,落地页和广告素材做设备侧优化。
  • 构建异步生产流程:通过 pingback_urlpostback_url 对接系统,实现大批量任务自动创建、回传与库。

统一入口:官网 · LLM API · 控制台