我遇到了Mixpanel识别问题。我希望能够跟踪用户登录之前记录的事件,并将其识别为。
这是一个例子。 Louie打开网页并访问“关于”页面。使用mixpanel.track('Visit About')
,我可以记录路易的匿名访问。一切都很好,花花公子。
Louie决定登录,mixpanel.identify(user.id)
来电识别他 - 后续事件可以追溯到路易。但是,第一个事件(“访问关于”)仍显示随机的,Mixpanel设置的不同ID,并且未与Louie关联。
预计会出现这种情况吗?我能做什么?干杯
答案 0 :(得分:5)
您想要alias
。
首次分配(注册)唯一ID时使用alias(),并使用identify()持续识别具有该唯一ID的用户(例如,每次用户在注册后登录)。不要在alias()的同时调用identify()。
根据您的描述,听起来,而不是匿名查看“关于”页面,然后登录,Louie正在匿名查看“关于”页面,然后注册
在这种情况下,请在Louie注册时致电alias
,然后在他登录后致电identify
。这应该将随机的匿名Mixpanel ID与Louie的新注册用户ID相关联。
注意:使用此方法意味着,因为Louie匿名触发了一个事件,然后登录,Louie的该事件的匿名ID将不会与他登录的不同ID相关联。如果他在触发匿名事件后注册,您可以调用alias
,然后将它们链接起来。不幸的是,这是Mixpanel的已知限制。从他们的文件:
这是他第一次通过此设备访问您的网站,因此我们为他分配了一个全新的distinct_id。他点击了然后登录。在这种情况下你不应该调用mixpanel.alias() - 我们没有在这个设备上看到他,但他不是新用户。 ...而不是调用mixpanel.alias(),你应该只调用mixpanel.identify()。这会将他的电话活动重新映射到他在注册您的服务时使用的原始ID,这是最理想的结果。这确实意味着令人遗憾的是,他在登录前解雇的事件与他无关。
有关Mixpanel here中的别名的更多信息。
答案 1 :(得分:0)
Alias
对该方案不起作用,但我找到了解决此问题的方法。
当用户首次登录时,请检查请求Cookie的distinct_id是否与用户ID匹配。
如果他们不匹配,请创建后端任务以将匿名distinct_Id回填到用户的distinct_id。
使用JQL加载事件,然后使用mixpanel导入端点再次触发它们。
缺点是您将在系统中有重复事件,因为无法从匿名distinct_id中删除事件。
对于导入的事件,您可以向它们添加属性,指示它们已导入,以便在需要时将其过滤掉。
答案 2 :(得分:0)
他们花了一段时间,但这是...
这称为 Mixpanel Identity merge ,它应该解决整个问题,即在注册/登录之前连接匿名用户执行的操作
新系统改善了identify(),alias()的行为,并添加了一个名为$ merge的新事件。
现在,所有预身份验证活动都可以映射回用户 通过ID合并系统,可以在单个标识符下链接经过身份验证的事件流之前和之后。这消除了“错误唯一性”,从而确保了漏斗和流中最准确的转化率和下降率。 以前,Mixpanel只能将预注册活动映射回后来被识别的用户。用户在再次登录之前匿名进行的任何活动都不能归因于该用户。
这里是整个blog post