活动分析

campaign-analytics
分类商业
作者Alireza Rezvani
许可MIT
评分4.30/5
使用6.4K

Campaign Analytics (营销活动分析)

生产级营销活动表现分析工具,支持多触点归因建模、漏斗转化分析和 ROI 计算。提供三个 Python CLI 工具,仅使用标准库即可实现确定性且可重复的分析——无需外部依赖,无需 API 调用,无需机器学习模型。

---

输入要求

所有脚本均接受 JSON 文件作为位置输入参数。完整示例请参阅 assets/sample_campaign_data.json

归因分析器 (Attribution Analyzer)

json
{
  "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)

json
{
  "funnel": {
    "stages": ["Awareness", "Interest", "Consideration", "Intent", "Purchase"],
    "counts": [10000, 5200, 2800, 1400, 420]
  }
}

营销 ROI 计算器 (Campaign ROI Calculator)

json
{
  "campaigns": [
    {
      "name": "Spring Email Campaign",
      "channel": "email",
      "spend": 5000.00,
      "revenue": 25000.00,
      "impressions": 50000,
      "clicks": 2500,
      "leads": 300,
      "customers": 45
    }
  ]
}

输入验证

在运行脚本之前,请验证 JSON 格式是否正确且符合预期架构。常见错误包括:

  • 缺失必要键(例如 journeysfunnel.stagescampaigns) $\rightarrow$ 脚本将以描述性的 KeyError 退出
  • 漏斗数据数组长度不匹配stagescounts 长度必须一致) $\rightarrow$ 抛出 ValueError
  • ROI 数据中包含非数字货币值 $\rightarrow$ 抛出 TypeError

在将文件传递给任何脚本之前,请使用 python -m json.tool your_file.json 验证 JSON 语法。

---

输出格式

所有脚本均通过 --format 标志支持两种输出格式:

  • --format text (默认):可读的表格和摘要,用于人工审查
  • --format json:机器可读的 JSON,用于集成和流水线

---

典型分析工作流

如需进行完整的营销活动审查,请按顺序运行以下三个脚本:

bash
# 步骤 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)

bash
# 运行所有 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)

bash
# 基础漏斗分析
python scripts/funnel_analyzer.py funnel_data.json

输出 JSON 格式

python scripts/funnel_analyzer.py funnel_data.json --format json

活动 ROI 计算 (Campaign ROI Calculation)

bash
# 计算所有活动的 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:用于根据分析结果优化广告支出。