好多朋友问我怎么用Mixpanel和Amplitude追踪用户行为。今天就来手把手来教一下。

一、为啥要用这玩意儿?(别说GA4够用了)

说实话,我一开始也觉得Google Analytics够用了,直到我发现:

GA4告诉你的

  • 今天来了多少人
  • 他们从哪来的
  • 停留了多久

Mixpanel/Amplitude告诉你的

  • 用户注册后第一个点击的是啥功能
  • 哪些功能用了会续费,哪些用了就流失
  • 为啥80%的人注册后就跑了
  • 付费用户和免费用户的行为差异

简单说:GA4看流量,Mixpanel/Amplitude看人。

二、选Mixpanel还是Amplitude?(我两个都用过)

在这里插入图片描述

Mixpanel - 我现在在用的

优点

  • 界面直观,上手快
  • 漏斗分析特别好用
  • 免费版每月100万事件(个人开发者够用)
  • 实时数据,基本秒出

缺点

  • 高级功能要付费
  • 数据导出有限制

适合:SaaS、工具类产品、注重转化漏斗的应用

Amplitude - 功能更强大

优点

  • 免费版每月1000万事件(超大方)
  • 留存分析做得特别细
  • 用户路径分析很强
  • 可以做复杂的用户分群

缺点

  • 学习曲线陡一点
  • 界面没Mixpanel直观
  • 有时候查询慢一点

适合:用户量大、需要深度分析的产品

我的建议

  • 刚起步 → Mixpanel(简单直接)
  • 用户破万 → 可以考虑Amplitude(免费额度更大)
  • 预算充足 → Mixpanel付费版体验更好

三、Mixpanel 快速上手(30分钟搞定)

第1步:注册和安装

注册账号
去 mixpanel.com 注册,选Free Plan就行。

获取Project Token

  • 进入项目设置
  • 找到Project Token(一串字符)
  • 复制保存好

第2步:集成到你的应用

我以Next.js为例(其他框架类似):

安装SDK

npm install mixpanel-browser

初始化代码

// lib/mixpanel.js
import mixpanel from 'mixpanel-browser';

// 初始化(放在_app.js或layout.js)
mixpanel.init('你的PROJECT_TOKEN', {
  debug: true, // 开发时打开,能看到发送的事件
  track_pageview: true, // 自动追踪页面浏览
  persistence: 'localStorage' // 数据存储方式
});

export default mixpanel;

在组件中使用

import mixpanel from '@/lib/mixpanel';

// 追踪事件
const handleButtonClick = () => {
  mixpanel.track('Button Clicked', {
    button_name: 'Generate Image',
    page: 'Dashboard'
  });
  
  // 你的业务逻辑
  generateImage();
};

第3步:设置用户身份

用户注册时

// 注册成功后
mixpanel.identify(user.id); // 用户唯一ID

mixpanel.people.set({
  '$email': user.email,
  '$name': user.name,
  'signup_date': new Date().toISOString(),
  'plan': 'free'
});

用户登录时

mixpanel.identify(user.id);

用户登出时

mixpanel.reset(); // 清除当前用户身份

第4步:追踪关键事件

这是最重要的部分!别啥都追踪,重点追踪这些:

核心转化事件

// 用户注册
mixpanel.track('User Signed Up', {
  method: 'Google', // 或 'Email'
  referrer: document.referrer
});

// 完成引导
mixpanel.track('Onboarding Completed', {
  steps_completed: 3,
  time_spent: 120 // 秒
});

// 首次使用核心功能
mixpanel.track('First Feature Used', {
  feature_name: 'AI Image Generator',
  timestamp: Date.now()
});

// 付费转化
mixpanel.track('Subscription Started', {
  plan: 'Pro',
  price: 19.99,
  billing_cycle: 'monthly'
});

功能使用事件

// 生成内容
mixpanel.track('Content Generated', {
  content_type: 'image',
  prompt_length: 50,
  generation_time: 3.2,
  success: true
});

// 导出文件
mixpanel.track('File Exported', {
  format: 'PNG',
  size: '1024x1024'
});

// 分享内容
mixpanel.track('Content Shared', {
  platform: 'Twitter'
});

我的命名规范

  • 事件名用 过去式动词 + 名词(User Signed Up,不是 Sign Up)
  • 属性名用 小写+下划线(button_name,不是 ButtonName)
  • 保持一致性,别今天叫 signup 明天叫 register

四、Amplitude 快速上手

第1步:注册和安装

去 amplitude.com 注册,流程和Mixpanel差不多。

安装SDK

npm install @amplitude/analytics-browser

初始化代码

// lib/amplitude.js
import * as amplitude from '@amplitude/analytics-browser';

amplitude.init('你的API_KEY', {
  defaultTracking: {
    sessions: true,
    pageViews: true,
    formInteractions: true
  }
});

export default amplitude;

第2步:追踪事件

语法和Mixpanel很像:

import * as amplitude from '@/lib/amplitude';

// 追踪事件
amplitude.track('Button Clicked', {
  buttonName: 'Generate',
  page: 'Dashboard'
});

// 设置用户属性
amplitude.setUserId(user.id);

const identify = new amplitude.Identify();
identify.set('email', user.email);
identify.set('plan', 'free');
amplitude.identify(identify);

Amplitude的特色功能

// 增量更新(比如积分)
const identify = new amplitude.Identify();
identify.add('credits_used', 1);
amplitude.identify(identify);

// 数组操作(比如收藏列表)
identify.append('favorite_features', 'AI Writer');
amplitude.identify(identify);

五、必须追踪的事件清单(照着做就行)

用户生命周期事件

注册流程

// 1. 开始注册
mixpanel.track('Signup Started');

// 2. 填写信息
mixpanel.track('Signup Info Entered', {
  has_email: true,
  has_password: true
});

// 3. 注册成功
mixpanel.track('Signup Completed', {
  method: 'Google',
  time_to_signup: 45 // 秒
});

激活流程(新用户引导):

// 查看教程
mixpanel.track('Tutorial Viewed', {
  step: 1
});

// 完成首次操作
mixpanel.track('First Action Completed', {
  action_type: 'generate_image'
});

// 激活成功(定义你自己的激活标准)
mixpanel.track('User Activated', {
  days_since_signup: 0,
  actions_completed: 3
});

付费转化

// 查看定价页
mixpanel.track('Pricing Page Viewed');

// 点击升级按钮
mixpanel.track('Upgrade Button Clicked', {
  plan: 'Pro',
  location: 'Dashboard'
});

// 进入支付页面
mixpanel.track('Checkout Started', {
  plan: 'Pro',
  price: 19.99
});

// 支付成功
mixpanel.track('Payment Completed', {
  plan: 'Pro',
  amount: 19.99,
  currency: 'USD'
});

功能使用事件

核心功能

// 使用AI生成
mixpanel.track('AI Generation Used', {
  feature: 'text_to_image',
  input_length: 50,
  success: true,
  generation_time: 3.5
});

// 编辑功能
mixpanel.track('Content Edited', {
  edit_type: 'resize',
  before_size: '512x512',
  after_size: '1024x1024'
});

// 保存/下载
mixpanel.track('Content Saved', {
  format: 'PNG',
  quality: 'high'
});

社交互动

// 分享
mixpanel.track('Content Shared', {
  platform: 'Twitter',
  content_type: 'image'
});

// 点赞/收藏
mixpanel.track('Content Favorited', {
  content_id: '12345'
});

错误和问题

别忘了追踪错误!这个超重要:

// API错误
mixpanel.track('API Error', {
  endpoint: '/api/generate',
  error_code: 500,
  error_message: 'Server timeout'
});

// 用户遇到的问题
mixpanel.track('Feature Failed', {
  feature: 'image_generation',
  reason: 'quota_exceeded'
});

// 用户反馈
mixpanel.track('Feedback Submitted', {
  rating: 4,
  has_comment: true
});

六、实战分析技巧(这才是重点)

1. 漏斗分析 - 找到流失点

在Mixpanel中

  1. 点击 “Funnels”
  2. 添加步骤:
    • Step 1: Signup Started
    • Step 2: Signup Completed
    • Step 3: First Feature Used
    • Step 4: Payment Completed

我的发现

  • 注册到激活:流失60%(太高了!)
  • 激活到付费:转化5%(还行)

优化动作

  • 简化注册流程(从5个字段减到3个)
  • 加强新手引导
  • 结果:激活率从40%提升到65%

2. 留存分析 - 看用户会不会回来

在Amplitude中

  1. 点击 “Retention”
  2. 选择起始事件:User Signed Up
  3. 选择回访事件:App Opened
  4. 查看N日留存

健康的留存数据(我的经验):

  • Day 1: 40-50%
  • Day 7: 20-30%
  • Day 30: 10-15%

如果留存太低

  • 加邮件提醒(Day 3, Day 7)
  • 推送通知(但别烦人)
  • 给理由让他回来(新功能、积分过期)

3. 用户分群 - 找到你的超级用户

创建分群

活跃用户

  • 过去7天使用核心功能 ≥ 3次

付费意向用户

  • 查看过定价页
  • 使用核心功能 ≥ 5次
  • 但还没付费

流失风险用户

  • 曾经活跃(前30天使用 ≥ 10次)
  • 但过去7天没登录

针对性运营

  • 给付费意向用户发优惠码
  • 给流失风险用户发挽回邮件
  • 给活跃用户要反馈和推荐

4. 用户路径分析 - 看他们怎么用你的产品

在Amplitude中

  1. 点击 “Pathfinder”
  2. 选择起始事件:User Signed Up
  3. 看用户接下来做了什么

我的发现

  • 60%的用户注册后直接去核心功能(好事!)
  • 30%的用户在设置页卡住了(需要优化)
  • 10%的用户迷路了(加引导)

七、进阶技巧(用了都说好)

1. 设置自定义事件属性

超级属性(每个事件都带上):

// Mixpanel
mixpanel.register({
  'app_version': '2.1.0',
  'platform': 'web',
  'user_language': 'en'
});

// Amplitude
amplitude.setGroup('company', 'acme_corp'); // B2B产品用

2. 追踪页面停留时间

let pageStartTime = Date.now();

// 页面离开时
window.addEventListener('beforeunload', () => {
  const timeSpent = (Date.now() - pageStartTime) / 1000;
  
  mixpanel.track('Page Time Spent', {
    page: window.location.pathname,
    seconds: timeSpent
  });
});

3. 追踪表单放弃

// 表单开始填写
const handleFormStart = () => {
  mixpanel.track('Form Started', {
    form_name: 'checkout'
  });
};

// 表单提交
const handleFormSubmit = () => {
  mixpanel.track('Form Submitted', {
    form_name: 'checkout'
  });
};

// 如果 Started 多于 Submitted,说明有人放弃了

4. A/B测试集成

// 给用户分配实验组
const experimentGroup = Math.random() > 0.5 ? 'A' : 'B';

mixpanel.people.set({
  'experiment_pricing_page': experimentGroup
});

// 追踪时带上分组
mixpanel.track('Pricing Page Viewed', {
  experiment_group: experimentGroup
});

// 后续在Mixpanel里按分组对比转化率

八、常见问题和坑(我都踩过)

1. 事件发送失败

问题:开发环境能看到事件,生产环境没数据

原因

  • 广告拦截器(uBlock、AdBlock会拦截追踪脚本)
  • CORS问题
  • 用户禁用了JavaScript

解决

// 检查是否加载成功
if (typeof mixpanel !== 'undefined') {
  mixpanel.track('Event');
} else {
  console.log('Mixpanel blocked');
}

// 或者用服务端追踪(更可靠)

2. 数据不准确

问题:同一个用户被算成多个

原因:没有正确设置用户ID

解决

// 用户登录后立即设置
mixpanel.identify(user.id);

// 不要用随机ID或设备ID

3. 事件太多,看不过来

问题:追踪了100个事件,不知道看哪个

解决

  • 只追踪关键的20%事件
  • 用命名空间分类(signup_, payment_, feature_*)
  • 定期清理没用的事件

4. 性能问题

问题:追踪代码拖慢了页面

解决

// 异步加载
useEffect(() => {
  if (typeof window !== 'undefined') {
    import('@/lib/mixpanel').then((mp) => {
      mp.default.track('Page Viewed');
    });
  }
}, []);

// 批量发送
mixpanel.set_config({ batch_requests: true });

九、我的实战数据看板

分享一下我每天必看的几个图表:

Dashboard 1: 核心指标

每日活跃用户(DAU)

  • 今日 vs 昨日 vs 上周同期

新用户注册

  • 数量和来源渠道

付费转化率

  • 今日新增付费用户
  • 转化漏斗完成率

Dashboard 2: 用户健康度

留存曲线

  • Day 1, 7, 30留存率

功能使用率

  • 核心功能使用人数占比
  • 平均每用户使用次数

流失预警

  • 7天未登录的活跃用户数

Dashboard 3: 产品优化

功能使用排行

  • 哪些功能最受欢迎
  • 哪些功能没人用(考虑下线)

错误监控

  • API失败率
  • 用户遇到的问题类型

用户反馈

  • NPS评分趋势
  • 常见问题分类

十、服务端追踪(更准确)

如果你担心客户端被拦截,可以用服务端追踪:

Mixpanel服务端(Node.js)

// 安装
npm install mixpanel

// 使用
const Mixpanel = require('mixpanel');
const mixpanel = Mixpanel.init('你的TOKEN');

// API路由中追踪
app.post('/api/generate', async (req, res) => {
  // 业务逻辑
  const result = await generateImage(req.body);
  
  // 追踪事件
  mixpanel.track('Image Generated', {
    distinct_id: req.user.id,
    success: result.success,
    generation_time: result.time
  });
  
  res.json(result);
});

Amplitude服务端

const amplitude = require('@amplitude/node');

const client = amplitude.init('你的API_KEY');

client.logEvent({
  event_type: 'Image Generated',
  user_id: req.user.id,
  event_properties: {
    success: true
  }
});

优点

  • 100%准确,不会被拦截
  • 可以追踪敏感数据(不暴露给前端)
  • 性能更好

缺点

  • 无法追踪前端交互(点击、滚动等)
  • 需要额外开发

我的方案:前端+后端结合,前端追踪交互,后端追踪核心业务事件。

十一、隐私和合规(别忽略)

GDPR合规

如果你有欧洲用户,必须:

// 征得用户同意后再初始化
if (userConsent) {
  mixpanel.init('TOKEN');
} else {
  mixpanel.disable(); // 禁用追踪
}

// 提供数据删除功能
mixpanel.people.delete_user();

不要追踪敏感信息

千万别追踪

  • 密码
  • 信用卡号
  • 身份证号
  • 详细地址

可以追踪

  • 用户ID(匿名化)
  • 邮箱(加密或哈希)
  • 国家/城市(不要精确地址)

十二、成本控制

免费额度够用吗?

Mixpanel Free

  • 100万事件/月
  • 假设每用户每天触发20个事件
  • 可支持:1,000,000 / 20 / 30 ≈ 1,666 DAU

Amplitude Free

  • 1000万事件/月
  • 可支持:10,000,000 / 20 / 30 ≈ 16,666 DAU

我的建议

  • DAU < 1000:Mixpanel免费版够用
  • DAU 1000-10000:Amplitude免费版
  • DAU > 10000:考虑付费或自建

省钱技巧

1. 减少不必要的事件

// 不要追踪每次鼠标移动
// ❌ mixpanel.track('Mouse Moved');

// 只追踪有意义的交互
// ✅ mixpanel.track('Button Clicked');

2. 采样追踪

// 只追踪10%的页面浏览
if (Math.random() < 0.1) {
  mixpanel.track('Page Viewed');
}

3. 用服务端追踪核心事件
前端追踪交互,后端追踪付费等重要事件,避免重复。

最后的话

追踪用户行为听起来很技术,但其实就是了解你的用户

我的心得

  1. 别追踪太多:20个核心事件足够了
  2. 每周看一次数据:别天天盯着,会焦虑
  3. 数据要转化成行动:发现问题就去改,别只是看
  4. 用户隐私第一:别追踪不该追踪的

推荐的学习路径

  1. 先用Mixpanel免费版,追踪10个核心事件
  2. 跑一个月,看留存和转化漏斗
  3. 根据数据优化产品
  4. 用户量大了再考虑Amplitude或付费
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐