我正在设置Mixpanel,发现如果我用一个用户登录(并且identify
了该用户),然后注销并重新注册一个新用户,新用户的详细信息会覆盖之前登录的用户(大概是当我调用alias
时)。如何告诉mixpanel用户已经注销,并重置身份标识令牌(再次匿名)?
我正在设置Mixpanel,发现如果我用一个用户登录(并且identify
了该用户),然后注销并重新注册一个新用户,新用户的详细信息会覆盖之前登录的用户(大概是当我调用alias
时)。如何告诉mixpanel用户已经注销,并重置身份标识令牌(再次匿名)?
我遇到了同样的问题,在一番搜索之后,我发现可以使用mixpanel.cookie.clear()
手动清除混合面板的Cookie。
然而,您需要确保混合面板已加载,因此我最终设置了一个愚蠢的超时:
var id = window.setInterval(function() {
if (mixpanel.cookie && mixpanel.cookie.clear) {
mixpanel.cookie.clear();
window.clearInterval(id);
}
}, 50);
接着,因为我不想在每个页面上都这样做,所以我在我的注销重定向URL上添加了一个查询字符串参数。所以,在访问/logout
后,它会将用户重定向到/home?_ref=logout
,此时只有存在该查询字符串参数时,我才会清除mixpanel cookie。
这相当繁琐,但好像能够正常工作。
在Mixpanel JavaScript版本v2.8.0中发布了mixpanel.reset()
函数,因此在用户注销时官方建议使用该函数。请参见https://github.com/mixpanel/mixpanel-js/issues/67。
对于安卓设备,您可以使用以下代码MixpanelAPI.reset()
来注销。
clearSuperProperties()
以删除本地存储中的任何超级属性。new_distinct_id = UUID.randomUUID().toString());
.identify(new_distinct_id)
和.getPeople().identify(new_distinct_id)
这样可以清除设备上的所有内容,以便新用户可以注册并与另一个distinct_id
关联。
使用javascript执行此操作的最佳方法是删除cookie。 cookie的名称为
mp_{mixpanel_token_id}_mixpanel
mixpanel.cookie.clear(); mixpanel.init("GARBAGE");
- kevinnuutinit
中使用loaded
选项,其中传递一个函数以在其加载后运行:mixpanel.init("YOUR_TOKEN", { "loaded": function() { ... 您的清晰代码放在这里 ... } } );
- Anton