AEO Analytics (Free)
Source: github.com/psyduckler/aeo-skills
Part of: AEO Skills Suite — Prompt Research → Content → Analytics
Track whether AI assistants mention and cite your brand — and how that changes over time.
Requirements
- - Primary: Gemini API key (free from aistudio.google.com) — enables grounding with source data
- Fallback:
web_search only — weaker signal but zero API keys needed - INLINECODE1 — optional, for deeper analysis of cited pages
Input
- - Domain (required) — the brand's website (e.g.,
tabiji.ai) - Brand names (required) — names to search for in responses (e.g.,
["tabiji", "tabiji.ai"]) - Prompts (required for first scan) — list of target prompts to track. Can come from
aeo-prompt-research-free output. - Data file path (optional) — where to store scan history. Default: INLINECODE5
Commands
The skill supports three commands:
scan — Run a new visibility scan
Execute all tracked prompts against the AI model and record results.
report — Generate a visibility report
Analyze accumulated scan data and produce a formatted report.
add-prompts / remove-prompts — Manage tracked prompts
Add or remove prompts from the tracking list.
Scan Workflow
Step 1: Load or Initialize Data
Check if a data file exists for this domain. If yes, load it. If no, create a new one.
See references/data-schema.md for the full JSON schema.
Step 2: Run Prompts
For each tracked prompt:
Method A — Gemini API with grounding (preferred):
See references/gemini-grounding.md for API details.
- 1. Send prompt to Gemini API with
googleSearch tool enabled - From the response, extract:
-
Response text — the AI's answer
-
Grounding chunks — the web sources cited (URLs + titles)
-
Web search queries — what the AI searched for
- 3. Analyze the response:
-
Mentioned? — Search response text for brand names (case-insensitive, word-boundary match)
-
Mention excerpt — Extract the sentence(s) containing the brand name
-
Cited? — Check if brand's domain appears in any grounding chunk URI
-
Cited URLs — List the specific brand URLs cited
-
Sentiment — Classify the mention context as positive/neutral/negative
-
Competitors — Extract other brand names and domains from response + citations
Method B — Web search fallback (if no Gemini API key):
- 1.
web_search the exact prompt text - Check if brand's domain appears in search results
- Record as "web-proxy" method (less direct than grounding)
Step 3: Save Results
Append the scan results to the data file. Never overwrite previous scans — history is the whole point.
Step 4: Quick Summary
After scanning, output a brief summary:
- - Prompts scanned
- Current mention rate and citation rate
- Change vs. last scan (if applicable)
- Any notable changes (new mentions, lost citations)
Report Workflow
Per-Prompt Detail
For each tracked prompt, show:
CODEBLOCK0
If mentioned in latest scan, include the mention excerpt.
If not mentioned, note which sources were cited instead and rate the opportunity (HIGH/MEDIUM/LOW).
Summary Section
CODEBLOCK1
Recommendations Logic
- - High opportunity: Prompt has 0% mention rate + no strong owner in citations → create content
- Close to winning: Prompt has mentions but no citations → refresh content for citation-worthiness
- Volatile: Mention rate between 20-60% → content exists but needs strengthening
- Won: Mention rate >80% + citation rate >50% → maintain, monitor for decay
Data Management
- - Data file location: INLINECODE14
- Schema: see INLINECODE15
- Each scan appends to the
scans array — never delete history - Prompts can be added/removed without affecting historical data
- When adding new prompts, they start with 0 scans (no backfill)
Tips
- - Run scans at consistent intervals (weekly or biweekly) for meaningful trend data
- After publishing new AEO content, wait 2-4 weeks for indexing before expecting changes
- Gemini's grounding results can vary run-to-run — that's normal. Aggregate data over multiple scans is more reliable than any single result
- Track 10-20 prompts max for a focused view. Too many dilutes the signal
- This skill completes the AEO loop: Research (aeo-prompt-research-free) → Create/Refresh (aeo-content-free) → Measure (this skill) → repeat
AEO 分析(免费版)
来源: github.com/psyduckler/aeo-skills
所属: AEO 技能套件 — 提示词研究 → 内容 → 分析
追踪 AI 助手是否提及并引用你的品牌——以及这种变化如何随时间演变。
要求
- - 主要: Gemini API 密钥(从 aistudio.google.com 免费获取)——支持基于源数据的接地
- 备用: 仅 websearch——信号较弱,但无需任何 API 密钥
- webfetch——可选,用于对引用页面进行更深入分析
输入
- - 域名(必需)——品牌的网站(例如 tabiji.ai)
- 品牌名称(必需)——在回复中搜索的名称(例如 [tabiji, tabiji.ai])
- 提示词(首次扫描必需)——要追踪的目标提示词列表。可来自 aeo-prompt-research-free 的输出。
- 数据文件路径(可选)——扫描历史记录的存储位置。默认:aeo-analytics/.json
命令
该技能支持三个命令:
scan — 运行新的可见性扫描
针对 AI 模型执行所有追踪的提示词并记录结果。
report — 生成可见性报告
分析累积的扫描数据并生成格式化报告。
add-prompts / remove-prompts — 管理追踪的提示词
从追踪列表中添加或移除提示词。
扫描工作流程
第 1 步:加载或初始化数据
检查该域名是否存在数据文件。如果存在,则加载。如果不存在,则创建新文件。
完整 JSON 模式请参见 references/data-schema.md。
第 2 步:运行提示词
对于每个追踪的提示词:
方法 A — 使用接地的 Gemini API(推荐):
API 详情请参见 references/gemini-grounding.md。
- 1. 向 Gemini API 发送提示词,启用 googleSearch 工具
- 从回复中提取:
-
回复文本 — AI 的回答
-
接地块 — 引用的网络来源(URL + 标题)
-
网络搜索查询 — AI 搜索的内容
- 3. 分析回复:
-
是否提及? — 在回复文本中搜索品牌名称(不区分大小写,单词边界匹配)
-
提及摘录 — 提取包含品牌名称的句子
-
是否引用? — 检查品牌域名是否出现在任何接地块 URI 中
-
引用 URL — 列出引用的具体品牌 URL
-
情感倾向 — 将提及上下文分类为正面/中性/负面
-
竞争对手 — 从回复和引用中提取其他品牌名称和域名
方法 B — 网络搜索备用(如果没有 Gemini API 密钥):
- 1. 对确切的提示词文本进行 web_search
- 检查品牌域名是否出现在搜索结果中
- 记录为web-proxy方法(不如接地直接)
第 3 步:保存结果
将扫描结果追加到数据文件中。切勿覆盖之前的扫描——历史记录才是关键。
第 4 步:快速摘要
扫描后,输出简要摘要:
- - 已扫描的提示词
- 当前提及率和引用率
- 与上次扫描相比的变化(如适用)
- 任何显著变化(新提及、丢失的引用)
报告工作流程
每个提示词的详细信息
对于每个追踪的提示词,显示:
- 1. [提示词文本]
扫描次数:[总数](自[首次扫描日期]起)
提及次数:[次数]/[总数]([百分比])— [趋势箭头] [趋势描述]
引用次数:[次数]/[总数]([百分比])
最新:[✅/❌ 已提及] + [✅/❌ 已引用]
情感倾向:[正面/中性/负面]
提及的竞争对手:[列表]
如果在最新扫描中被提及,则包含提及摘录。
如果未被提及,则注明引用了哪些来源,并评估机会等级(高/中/低)。
摘要部分
可见性评分
品牌提及:[X]/[总数] 个提示词([百分比])在最新扫描中
品牌引用:[X]/[总数] 个提示词([百分比])在最新扫描中
趋势(最近 [N] 天,[N] 次扫描)
提及率:[百分比] → [趋势]
引用率:[百分比] → [趋势]
改善最大:[提示词]([旧比率] → [新比率])
波动最大:[提示词](在 [X]/[N] 次扫描中被提及)
持续缺席:[从未被提及的提示词列表]
竞争对手声量占比
[竞争对手 1] — 在 [X]/[总数] 个提示词中被提及
[竞争对手 2] — 在 [X]/[总数] 个提示词中被提及
[品牌] — 在 [X]/[总数] 个提示词中被提及
下一步行动
→ [基于差距和趋势的优先推荐]
推荐逻辑
- - 高机会: 提示词提及率为 0% + 引用中无强势占有者 → 创建内容
- 接近成功: 提示词有提及但无引用 → 刷新内容以提升引用价值
- 波动: 提及率在 20-60% 之间 → 内容存在但需要加强
- 已获胜: 提及率 >80% + 引用率 >50% → 维持,监控衰退
数据管理
- - 数据文件位置:aeo-analytics/.json
- 模式:参见 references/data-schema.md
- 每次扫描追加到 scans 数组——绝不删除历史记录
- 提示词可以添加/移除,不影响历史数据
- 添加新提示词时,它们从 0 次扫描开始(不回溯填充)
提示
- - 以一致的时间间隔(每周或每两周)运行扫描,以获得有意义的趋势数据
- 发布新的 AEO 内容后,等待 2-4 周让搜索引擎索引,再预期变化
- Gemini 的接地结果可能因运行而异——这很正常。多次扫描的聚合数据比任何单次结果更可靠
- 最多追踪 10-20 个提示词以获得聚焦的视图。太多会稀释信号
- 该技能完成 AEO 循环:研究(aeo-prompt-research-free)→ 创建/刷新(aeo-content-free)→ 衡量(本技能)→ 重复