用量与成本控制
合理使用 API 参数、监控余额、选择合适模式,可将 SEO 数据成本控制在预算内。
核心成本杠杆
| 杠杆 | 影响 | 建议 |
|---|---|---|
| Live vs Queue | 最高 70% 差异 | 批量用 Standard Queue |
| depth 参数 | 线性影响页数 | 排名监控设 depth=50 而非 100 |
| Regular vs Advanced | 字段量不同,cost 相近 | 只需排名用 Regular |
| 批量合并 | 减少请求次数 | search_volume 一次 1000 词 |
depth 与计费规则
SERP API 按「页」计费:首页 10 条 = 1 页基础价,每额外 10 条 = 0.75 × 基础价。
| depth | 等价页数 | Live 参考 cost |
|---|---|---|
| 10 | 1 页 | ≈ ¥0.032 |
| 20 | 2 页(1 + 0.75) | ≈ ¥0.056 |
| 50 | 5 页 | ≈ ¥0.128 |
| 100 | 8.5 页 | ≈ ¥0.218 |
建议:排名监控只需找到目标域名位置,设 depth: 50 通常足够;完整 SERP 分析再用 depth: 100。
余额监控
每次 API 响应包含余额相关 Header:
| Header | 说明 |
|---|---|
X-SeerMarTech-Charge-CNY | 本次扣费 |
X-SeerMarTech-Balance-CNY | 扣费后余额 |
X-SeerMarTech-Cost-USD | 上游 cost(USD) |
Python 余额告警
import requests
API_KEY = "smt_live_YOUR_KEY"
ALERT_THRESHOLD = 50.0 # 余额低于 ¥50 告警
def call_with_balance_check(payload: list) -> dict:
resp = requests.post(
"https://api.seermartech.cn/v3/serp/google/organic/live/regular",
headers={"Authorization": f"Bearer {API_KEY}"},
json=payload,
timeout=60,
)
balance = float(resp.headers.get("X-SeerMarTech-Balance-CNY", 0))
charge = float(resp.headers.get("X-SeerMarTech-Charge-CNY", 0))
if balance < ALERT_THRESHOLD:
send_alert(f"余额不足: ¥{balance:.2f},请及时充值")
print(f"charge=¥{charge:.4f}, balance=¥{balance:.2f}")
return resp.json()
def send_alert(message: str):
# 接入钉钉 / 飞书 / 邮件
print(f"[ALERT] {message}")TypeScript
const ALERT_THRESHOLD = 50;
async function callWithBalanceCheck(keyword: string) {
const resp = await fetch(
"https://api.seermartech.cn/v3/serp/google/organic/live/regular",
{
method: "POST",
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify([{ keyword, location_code: 2156, language_code: "zh" }]),
}
);
const balance = parseFloat(resp.headers.get("X-SeerMarTech-Balance-CNY") ?? "0");
if (balance < ALERT_THRESHOLD) {
console.warn(`余额不足: ¥${balance}`);
}
return resp.json();
}余额不足处理
当余额 < 单次预估 cost 时,网关返回:
{
"status_code": 50002,
"status_message": "Insufficient balance"
}HTTP 状态码 402。建议在业务层捕获并重试逻辑中排除此错误(重试无效,需充值)。
Sandbox 测试策略
| 环境 | Key 前缀 | 扣费 | 用途 |
|---|---|---|---|
| 生产 | smt_live_ | 实际扣费 | 正式业务 |
| 沙箱 | smt_sandbox_ | 不计费(如已开通) | 开发联调 |
开发阶段建议:
- 用 Sandbox Key 验证请求格式与响应解析
- 上线前用小批量 Live 请求验证计费
- 控制台 用量 页查看历史 cost 分布
批量任务合并技巧
# 不推荐:100 个词逐个 search_volume
for kw in keywords:
search_volume([kw]) # 100 次请求
# 推荐:每批 1000 词
for i in range(0, len(keywords), 1000):
search_volume(keywords[i:i+1000]) # ceil(n/1000) 次请求月度预算估算模板
| 业务 | 调用量/月 | 模式 | 月费用估算 |
|---|---|---|---|
| 排名监控 100 词/天 | 3000 | Standard Queue | ≈ ¥29 |
| 关键词研究 | 5 次完整流程 | Live | ≈ ¥65 |
| 竞品 SERP 分析 | 50 词 × 1 次 | Live Advanced | ≈ ¥1.6 |
| 外链季度对比 | 9 次/季 | Live | ≈ ¥9 |
| 合计 | — | — | ≈ ¥100–110/月 |
相关文档
- 计费说明
- 价目参考
- 实时 vs 批量选型
- 错误码参考 — 50002 余额不足