实时 vs 批量选型指南
SeerMarTech SERP API 提供三种调用模式,选对模式可节省 60–70% 费用。
三种模式对比
| 模式 | 延迟 | 参考价/页 | 适用场景 |
|---|---|---|---|
| Live | 秒级(同步) | ≈ ¥0.032 | 即时查询、< 10 词 |
| Standard Queue | 1–5 分钟 | ≈ ¥0.0096 | 每日批量、100+ 词 |
| Priority Queue | 较快 | ≈ ¥0.0192 | 批量但需更快完成 |
决策流程
需要 SERP 结果?
│
├─ 需要立即返回给用户? ──是──→ Live
│ │
└─ 否(可后台跑) │
│ │
├─ 词数 < 10? ──是──→ Live(简单省事)
│
├─ 词数 10–50? ──→ Priority Queue 或 Live(看预算)
│
└─ 词数 > 50? ──→ Standard Queue(最省)成本对比示例
以 100 个关键词/天 为例:
| 模式 | 单次 cost | 日费用 | 月费用 | vs Live 节省 |
|---|---|---|---|---|
| Live | ≈ ¥0.032 | ≈ ¥3.20 | ≈ ¥96 | — |
| Priority Queue | ≈ ¥0.0192 | ≈ ¥1.92 | ≈ ¥58 | 40% |
| Standard Queue | ≈ ¥0.0096 | ≈ ¥0.96 | ≈ ¥29 | 70% |
Live 模式示例
curl -X POST "https://api.seermartech.cn/v3/serp/google/organic/live/advanced" \
-H "Authorization: Bearer smt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '[{"keyword": "SEO工具", "location_code": 2156, "language_code": "zh"}]'Standard Queue 模式示例
import time
import requests
API_KEY = "smt_live_YOUR_KEY"
BASE = "https://api.seermartech.cn/v3"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
def batch_serp(keywords: list[str]) -> list[dict]:
results = []
for kw in keywords:
# 1. 提交任务
post = requests.post(
f"{BASE}/serp/google/organic/task_post",
headers={**HEADERS, "Content-Type": "application/json"},
json=[{"keyword": kw, "location_code": 2156, "language_code": "zh", "priority": 1}],
timeout=30,
)
task_id = post.json()["tasks"][0]["id"]
# 2. 轮询(可改为异步回调)
for _ in range(30):
get = requests.get(
f"{BASE}/serp/google/organic/task_get/advanced/{task_id}",
headers=HEADERS,
timeout=30,
)
data = get.json()
if data["tasks"][0]["status_code"] == 20000:
results.append(data)
break
time.sleep(10)
return results
# 100 词批量 ≈ ¥0.86(Standard)vs ≈ ¥2.88(Live)
results = batch_serp(["SEO工具", "关键词研究", "外链分析"])TypeScript
async function batchSerp(keywords: string[]) {
const results = [];
for (const keyword of keywords) {
const postResp = await fetch(
"https://api.seermartech.cn/v3/serp/google/organic/task_post",
{
method: "POST",
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify([{ keyword, location_code: 2156, language_code: "zh", priority: 1 }]),
}
);
const taskId = (await postResp.json()).tasks[0].id;
// 生产环境建议用消息队列 + worker 轮询,而非同步等待
results.push(taskId);
}
return results;
}选型建议速查
| 你的场景 | 推荐模式 |
|---|---|
| SaaS 工具内「查排名」按钮 | Live |
| 每日 cron 跑 200 词排名 | Standard Queue |
| 用户提交后 1 分钟内要结果 | Live 或 Priority |
| 一次性导出 1000 词 SERP | Standard Queue |
| 开发调试 / 接口联调 | Sandbox + Live |
批量优化技巧
- 并发提交 Task Post:先批量提交所有 task,再统一轮询,比串行快 5–10 倍
- 失败隔离:单个 task 失败不影响其他,记录
task_id便于重试 - Priority 参数:
priority: 1= Standard,priority: 2= Priority - 非 SERP API:关键词 API、外链 API 仅支持 Live 模式