我是Mixpanel的新手,目前想知道我如何在Mixpanel的JS库和PHP库之间工作。
假设我有以下(简单)JS脚本:
// Placed on homepage
<script type="text/javascript">
mixpanel.track("viewed homepage");
</script>
// Placed on category page
<script type="text/javascript">
mixpanel.track("viewed category page");
</script>
// Placed on product page
<script type="text/javascript">
mixpanel.track("viewed product page");
</script>
所以当John Doe(jdoe@example.com)访问我的网站http://example.com时,他首先登陆主页,然后导航到类别页面并浏览一些产品(john可能会来回浏览)类别页面和产品页面。)
据我所知,John将从Mixpanel(例如123123)获得一些随机ID(不同的ID)。
我也有这个PHP代码:
$mp->identify("jdoe@example.com");
$mp->people->set(XYZ, array(
'$first_name' => "John",
'$last_name' => "Doe",
'$email' => "john.doe@example.com",
'$phone' => "5555555555"
));
$mp->people->increment(XYZ, "login count", 1);
根据此处的Mixpanel文档https://mixpanel.com/help/reference/php
“XYZ”应该是Mixpanel的不同ID,在这种情况下我们的John Doe设置为123123。
所以问题是,我怎么知道Mixpanel使用PHP库为John Doe设置的指定的不同id,知道他之前已被分配了一个不同的id(通过JS库)?
我还注意到,在使用Mixpanel的PHP库时,与使用JS库相比,它不会自动分配随机生成的不同ID(参见图片了解详情):
编辑1
所以我在文档上找到了这段代码:
// set distinct_id after the mixpanel library has loaded
mixpanel.init("YOUR PROJECT TOKEN", {
loaded: function() {
distinct_id = mixpanel.get_distinct_id();
}
});
基本上可以检索Mixpanel设置的distinct_id,并想知道是否可以通过PHP检索distinct_id(可能是distinct_id存储在cookie中)。
答案 0 :(得分:1)
如果您只在用户配置文件中设置名称,姓氏,电子邮件和其他“简单”信息,则可以在JavaScript中执行此操作,从PHP导入数据,而无需混合使用PHP和JS Mixpanel Apis。 您还应该为用户设置一个ID,该ID与数据库中的ID相同,以确保您可以在任何会话/设备中识别用户。
类似的东西:
mixpanel.identify("41");
mixpanel.people.set({
"$first_name": "Name",
"$last_name": "Surname",
"$email": "Mail@gmail.com",
"$last_login": "2016-02-11 09:00:08",
});
答案 1 :(得分:0)
只需对两个库使用相同的会话ID :
正如docs所说:
如果您不选择自己管理distinct_id,则每次用户在新浏览器中,新计算机上显示或清除其Cookie时,它们都会显示为新的唯一身份用户。
它与会话结构类似,所以我决定重用它,使用Laravel我为JS库编写了以下内容:
mixpanel.identify("{{ session()->getId() }}");
mixpanel.track('Some event');
这适用于PHP库:
$mp->identify(session()->getId());
$mp->track('Another event');
这对我来说非常好。