Skip to content

按任务 ID 获取 Google Ads 广告流量结果

自 6 月 1 日起,「按获取广告流量」接口返回整个广告系列的批量数据,即创建任务时提交的结果。

本接口基于新版 Google Ads API。通过查询任务结果,可获取用于估算点击量、平均点击费用(CPC)和广告成本的指标。与针对相似集合的常规搜索量估算相比,该数据更适合评估单个的广告需求。

接口信息

GET /v3/keywords_data/google_ads/ad_traffic_by_keywords/task_get/$id

完整请求地址:

text
https://api.seermartech.cn/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_get/$id

$id 为创建任务时返回的任务 ID。

计费说明

  • 在提交任务时产生费用。
  • 任务完成后,可在 30 天查询任务结果。
  • 查询结果接口本身不重复扣费。
  • 实扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

请求参数

该接口使用路径参数,不需要请求体。

参数类型说明
idstring任务唯一标识符,采用 UUID 格式。任务创建后 30 天可使用该 ID 随时查询结果。

响应结构

接口返回 JSON 数据 tasks 数组。

顶层字段

字段类型说明
versionstring当前 API 版本。
status_codeinteger请求整体状态码。详细状态码请参考错误码文档。
status_messagestring请求整体说明信息。
timestring接口执行耗时,单位为秒。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks_countintegertasks 数组中的任务数量。
tasks_errorintegertasks 数组中返回错误的任务数量。
tasksarray任务结果数组。

tasks 中的任务字段

字段类型说明
idstring任务唯一标识符,采用 UUID 格式。
status_codeinteger任务状态码,通常位于 1000060000 范围。
status_messagestring任务状态说明。
timestring任务执行耗时,单位为秒。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
result_countintegerresult 数组中的结果数量。
patharray请求路径信息。
dataobject创建任务时提交的参数。
resultarray广告流量结果数组。

result 结果字段

字段类型说明
keywordstring创建任务时提交的。指标会针对请求中的返回。
location_codeinteger创建任务时提交的地区代码。没有数据时返回 null
language_codestring创建任务时提交的语言代码。没有数据时返回 null
date_intervalstring创建任务时提交的预测日期区间。
search_partnersboolean是否 Google 搜索合作伙伴数据。该接口固定返回 false
bidfloat创建任务时设置的最高自定义出价,表示广告主愿意为广告支付的最高金额。出价越高,通常可获得的指标范围越大,任务成本也可能越高。
matchstring匹类型,可选值为 exactbroadphrase
impressionsfloat预测广告展示次数。该字段已弃用,固定返回 null
ctrfloat预测广告点击率,即预测点击次数除以预测展示次数。该字段已弃用,固定返回 null
average_cpcfloat平均每次点击费用,基于指定日期区间和历史数据估算,单位为人民币。没有数据时返回 null
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
clicksfloat指定日期区间的预测广告点击次数。没有数据时返回 null

请求示例

cURL

bash
task_id="02031634-0696-0111-0000-61c2471b87fc"

curl --location --request GET \
  "https://api.seermartech.cn/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_get/${task_id}" \
  --header "Authorization: Bearer smt_live_YOUR_KEY" \
  --header "Content-Type: application/json"

Python

python
import requests

task_id = "02031634-0696-0111-0000-61c2471b87fc"
url = (
    "https://api.seermartech.cn/v3/keywords_data/google_ads/"
    f"ad_traffic_by_keywords/task_get/{task_id}"
)

headers = {
    "Authorization": "Bearer smt_live_YOUR_KEY",
    "Content-Type": "application/json",
}

response = requests.get(url, headers=headers, timeout=60)
response.raise_for_status()

data = response.json()

if data.get("status_code") == 20000:
    print(data)
else:
    print(
        f"请求失败,状态码:{data.get('status_code')},"
        f"信息:{data.get('status_message')}"
    )

TypeScript

typescript
import axios from "axios";

const taskId = "02231934-2604-0066-2000-570459f04879";

axios
  .get(
    `https://api.seermartech.cn/v3/keywords_data/google_ads/` +
      `ad_traffic_by_keywords/task_get/${taskId}`,
    {
      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
{
  "version": "0.1.20221214",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "06021415-1535-0111-0000-76d1e6dff5bc",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0 sec.",
      "cost": 0,
      "result_count": 1,
      "path": [
        "v3",
        "keywords_data",
        "google_ads",
        "ad_traffic_by_keywords",
        "task_get",
        "06021415-1535-0111-0000-76d1e6dff5bc"
      ],
      "data": {
        "api": "keywords_data",
        "function": "ad_traffic_by_keywords",
        "se": "google_ads",
        "id": "06021415-1535-0111-0000-76d1e6dff5bc",
        "language_code": "en",
        "location_code": 2840,
        "bid": 999,
        "match": "exact",
        "keywords": [
          "seo tools"
        ]
      },
      "result": [
        {
          "keyword": "seo tools",
          "location_code": 2840,
          "language_code": "en",
          "date_interval": "next_month",
          "search_partners": false,
          "bid": 999,
          "match": "exact",
          "impressions": null,
          "ctr": null,
          "average_cpc": 12.35,
          "cost": 1235.0,
          "clicks": 100.0
        }
      ]
    }
  ]
}

状态码处理建议

建议根据顶层 status_code 和任务级别的 tasks[].status_code 分别处理请求异常:

  • 20000:请求或任务处理成功。
  • 任务级状态码异常时,应读取 tasks[].status_message
  • resultnullresult_count0 时,应视为当前任务没有可用结果,并结合状态信息进行重试或排查。
  • 生产环境建议记录任务 ID、状态码、状态信息和请求时间,便于追踪异步任务。

实用场景

  • 评估广告需求:根据预测点击量、平均 CPC 和广告成本筛选高潜力,制定投放预算。
  • 比较不同匹类型:对比 exactphrasebroad 匹结果,确定顾流量规模与成本的匹策略。
  • 制定地区化投放方案:按地区代码查询广告流量,识别不同市场的点击潜力和获客成本。
  • 预测广告系列表现:批量获取整个广告系列的指标,提前估算点击量和预算消耗,支持投放计划评审。
  • 优化 SEO 与付费搜索协同:将广告点击成本与自然搜索数据结合,识别适合通过 SEO 降低长期获客成本的。

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