活动分析
Campaign Analytics (营销活动分析)
生产级营销活动表现分析工具,支持多触点归因建模、漏斗转化分析和 ROI 计算。提供三个 Python CLI 工具,仅使用标准库即可实现确定性且可重复的分析——无需外部依赖,无需 API 调用,无需机器学习模型。
---
输入要求
所有脚本均接受 JSON 文件作为位置输入参数。完整示例请参阅 assets/sample_campaign_data.json。
归因分析器 (Attribution Analyzer)
{
"journeys": [
{
"journey_id": "j1",
"touchpoints": [
{"channel": "organic_search", "timestamp": "2025-10-01T10:00:00", "interaction": "click"},
{"channel": "email", "timestamp": "2025-10-05T14:30:00", "interaction": "open"},
{"channel": "paid_search", "timestamp": "2025-10-08T09:15:00", "interaction": "click"}
],
"converted": true,
"revenue": 500.00
}
]
}漏斗分析器 (Funnel Analyzer)
{
"funnel": {
"stages": ["Awareness", "Interest", "Consideration", "Intent", "Purchase"],
"counts": [10000, 5200, 2800, 1400, 420]
}
}营销 ROI 计算器 (Campaign ROI Calculator)
{
"campaigns": [
{
"name": "Spring Email Campaign",
"channel": "email",
"spend": 5000.00,
"revenue": 25000.00,
"impressions": 50000,
"clicks": 2500,
"leads": 300,
"customers": 45
}
]
}输入验证
在运行脚本之前,请验证 JSON 格式是否正确且符合预期架构。常见错误包括:
- 缺失必要键(例如
journeys、funnel.stages、campaigns) $\rightarrow$ 脚本将以描述性的KeyError退出
- 漏斗数据数组长度不匹配(
stages和counts长度必须一致) $\rightarrow$ 抛出ValueError
- ROI 数据中包含非数字货币值 $\rightarrow$ 抛出
TypeError
在将文件传递给任何脚本之前,请使用 python -m json.tool your_file.json 验证 JSON 语法。
---
输出格式
所有脚本均通过 --format 标志支持两种输出格式:
--format text(默认):可读的表格和摘要,用于人工审查
--format json:机器可读的 JSON,用于集成和流水线
---
典型分析工作流
如需进行完整的营销活动审查,请按顺序运行以下三个脚本:
# 步骤 1 — 归因分析:了解哪些渠道驱动了转化
python scripts/attribution_analyzer.py campaign_data.json --model time-decay
步骤 2 — 漏斗分析:识别潜在客户在转化路径中的流失环节
python scripts/funnel_analyzer.py funnel_data.json
步骤 3 — ROI 计算:计算盈利能力并对照行业标准进行基准分析
python scripts/campaign_roi_calculator.py campaign_data.json利用归因结果识别表现最佳的渠道,随后将漏斗分析集中在这些渠道的细分群体上,最后通过验证 ROI 指标来确定优先级。
预算重新分配。
---
使用方法
归因分析 (Attribution Analysis)
# 运行所有 5 种归因模型
python scripts/attribution_analyzer.py campaign_data.json
运行特定模型
python scripts/attribution_analyzer.py campaign_data.json --model time-decay
输出 JSON 格式以用于流水线集成
python scripts/attribution_analyzer.py campaign_data.json --format json
自定义时间衰减半衰期(默认:7 天)
python scripts/attribution_analyzer.py campaign_data.json --model time-decay --half-life 14漏斗分析 (Funnel Analysis)
# 基础漏斗分析
python scripts/funnel_analyzer.py funnel_data.json
输出 JSON 格式
python scripts/funnel_analyzer.py funnel_data.json --format json活动 ROI 计算 (Campaign ROI Calculation)
# 计算所有活动的 ROI 指标
python scripts/campaign_roi_calculator.py campaign_data.json
输出 JSON 格式
python scripts/campaign_roi_calculator.py campaign_data.json --format json---
脚本说明
1. attribution_analyzer.py
实现了五种行业标准的归因模型,用于在营销渠道之间分配转化权重:
| 模型 | 描述 | 适用场景 |
|-------|-------------|----------|
| 首次触点 (First-Touch) | 100% 权重归于首次交互 | 品牌知名度活动 |
| 末次触点 (Last-Touch) | 100% 权重归于最后一次交互 | 直接响应活动 |
| 线性归因 (Linear) | 所有触点平分权重 | 平衡的多渠道评估 |
| 时间衰减 (Time-Decay) | 越近的触点权重越高 | 短销售周期 |
| 基于位置 (Position-Based) | 40/20/40 分配(首次/中间/末次) | 全漏斗营销 |
2. funnel_analyzer.py
分析转化漏斗以识别瓶颈和优化机会:
- 阶段间的转化率和流失率
- 自动识别瓶颈(绝对值和相对值下降最剧烈处)
- 整体漏斗转化率
- 支持多细分群体时的对比分析
3. campaign_roi_calculator.py
计算综合 ROI 指标并进行行业基准对比:
- ROI: 投资回报率百分比
- ROAS: 广告支出回报率
- CPA: 每获客成本
- CPL: 每线索成本
- CAC: 客户获取成本
- CTR: 点击率
- CVR: 转化率(线索到客户)
- 根据行业基准标记表现不佳的活动
---
参考指南
| 指南 | 位置 | 目的 |
|-------|----------|---------|
| 归因模型指南 | references/attribution-models-guide.md | 深入探讨 5 种模型的公式、优缺点及选择标准 |
| 活动指标基准 | references/campaign-metrics-benchmarks.md | 按渠道和垂直行业划分的 CTR, CPC, CPM, CPA, ROAS 基准 |
| 漏斗优化框架 | references/funnel-optimization-framework.md | 分阶段优化策略、常见瓶颈及最佳实践 |
---
最佳实践
1. 使用多种归因模型 —— 对比至少 3 种模型以交叉验证渠道价值;没有任何单一模型能反映全貌。
2. 设置合适的回溯窗口 —— 将时间衰减的半衰期与您的平均销售周期长度相匹配。
3. 对漏斗进行细分 —— 对比不同细分群体(渠道、人群组、地理位置)以识别性能驱动因素。
4. 优先对比自身历史数据 —— 行业基准提供参考,但历史数据是最相关的对比标准。
5. 定期运行 ROI 分析 —— 活跃活动每周分析一次,战略回顾每月一次。
6.
计入所有成本 —— 将创意、工具和人力成本与媒体支出一并计算,以获得准确的 ROI。
7. 严格记录 A/B 测试 —— 使用提供的模板,确保统计有效性和清晰的决策标准。
---
局限性
- 无统计显著性检验 —— 脚本仅提供描述性指标;p 值计算需使用外部工具。
- 仅限标准库 —— 未使用高级统计库。适用于大多数规模的活动,但未针对超过 10 万条旅程的数据集进行优化。
- 离线分析 —— 脚本分析静态 JSON 快照;不支持实时数据连接或 API 集成。
- 单一货币 —— 假设所有货币数值均为同一币种;不支持货币转换。
- 简化时间衰减 —— 基于可配置半衰期的指数衰减;不考虑工作日/周末或季节性模式。
- 无跨设备追踪 —— 归因基于提供的旅程数据直接运行;跨设备身份识别必须在前端处理。
相关技能
- analytics-tracking:用于设置追踪。并非用于分析数据(那是本技能的功能)。
- ab-test-setup:用于设计实验,以验证分析得出的结论。
- marketing-ops:用于将洞察结果引导至相应的执行技能。
- paid-ads:用于根据分析结果优化广告支出。