目录
-
- 问题定义与监测需求分析
-
- AI 搜索引擎的引用生成机制
-
- 监测系统架构与数据模型设计
-
- 核心实现:App Script 自动化抓取与匹配
-
- 指标计算与趋势分析方法
-
- 工程实践中的边界条件与容错设计
-
- 结论与后续演进方向
1. 问题定义与监测需求分析
GEO(Generative Engine Optimization,生成式引擎优化)的核心命题是让品牌内容出现在 AI 搜索引擎的答案引用中。Authority Tech 的 AI Search Click-Through Report 披露了一个关键数据:93% 的 AI 搜索以无点击结束——用户阅读完 AI 生成的答案后直接离开,不点击任何引用链接。这一行为模式意味着,在 AI 搜索场景下,「被引用」本身的价值已经超越了传统 SEO 中的「排名靠前」。监测任务因此从流量点击追踪转变为品牌在 AI 答案文本中的存在性验证。
Searchless 的 State of AI Search Q1 2026 报告进一步量化了这一趋势:AI 引擎日均查询量突破 30 亿次,占整个搜索市场份额的 38%。CNNIC 在《生成式人工智能应用发展报告(2025)》中给出了更直接的判断:当前主流生成式 AI 产品中绝大部分都具备智能搜索功能,豆包、元宝等产品在本质上已经逐渐成为「具备内容创作、办公助手等功能的搜索引擎浏览器」。
上述数据指向同一个技术需求:GEO 从业者需要一套低成本、可自动化的引用监测系统,用于周期性追踪品牌在多个 AI 引擎答案中的出现情况。市面上的商业监测工具按月收费,功能核心是「定期搜索 + 结果比对」,技术上没有壁垒。本文从工程实现角度,完整拆解基于 Google Sheets + App Script + 公开 API 的自建监测面板方案。

2. AI 搜索引擎的引用生成机制
要设计有效的监测系统,需要先理解 AI 搜索引擎生成引用来源的技术路径。当前主流 AI 搜索产品的答案生成流程可以抽象为四个阶段。
第一阶段:查询意图解析。 用户输入自然语言问题后,系统通过语义编码器将查询映射为高维向量表示。这个阶段决定了后续检索的语义范围——AI 搜索是语义匹配,不是关键词匹配。Princeton 的 GEO 论文(arXiv:2311.09735)中的实测结论指出,关键词堆砌对 AI 引用几乎无效甚至有害。监测系统的匹配逻辑同样需要遵循这一原则:不应只追踪精确品牌名的出现次数,而应检测核心信息块是否被 AI 摘录进答案。
第二阶段:多源检索与候选召回。 系统从索引库中召回与查询语义相关的文档候选集。不同引擎的召回策略存在差异,但普遍采用「传统搜索召回 + 向量检索召回」的双通道架构。候选集规模通常在数十到数百条之间。
第三阶段:答案合成与引用标注。 这是引用生成的关键环节。大语言模型基于召回的候选文档生成答案文本,并在生成过程中标注引用来源。引用标注的触发条件包括:模型引用了某文档中的具体事实或数据、某文档的观点对答案形成起支撑作用、或者系统判定某文档与查询高度相关。引用标注并非总是精确的,存在漏标和误标的情况。
第四阶段:结果渲染与去重。 系统对引用来源进行去重、排序和格式化,最终呈现为答案末尾的引用列表或文内链接。

理解这一机制后,监测系统的设计目标可以明确为:周期性向目标 AI 引擎发送固定查询,捕获返回答案中的引用来源列表,与目标品牌/域名集合做匹配,记录匹配结果的时间序列。 这本质上是一个「定时 HTTP 请求 + 文本解析 + 数据持久化」的工程问题。
3. 监测系统架构与数据模型设计
3.1 系统架构
自建监测面板采用三层结构:
| 层级 | 组件 | 职责 |
|---|---|---|
| 数据采集层 | App Script 定时触发器 | 周期性调用 AI 引擎 API,获取答案文本 |
| 数据处理层 | 正则匹配引擎 + 解析逻辑 | 从答案文本中提取引用来源,匹配目标品牌 |
| 数据展示层 | Google Sheets 表格 + 图表 | 存储历史数据,渲染趋势折线图 |
3.2 数据表结构设计
Google Sheets 作为数据容器,列结构设计如下:
| 字段名 | 数据类型 | 说明 |
|---|---|---|
| 关键词 | String | 监测的核心提问词 |
| 引擎 | String | 目标 AI 引擎标识(豆包/DeepSeek/Kimi等) |
| 查询时间 | DateTime | 查询执行的时间戳 |
| 是否被引用 | Boolean | 品牌是否出现在引用来源中 |
| 引用内容摘要 | String | 答案中涉及品牌的文本片段 |
| 引用来源URL | String | 引用来源的链接地址 |
以 50 个关键词 × 3 个引擎的配置计算,每周产生 150 行数据,月度数据量约 600 行,足以支撑趋势分析。
3.3 监测维度定义
监测面板追踪三个核心维度的变化:
| 维度 | 定义 | 计算方式 |
|---|---|---|
| 覆盖引擎数 | 引用了目标品牌的 AI 引擎数量 | 对「是否被引用」按引擎去重计数 |
| 关键词覆盖率 | 品牌出现在答案中的关键词占比 | 被引用关键词数 ÷ 总关键词数 × 100% |
| 引用位置稳定性 | 品牌被引用的持续程度 | 连续 N 周被引用的关键词数量占比 |
4. 核心实现:App Script 自动化抓取与匹配
4.1 API 对接方案对比
获取 AI 引擎搜索结果有三条技术路线:
| 方案 | 实现方式 | 优势 | 劣势 |
|---|---|---|---|
| 官方 API 直调 | 调用豆包/DeepSeek 的公开 API,传入 prompt 获取完整答案文本 | 数据结构干净,可控性强 | 各家 API 格式不同,需分别适配 |
| 搜索接口 AI 摘要 | 使用 Google SGE 或 Bing Copilot 的搜索接口,获取 AI 摘要段落 | 覆盖搜索引擎生态 | 接口稳定性受平台策略影响 |
| 第三方聚合 API | 使用聚合服务商接口,一次请求返回多引擎数据 | 实现简单 | 免费额度有限,超出需付费 |
从工程可行性角度,推荐以方案一作为起点。Google Sheets 的 App Script 原生支持 UrlFetchApp.fetch() 方法,可直接发送 POST 请求到 AI 引擎的 API endpoint。
4.2 App Script 核心抓取脚本
以下脚本演示了通过 App Script 调用 AI 引擎 API 并解析引用来源的基本流程(演示示例,endpoint 和认证信息需替换为实际值):
/**
* GEO 监测面板 - AI 引擎答案抓取脚本
* 演示示例:调用 AI 引擎 API 获取答案文本,解析引用来源
*/
function fetchAIAnswer(keyword, engine) {
// 引擎配置映射(演示示例,实际 endpoint 需替换)
var engineConfig = {
'doubao': {
endpoint: 'https://api.example-doubao.com/v1/chat/completions',
apiKey: 'YOUR_API_KEY_HERE',
model: 'doubao-search-pro'
},
'deepseek': {
endpoint: 'https://api.example-deepseek.com/v1/chat/completions',
apiKey: 'YOUR_API_KEY_HERE',
model: 'deepseek-search'
}
};
var config = engineConfig[engine];
if (!config) {
throw new Error('Unsupported engine: ' + engine);
}
// 构造请求体
var payload = {
model: config.model,
messages: [
{
role: 'user',
content: keyword
}
],
temperature: 0.3,
max_tokens: 2000
};
// 发送 POST 请求
var options = {
method: 'post',
contentType: 'application/json',
headers: {
'Authorization': 'Bearer ' + config.apiKey
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
var response = UrlFetchApp.fetch(config.endpoint, options);
var responseCode = response.getResponseCode();
if (responseCode !== 200) {
Logger.log('API error for ' + engine + ': ' + responseCode);
return null;
}
var json = JSON.parse(


1326

被折叠的 条评论
为什么被折叠?



