主题
获取 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_aclk | string | 唯一的广告点击引用参数,作为 URL 路径参数传 |
> 如果参数中特殊字符(例如 &),建议进行 URL 编码。
响应说明
接口返回 JSON 数据 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码 |
status_message | string | 通用状态说明 |
time | string | 请求执行耗时,单位为秒 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
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 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量 |
path | array | 当前 GET 请求的 URL 路径 |
data | object | 当前请求使用的参数及接口信息 |
result | array | 任务结果数组 |
result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
ad_aclk | string | 唯一的广告点击引用参数 |
ad_url | string | 广告的完整 URL |
ad_url_redirects | array | 从 Google Shopping 广告链接跳转到最终广告 URL 前经过的 URL 列表,最多 10 个重定向地址 |
> 建议客户端根据顶层 status_code、任务级 status_code 和 status_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 与付费搜索数据分析提供依据。