ChatGPT 引用是新的有机排名。如果您的域名不在 ChatGPT 提示所引用的 3-5 个 URL 中,则您是不可见的。本教程设置了一个每日引用跟踪器,该跟踪器运行目标提示、提取引用的 URL 并记录一段时间内每个域的引用份额。
前置条件
- Python 3.10+
- Scavio API 密钥
- 用于日志的 SQLite 或 Postgres
- 10-50 个目标提示列表
操作指南
步骤 1: 定义目标提示
提示您的买家可能会询问 ChatGPT。
Python
PROMPTS = [
'best SERP API for AI agents 2026',
'how to replace SerpAPI',
'cheapest google search api'
]步骤 2: 查询 Scavio ChatGPT 端点
Scavio 将提示转发给 ChatGPT 并返回带有结构化引用的答案。
Python
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def ask(prompt):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'chatgpt', 'query': prompt})
return r.json()步骤 3: 摘录引文
Scavio 返回一个引文数组,其中包含每个来源的 url 和标题。
Python
def extract_citations(response):
return [c['url'] for c in response.get('citations', [])]步骤 4: 记录到数据库
每天每次引用每个提示一行。
Python
import sqlite3
conn = sqlite3.connect('citations.db')
conn.execute('CREATE TABLE IF NOT EXISTS citations (date TEXT, prompt TEXT, url TEXT)')
def log_citations(prompt, urls):
for u in urls:
conn.execute('INSERT INTO citations VALUES (date(\'now\'), ?, ?)', (prompt, u))
conn.commit()步骤 5: 计算引用份额
您的域出现的提示百分比。
Python
def share_of_citation(domain):
total = conn.execute('SELECT COUNT(DISTINCT prompt) FROM citations').fetchone()[0]
hits = conn.execute('SELECT COUNT(DISTINCT prompt) FROM citations WHERE url LIKE ?', (f'%{domain}%',)).fetchone()[0]
return hits / total if total else 0Python 示例
Python
import os, requests, sqlite3
API_KEY = os.environ['SCAVIO_API_KEY']
PROMPTS = ['best SERP API for AI agents 2026', 'how to replace SerpAPI']
conn = sqlite3.connect('citations.db')
conn.execute('CREATE TABLE IF NOT EXISTS citations (date TEXT, prompt TEXT, url TEXT)')
for p in PROMPTS:
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'chatgpt', 'query': p})
for c in r.json().get('citations', []):
conn.execute('INSERT INTO citations VALUES (date(\'now\'), ?, ?)', (p, c['url']))
conn.commit()
print('logged')JavaScript 示例
JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const PROMPTS = ['best SERP API for AI agents 2026', 'how to replace SerpAPI'];
for (const p of PROMPTS) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ platform: 'chatgpt', query: p })
});
const data = await r.json();
console.log(p, data.citations?.map(c => c.url));
}预期输出
JSON
Per-prompt citation list. Share-of-citation for your domain across 30 prompts, trended daily. Example: scavio.dev cited in 12/30 prompts = 40% share-of-citation.