Подключение счётчика top.mail.ru с генерацией уникального userID

Подключение счётчика top.mail.ru, с генерацией userID

Как подключить код счётчика от top.mail.ru, с генерацией уникального userID пользователя  на сайт?

Сервис предоставляет код в котором дан шаблон для вставки userID посетителя:

<script type="text/javascript">
var _tmr = window._tmr || (window._tmr = []);
_tmr.push({id: "3356928", type: "pageView", start: (new Date()).getTime(), pid: USER_ID}); // Настройте подмену шаблонного USER_ID на реальные данные при установке кода на сайт.
(function (d, w, id) {
if (d.getElementById(id)) return;
var ts = d.createElement("script");
ts.type = "text/javascript";
ts.async = true;
ts.id = id;
ts.src = "https://top-fwz1.mail.ru/js/code.js";
var f = function () {
var s = d.getElementsByTagName("script")[0];
s.parentNode.insertBefore(ts, s);
};
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else {
f();
}
})(document, window, "tmr-code");
</script>

 

Но у большинства сайтов нет своего собственного механизма раздачи userID посетителям сайта.

Можно сгенерировать userID при входе нового пользователя на портал, затем сохранить его во временное хранилище cookies и использовать дальше для сбора статистики дальнейших действий

Сделаем на примере PHP + JavaScript.

 

Генерируем userID и заносим его в cookies. Время жизни cookies выставляем равное пользовательской сессии (третий аргумент = 0), т. е. пока человек не закроет браузер:

<?php if (isset($_COOKIE["userID"])) {
$userID = $_COOKIE["userID"];
} else {
$userID = uniqid(); //generate userid
setcookie("userID", $userID, 0, "/", "", false, true); // lifetime before browser closing
} ?>

 

Далее пробрасываем переменную $userID из PHP кода в JavaScript с созданием новой «местной» переменной userID :

var userID = "<?php echo $userID ?>"; // php var to js var

 

В конце вставляем переменную userID в счетчик:

_tmr.push({id: "3308928", type: "pageView", start: (new Date()).getTime(), pid: userID});

 

Конечный результат помещаем в footer:

<!-- Top.Mail.Ru counter -->
<!-- generation ID and set cookies -->
<?php if (isset($_COOKIE["userID"])) {
$userID = $_COOKIE["userID"];
} else {
$userID = uniqid(); //generate userid
setcookie("userID", $userID, 0, "/", "", false, true); // lifetime before browser closing
} ?>
<!-- end generation ID and set cookies -->

<script type="text/javascript">
var userID = "<?php echo $userID ?>"; // php var to js var
var _tmr = window._tmr || (window._tmr = []);
_tmr.push({id: "3305628", type: "pageView", start: (new Date()).getTime(), pid: userID}); // attach userID
(function (d, w, id) {
if (d.getElementById(id)) return;
var ts = d.createElement("script");
ts.type = "text/javascript";
ts.async = true;
ts.id = id;
ts.src = "https://top-fwz1.mail.ru/js/code.js";
var f = function () {
var s = d.getElementsByTagName("script")[0];
s.parentNode.insertBefore(ts, s);
};
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else {
f();
}
})(document, window, "tmr-code");
</script>
<!-- /Top.Mail.Ru counter -->

Enjoy!

Поделись, если оказалось полезно :)
Нет комментариев

Написать