Skip to content

获取 Google Shopping 卖家广告 URL

本接口使用 GET 方法,通过以下路径获取 Google Shopping 卖家广告的完整 URL:

GET https://api.seermartech.cn/v3/merchant/google/sellers/ad_url/$shop_ad_aclk

接口返回广告的最终 URL,以及从 Google Shopping 跳转至卖家页面期间经过的重定向 URL。

计费说明

本接口按请求计费。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

请求参数

shop_ad_aclk 是广告点击跟踪参数,可从以下接口的结果中获取:

  • Google Shopping 商品接口:/v3/merchant/google/products/task_post/
  • Google Shopping 卖家接口:/v3/merchant/google/sellers/task_post/
参数类型说明
shop_ad_aclkstring唯一的广告点击引用参数,作为 URL 路径参数传

> 如果参数中特殊字符(例如 &),建议进行 URL 编码。

响应说明

接口返回 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当前 GET 请求的 URL 路径
dataobject当前请求使用的参数及接口信息
resultarray任务结果数组

result 字段

字段类型说明
ad_aclkstring唯一的广告点击引用参数
ad_urlstring广告的完整 URL
ad_url_redirectsarray从 Google Shopping 广告链接跳转到最终广告 URL 前经过的 URL 列表,最多 10 个重定向地址

> 建议客户端根据顶层 status_code、任务级 status_codestatus_message 实现异常处理。完整状态码请参考错误码文档。

请求示例

cURL

bash
curl --location --request GET \
  "https://api.seermartech.cn/v3/merchant/google/sellers/ad_url/DChcSEwiSl5TKpbPoAhVFmdUKHfa_B_wYABADGgJ3cw%26sig" \
  --header "Authorization: Bearer smt_live_YOUR_KEY" \
  --header "Content-Type: application/json"

PHP

php
<?php

$apiUrl = 'https://api.seermartech.cn/';

$ch = curl_init(
    $apiUrl . 'v3/merchant/google/sellers/ad_url/' .
    rawurlencode('DChcSEwiSl5TKpbPoAhVFmdUKHfa_B_wYABADGgJ3cw&sig')
);

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer smt_live_YOUR_KEY',
        'Content-Type: application/json',
    ],
]);

$response = curl_exec($ch);

if ($response === false) {
    echo '请求失败:' . curl_error($ch);
} else {
    $result = json_decode($response, true);
    print_r($result);
}

curl_close($ch);

JavaScript / TypeScript

typescript
import axios from 'axios';

const adAclk =
  'DChcSEwj2qKzGv_rrAhWXIK0GHbB0BQEYABAHGgJwdg';

axios.get(
  'https://api.seermartech.cn/v3/merchant/google/sellers/ad_url/' +
    encodeURIComponent(adAclk),
  {
    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);
  });

Python

python
import requests

ad_aclk = "DChcSEwiSl5TKpbPoAhVFmdUKHfa_B_wYABADGgJ3cw&sig"

url = (
    "https://api.seermartech.cn/v3/merchant/google/sellers/ad_url/"
    + requests.utils.quote(ad_aclk, safe="")
)

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

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

result = response.json()

if result.get("status_code") == 20000:
    print(result)
else:
    print(
        "请求失败,状态码:%s,说明:%s"
        % (result.get("status_code"), result.get("status_message"))
    )

C#

csharp
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

public static class MerchantGoogleSellersDemo
{
    public static async Task GetAdUrlAsync()
    {
        using var httpClient = new HttpClient();

        httpClient.DefaultRequestHeaders.Authorization =
            new AuthenticationHeaderValue("Bearer", "smt_live_YOUR_KEY");

        string adAclk =
            "DChcSEwiSl5TKpbPoAhVFmdUKHfa_B_wYABADGgJ3cw&sig";

        string encodedAdAclk = Uri.EscapeDataString(adAclk);

        string url =
            "https://api.seermartech.cn/v3/merchant/google/sellers/ad_url/"
            + encodedAdAclk;

        HttpResponseMessage response = await httpClient.GetAsync(url);
        string responseBody = await response.Content.ReadAsStringAsync();

        if (response.IsSuccessStatusCode)
        {
            Console.WriteLine(responseBody);
        }
        else
        {
            Console.WriteLine(
                $"请求失败。HTTP 状态码:{(int)response.StatusCode},响应:{responseBody}"
            );
        }
    }
}

响应示例

json
{
  "version": "0.1.20200923",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.6697 sec.",
  "cost": 1.0e-6,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "09061525-2806-0474-0000-2f1f2f7b4d4a",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.5312 sec.",
      "cost": 1.0e-6,
      "result_count": 1,
      "path": [
        "v3",
        "merchant",
        "google",
        "sellers",
        "ad_url",
        "DChcSEwj2qKzGv_rrAhWXIK0GHbB0BQEYABAHGgJwdg"
      ],
      "data": {
        "api": "merchant",
        "function": "sellers",
        "se": "google",
        "ad_aclk": "DChcSEwj2qKzGv_rrAhWXIK0GHbB0BQEYABAHGgJwdg"
      },
      "result": [
        {
          "ad_aclk": "DChcSEwj2qKzGv_rrAhWXIK0GHbB0BQEYABAHGgJwdg",
          "ad_url": "https://www.example.com/product/example",
          "ad_url_redirects": [
            "https://www.google.com/...",
            "https://www.example.com/redirect"
          ]
        }
      ]
    }
  ]
}

实用场景

  • 解析广告最终落地页,获取卖家广告的完整 URL,用于落地页归因和投放质量检查。
  • 追踪广告跳转链路,分析 Google Shopping 到卖家网站之间的重定向过程,定位跳转异常或落地页劫持问题。
  • 校验商品广告链接,批量检查广告是否能够正常到达商品页,降低无效点击和转化损失。
  • 归档广告落地地址,结合商品和卖家数据建立广告 URL 数据库,支持竞品监测与历史链接追踪。
  • 识别第三方跟踪参数,分析广告 URL 中的渠道、点击和归因参数,为 SEO 与付费搜索数据分析提供依据。

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