2016-02-11 1 views
2

Я новичок в Mixpanel и в настоящее время интересуюсь, как я могу работать между JS-библиотекой Mixpanel и библиотекой PHP.Работа между библиотекой PHP и библиотекой JS в Mixpanel

Пусть говорят, что у меня есть следующий (простой) 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> 

Итак, когда Джон Доу ([email protected]) посетить мой сайт http://example.com, он сначала попадает на главную страницу, а затем перейти перейдите на страницу категории и просмотрите некоторые продукты (john может перемещаться между страницами категорий и страницы продукта).

Насколько я знаю, Джону будет присвоен некоторый случайный идентификатор (отдельный идентификатор) из Mixpanel (например, 123123).

У меня также есть этот PHP код:

$mp->identify("[email protected]"); 

$mp->people->set(XYZ, array(
    '$first_name'  => "John", 
    '$last_name'  => "Doe", 
    '$email'   => "[email protected]", 
    '$phone'   => "5555555555" 
)); 

$mp->people->increment(XYZ, "login count", 1); 

Согласно документации Mixpanel здесь найти здесь https://mixpanel.com/help/reference/php

«XYZ» должны быть Mixpanel отчетливый идентификатор, который в этом случае устанавливается в 123123 для нашего Джон Доу.

Итак, вопрос в том, как я могу узнать назначенный отдельный идентификатор, установленный Mixpanel Джону Доу, используя библиотеку PHP, зная, что ему ранее был назначен отдельный идентификатор (через библиотеку JS)?

Я также заметил, что при использовании PHP библиотеки Mixpanel, он не назначается автоматически генерируется случайным образом отчетливый идентификатор по сравнению с использованием JS библиотеки (см изображения подробности):

Mixpanel

EDIT 1

Так я нашел этот код на документы:

// set distinct_id after the mixpanel library has loaded 
mixpanel.init("YOUR PROJECT TOKEN", { 
    loaded: function() { 
     distinct_id = mixpanel.get_distinct_id(); 
    } 
}); 

Что в основном может получить значение distinct_id, заданное Mixpanel, и задается вопросом, можно ли получить ident_id через PHP (предположительно отличительный_ид хранится в файлах cookie).

ответ

1

Если вы задаете только имя, фамилию, адрес электронной почты и другие «простые» сведения о профиле пользователя, вы можете сделать это в JavaScript, импортируя данные из PHP, не смешивая PHP и JS Mixpanel Apis. Вы также должны установить идентификатор пользователя, который является тем же идентификатором, который у вас есть в вашей базе данных, чтобы вы могли распознать пользователя в любом сеансе/устройстве.

Нечто подобное:

 mixpanel.identify("41"); 
     mixpanel.people.set({ 
      "$first_name": "Name", 
      "$last_name": "Surname", 
      "$email": "[email protected]", 
      "$last_login": "2016-02-11 09:00:08", 
     }); 
+0

К сожалению, в моей последовательности есть шаг, который требует использования библиотеки PHP. Следовательно, мне нужно знать, возможно ли это. – Jeremy

+0

Я столкнулся с такой же проблемой, и это был единственный обходной путь, который работал - запуск только javascript api и передача данных с php для отслеживания. –

+0

@ AlexanderM.I думаю, я могу найти обходное решение, но не уверен, что это правильный ответ, чтобы сделать это. Я могу поделиться им с вами, если вы захотите. – Jeremy

0

Просто используйте тот же идентификатор сеанса для обеих библиотек:

Как docs говорит:

Если вы не хотите управлять distinct_id самостоятельно , каждый раз, когда пользователь появляется в новом браузере, на новом компьютере или очищает свои файлы cookie, он будет выглядеть как новый уникальный пользователь.

это похоже на структуру сеанса, поэтому я решил использовать его с Laravel я писал для библиотеки JS:

mixpanel.identify("{{ session()->getId() }}"); 
mixpanel.track('Some event'); 

И это для PHP библиотеки:

$mp->identify(session()->getId()); 
$mp->track('Another event'); 

Это работает очень хорошо для меня.