创建 Amplitude 图表
通过自然语言发现事件、构建图表定义并验证结果来创建图表。
先规划(关键)
在调用任何工具之前,分解请求:
1. 识别图表组件:
- 图表类型和指标(正在衡量什么)
- 时间范围(默认:最近 30 天,如未指定)
- 主要事件(被计数的操作)
- 细分条件(用户筛选器/分组)
- 筛选器、分组、细分维度
- 漏斗步骤(如果是转化分析)
2. 规划事件搜索:
- 每个不同的事件概念进行一次搜索
- 绝不要在一次搜索中组合多个概念
- 示例:“购买”和“注册”需要分开搜索
3. 规划并行工具调用:
- 获取上下文、搜索事件、查找群体可以同时运行
- 在构建定义之前等待结果
事件发现(关键:先发现)
重要:先广泛撒网,再缩小范围
当用户的请求模糊不清或可能映射到多个事件时:
- 首先广泛搜索以发现相关选项
- 审查相关结果——寻找相关事件、自定义事件、元事件
- 向用户展示选项或解释您的选择依据
- 尽量不要在没有探索的情况下假设单个事件是唯一答案
搜索事件:
Amplitude:search with entity_types=['EVENT', 'CUSTOM_EVENT']
- 一次搜索一个概念
- 首先使用宽泛的搜索词(例如,搜索“AI”而不是仅“AI 聊天”)
- ✓ 好的:“用户完成购买”
- ✗ 坏的:“注册或购买事件”
做出明智的决定,然后解释:
- 广泛搜索以发现所有选项
- 审查结果并确定最全面/最准确的方法
- 做出您的最佳判断(优先选择聚合的自定义事件而非单个事件)
- 始终解释:“我找到了 X、Y、Z 选项。我选择了 [X],因为 [原因]。这包括/排除了 [范围]。”
- 如果您的假设错误,用户可以更正
决策标准:
- 优先选择聚合相关活动的自定义事件(例如,“[2026] 激活指标 [仅 AI 事件]”)
- 如果没有聚合事件,则选择主要交互事件
- 考虑该产品领域中“活跃用户”的通常含义
- 除非用户指定了窄范围,否则默认使用更广泛的范围
示例:
- ❌ 不好的:用户询问“每周 AI 用户” → 立即选择“ai-chat: 发送消息”,不进行探索,没有解释
- ✅ 好的:用户询问“每周 AI 用户” → 搜索“AI”,找到 Ask AI、Agents、Visibility、自定义聚合事件。回应:“我找到了涵盖 Ask AI、Agents 和 Visibility 的 AI 活动。我正在使用聚合所有 AI 产品交互的 '[2026] 激活指标 [仅 AI 事件]' 自定义事件。这为您提供了跨所有功能的 AI 用户总数。如果您想专注于特定的 AI 产品,请告诉我。”
使用前验证:
- 通过搜索获取使用该事件的现有图表
- 检查事件是否有实际数据量(不为零/不陈旧)
- 寻找聚合相关活动的自定义事件
- 如果结果为零,则搜索替代方案
获取属性:
Amplitude:get_event_properties 获取精确的属性名称/值
查找群体:
Amplitude:search with entity_types=['COHORT']
Amplitude:get_cohorts 获取完整定义
图表类型选择
| 图表类型 | 使用场景 |
|---|---|
eventsSegmentation | 计算事件/用户随时间变化、趋势、比较、关键绩效指标、分布、属性分析 |
funnels | 具有已知序列的多步骤转化分析、流失分析、特定事件之间的时间、转化时间指标 |
retention | 用户回访行为、群组留存曲线、流失分析 |
dataTableV2 | 表格比较、排名、多维细分 |
customerJourney | 路径探索、发现用户采用的未知路径、比较转化与流失路径 |
sessions | 会话时长、会话频率、每位用户花费时间、会话时长分布 |
快速参考
eventsSegmentation - 最通用。用于:
- 用户计数(日活跃用户、周活跃用户、月活跃用户),使用
uniques指标 - 事件总数、平均值、属性总和
- 百分位数、分布、公式
- 带有滚动窗口的时间序列
聚合范围 (eventsSegmentation):
PROPSUM(A)/metric: "sums"= 所有事件的全局总和metric: "frequency"= 每位用户事件计数的分布(多少用户执行了 1 次、2 次、3 次)- 对于“每位用户属性总和的分布”:Amplitude 不直接支持。使用
metric: "frequency"进行事件计数分布,或使用按 user_id 分组并带 PROPSUM 的 dataTableV2,然后导出进行外部分析。
funnels - 具有预定义步骤的转化分析。用于:
- 当您了解预期序列时的逐步转化率
- 有序或无序序列
- 转化时间(事件之间的中位时间)
- 排除事件、转化窗口
- 重叠事件:要查找执行了多个事件(任何顺序)的用户,使用“任何顺序”的漏斗,并将转化窗口设置为匹配图表日期范围
- 注意:如果您想发现用户采用的路径,请改用
customerJourney
retention - 回访行为。用于:
- N 天或滚动留存曲线
- 群组分析(新用户 vs 回访用户)
- 开始事件 → 回访事件模式
dataTableV2 - 表格数据。用于:
- 按维度细分(国家、平台等)
- 表格格式的多指标比较
customerJourney - 路径探索和发现。用于:
- 理解用户实际采用的路径(与漏斗中的预期路径相对)
- 分析以特定事件开始、结束或在两个特定事件之间的路径
- 并排比较转化与流失的用户路径
- 发现意外的导航模式或摩擦点
- 探索路径频率、相似性或平均完成时间
- 弥合理想客户旅程与实际用户行为之间的差距
sessions - 基于会话的参与度指标。用于:
- 会话时长分析(平均时长、花费时间、分布)
- 会话频率(每位用户的平均会话数、总会话数)
- 每位用户随时间花费的时间
- 会话内执行的事件(每次会话的平均事件数)
- 比较不同用户分段的会话行为
特殊指标:
- 用户计数:
metric: "uniques" - 事件计数:
metric: "totals" - 属性总和:
metric: "sums"并在group_by中指定属性 - 比率/百分比:比较不同规模的组时使用
元事件:
_active:任何活跃事件(日活跃用户、月活跃用户)_new:新用户(首次事件)_any_revenue_event:收入事件
图表定义结构
核心参数(所有图表类型):
{
"name": "描述性图表标题",
"projectId": "12345",
"definition": {
"app": "12345",
"type": "eventsSegmentation",
"params": {
"range": "Last 30 Days",
"events": [{
"event_type": "Purchase Completed",
"filters": [],
"group_by": []
}],
"metric": "uniques",
"countGroup": "User",
"interval": 1,
"segments": [{"conditions": []}]
}
}
}
关键参数:
countGroup:“User”(唯一用户)或“Event”(事件发生次数)interval:1(每日)、7(每周)、30(每月)segments:用户筛选器/分组(空数组 = 所有用户)
事件筛选器(内联 OR 逻辑):
"filters": [{
"group_type": "User",
"subprop_key": "country",
"subprop_op": "is",
"subprop_type": "event",
"subprop_value": ["United States", "Canada"]
}]
用户分段(条件 AND 逻辑):
"segments": [{
"name": "Active Users",
"conditions": [{
"type": "property",
"group_type": "User",
"prop_type": "user",
"prop": "plan",
"op": "is",
"values": ["Pro", "Enterprise"]
}]
}]
群体分段: 搜索群体,获取 ID,然后:
"segments": [{
"name": "My Cohort",
"conditions": [{
"type": "cohort",
"group_type": "User",
"cohort_id": "abc123",
"op": "is_in"
}]
}]
工作流程:创建图表
- 获取上下文:
Amplitude:get_context (获取 projectId)
- 发现事件(首先广泛搜索):
Amplitude:search 针对每个不同的概念
- 最初使用宽泛的搜索词
- 查找所有相关事件、自定义事件、群体
- 在选取之前审查**所有**结果
- 评估并决定:
- 审查所有发现的事件和自定义事件
- 做出明智的决定(优先选择聚合事件)
- 准备清晰解释您发现的内容以及您的选择
- 查找相似图表(查看示例):
Amplitude:search entity_types=['CHART'] query="相似概念"
Amplitude:get_charts 查看定义结构
- 根据需要获取属性:
Amplitude:get_event_properties
- 构建定义,使用发现的事件名称
- 在响应中解释事件选择依据
- 创建图表:
Amplitude:query_dataset 带有完整定义
-
验证结果 - 检查数据是否合理
-
保存图表:
Amplitude:save_chart_edits 带有来自 query_dataset 的 editId
错误处理
如果 query_dataset 失败:
- 仔细阅读错误消息
- 常见问题:事件名称不正确、筛选器无效、参数类型错误
- 修复定义并重试
- 首先通过搜索验证事件是否存在
如果结果为零:
- 检查筛选器是否限制过多
- 验证事件是否有数据(搜索使用它的图表)
- 尝试更广泛的时间范围
- 检查分段条件
最佳实践
命名:
- 包含指标 + 时间上下文:“最近 90 天的周活跃用户”
- 不要用:“WAU”或“Users”
时间范围:
- 默认使用“最近 30 天”
- 对于特定时间段使用包含性范围
- 明确说明解释的时间范围
验证:
- 使用前务必验证事件是否存在
- 检查相似图表以了解事件使用情况
- 使用 get_event_properties 确认属性
比较:
- 使用分段在同一图表上比较用户组
- 对不同规模的组使用比率/百分比
始终包含:
- 响应中的图表 URL
- 图表显示的内容
- 来自初始数据的关键见解
- 使用的方法论