我一直在使用以下代码来识别使用Mixpanel的新用户:
var mixpanelTries = 0;
function handleMixpanelUser() {
if ((window.mixpanel) && (window.mixpanel.alias)) {
if ("@Auth.UserID" !== "0") {
if ("@SessionWrapper.UserInitialized" === "False") {
try { mixpanel.alias("@Auth.UserID"); } catch (exception) {console.log("exception"); }
mixpanel.identify("@Auth.UserID");
mixpanel.people.set({
"$email": "@Auth.UserEmail", // only special properties need the $
"$created": "@SessionWrapper.UserCreated",
"name": "@Auth.FullName"
}, function (resp) { });
var url = "http://" + "@Config.BaseUrl" + "/finalizeuser/" + "@Auth.UserID";
$.ajax({
type: 'POST',
url: url,
async: false
});
}
else {
mixpanel.identify("@Auth.UserID");
}
}
}
else {
if (mixpanelTries < 5) {
mixpanelTries++;
setTimeout(handleMixpanelUser, 100);
}
}
}
$(function () {
handleMixpanelUser();
});
此代码于2012年12月编写,运行良好。但是,从1月1日开始,此代码无法正常运行,但不会崩溃,但新用户不会在Mixpanel中创建。代码没有变化。为什么我的代码在2012年表现良好而在2013年表现不佳?
我需要更改设置吗?
提前感谢您的帮助。
答案 0 :(得分:2)
我已经找到了问题:我的代码一直在运行,但我没有意识到,因为Mixpanel UI有一个很大的排序错误。如果我按照创建的时间对记录进行排序,那么第一个显示的记录是在12月31日创建的。
但如果按最后一次排序记录,则会显示几分钟前创建的用户。
这是一个排序错误。我相信当我们对日期进行排序时,Mixpanel的日期排序按字母顺序排序。
'12 / 31/2012'&gt; '2013年1月7日'
因此,2013年12月31日的人比2013年1月1日的人“更新”。我将向Mixpanel发送一封电子邮件,通知他们这个问题。