26

我正在将 Mixpanel 添加到我的 Web 应用程序中,我很好奇当用户从“匿名”(未登录/注册)转换为“已识别”(当他们在网站)。

如果用户进入并且是该站点的新用户,他们将获得一个匿名 UUID(根据文档)。该文档还说,Mixpanel 目前无法在 ID 之间进行转换。

这是否意味着 Mixpanel 无法处理非注册用户到注册用户的转换,并在他们成为注册/识别用户之前跟踪他们的事件?

如果是这样,是否有人有解决此问题的经验?你是怎么做的?

4

3 回答 3

29

截至 2012 年 12 月,您现在可以使用mixpanel.alias方法调用来为两个 id 设置别名:

https://mixpanel.com/docs/integration-libraries/using-mixpanel-alias

从上面的文档:

John 第一次访问您的网站 example.com。Mixpanel 为他分配了一个随机生成的 ID(可能是 123123)。他所做的一切都与该 ID 相关联。

点击几页后,他成功注册了。在注册确认页面上,您调用 mixpanel.alias("john@hotmail.com")。这实际上并没有改变他的 ID - 他仍然使用我们最初分配给他的随机 ID 来识别。

它所做的是将 ID“john@hotmail.com”添加到我们端的查找表中。每当我们看到“john@hotmail.com”的数据时,我们都知道将其重新映射到 123123,即他的原始 ID。

因此,您可以开始在您的所有页面上调用 mixpanel.identify("john@hotmail.com") ,您的事件、漏斗和保留都将继续完美运行。

于 2012-12-31T21:47:11.517 回答
11

有办法使这项工作。但是您真正需要的是一种称为 distinct id aliasing 的功能,它允许您将一个 distinct_id ID 引用到另一个。不幸的是,我们现在不提供。由于我们为 mixpanel 编写的数据存储的独特性质,这比您预期的要困难得多。

同时,我可以给你一些策略来解决这个限制:

  • 当用户第一次访问您的网站时,为他们设置一个您在内部生成的独特 ID。一旦他们注册了一个帐户,请在您的用户详细信息表中引用该 distinct_id,然后继续使用该 id 注册后续事件。用户随后每次进行身份验证时,都将存储的值用作不同的 id。希望当他们返回时,cookie 仍然存在,并且您将顺利捕获所有事件。

  • 您还可以让 mixpanel 给他们一个自动发布的 distinct_id 值,然后在注册时使用 mixpanel.get_property() 获取该值,然后将其添加到您的用户表中,并在您将来识别它们时使用它.

  • 但是,如果他们从一台机器上进行身份验证,然后从另一台机器、不同的浏览器或移动设备上启动呢?然后在他们访问您的网站和他们进行身份验证之间的时间,您的网站将向他们发出一个新的 distinct_id ......并且没有办法别名!这里的解决方案有点hackier。获取该数据的唯一方法是记录在身份验证之前发送的那些事件(可能是服务器端),然后在用户身份验证后通过 HTTP 规范将它们发送到具有正确 distinct_id 的其余 API。只要您保留正确的时间戳,它就会在 mixpanel 中按时间顺序正确显示。如果用户从不进行身份验证,那么您可以让记录的事件超时并发送它们。

这些中的任何一个都对您有用吗?

于 2012-05-24T01:42:43.530 回答
5

当用户访问您的网站时,使用唯一 id 识别他们,如果他们还没有,则将其保存在 cookie 中,然后使用Mixpanel 识别API 调用来识别他们。您可以在用户注册后将唯一 ID 保存到用户记录中的数据库中,以便在他们清除 cookie 时重新设置它。

如果用户在注册之前清除了他们的 cookie,那么您将不走运,但这就是这种野兽的本性,并且在任何地方都是一个问题。

于 2012-05-23T23:01:07.787 回答