Mixpanel 匿名用户转换为已识别用户跟踪
Posted
技术标签:
【中文标题】Mixpanel 匿名用户转换为已识别用户跟踪【英文标题】:Mixpanel anonymous user converts to identified user tracking 【发布时间】:2012-05-30 11:56:33 【问题描述】:我正在将 Mixpanel 添加到我的 Web 应用程序中,我很好奇当用户从“匿名”(未登录/注册)转换为“已识别”(当他们注册/创建时)会发生什么的“过程”网站上的帐户)。
如果用户刚进入该站点,他们将获得一个匿名 UUID(根据 documentation)。该文档还说,Mixpanel 目前无法在 ID 之间进行转换。
这是否意味着 Mixpanel 无法处理非注册用户到注册用户的转换,并在他们成为注册/已识别用户之前跟踪他们的事件?
如果是这样,是否有人有解决此问题的经验?你是怎么做的?
【问题讨论】:
【参考方案1】:当用户访问您的网站时,使用唯一 id 识别他们,如果他们还没有 cookie,则将其保存在 cookie 中,然后使用 Mixpanel Identify API 调用来识别他们。您可以在用户注册后将唯一 id 持久保存到用户记录中的数据库中,以便在他们清除 cookie 时重新设置。
如果用户在注册之前清除了他们的 cookie,那么你会很不走运,但这就是这种野兽的本性,在任何地方都会成为问题。
【讨论】:
Woody Schneider 在@mixpanel 工作,并为该平台提供了一些见解。我在那里给出了答案,因为他是 mixpanel 实际工作方式的权威来源。不过,感谢您的回复 - 这是我们最终实施的。 您是否有最终实现的代码示例?【参考方案2】:有办法让这项工作发挥作用。但是您真正需要的是一种称为 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 中按时间顺序正确显示。如果用户从不进行身份验证,那么您可以让记录的事件超时并发送它们。
这些都适合你吗?
【讨论】:
我认为没有办法将不同的 id 别名在一起;我只是希望我错了。我们实现了内部生成的不同 id 解决方案,它应该适用于大多数情况 - 跟踪第二个不同标识符只是更多的管理和开销。无论如何,感谢您的回复。我假设您回复中的“我们”意味着您在 @mixpanel 工作,并且您的个人资料中列出了 mixpanel.com - 所以我会在这里给出答案 - 因为它是权威的(: 现在功能已经存在:mixpanel.com/docs/integration-libraries/using-mixpanel-alias @WoodySchneider - 对于#3 是否有更好的解决方案,或者仍然最好在事后使用正确的 ID 记录和发布? @WoodySchneider 4 年后回到这个问题 - 只是想知道核心 API 中是否有任何更新?在文档中没有看到它... @Woody Schneider 您在解决方案中提到的第 3 点是否有更好的解决方案?如果没有,那么如何在客户端获取 mixpanel 内置属性(城市、浏览器等),以便将这些数据发送到我们的服务器?【参考方案3】:截至 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“john@hotmail.com”添加到 我们的结局。每当我们看到“john@hotmail.com”的数据时,我们就知道要重新映射 到 123123,他的原始 ID。
所以,你可以开始调用 mixpanel.identify("john@hotmail.com") 您的页面,以及您的活动、渠道和留存率都将继续 完美地工作。
【讨论】:
感谢您,Mixpanel 的 API 文档措辞非常糟糕。它声明You can call this function to override a previously set unique ID for the user. Mixpanel cannot translate between IDs at this time, so changing the ID will make them appear to be a new user.
,这听起来就像 mixpanel.identify()
每次调用时都会创建一个新的用户实例!
我以后在哪里可以在 mixpanel 仪表板中找到用户信息?我期待着找到它作为财产。但它不存在。
@RobAnderson 用户资料保存在“人物”部分的“探索”段落下以上是关于Mixpanel 匿名用户转换为已识别用户跟踪的主要内容,如果未能解决你的问题,请参考以下文章
使用firebase中的signInWithRedirect将匿名用户转换为新用户
firebase react-native:通过电话身份验证将匿名用户转换为永久用户