Как передать куку из JS в яндекс.метрику?
Привет.
Есть PHP скрипт. Он устанавливает куку.
Есть JS скрипт. Он считывает установленную через PHP куку.
Как можно полученную через JS куку передать в метрику?
Нужно передать это значение в параметры посетителя.
Код:
// ★ устанавливаю значение var my_cookie = "haloooooooooooooooooo"; (function(d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter7777777 = new Ya.Metrika2({ id: 7777777, clickmap: true, params: { // ★ как передать значение сюда? its_my_cookie: ?????????????????, } }); } catch (e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function() { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/tag.js"; })(document, window, "yandex_metrika_callbacks2"); |
// ★ устанавливаю значение var my_cookie = "haloooooooooooooooooo"; (function(d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter7777777 = new Ya.Metrika2({ id: 7777777, clickmap: true, params: { // ★ как передать значение сюда? its_my_cookie: ?????????????????, } }); } catch (e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function() { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/tag.js"; })(document, window, "yandex_metrika_callbacks2");
Передаю переменную в функцию:
(function(d, w, c, my_cookie) ... its_my_cookie: my_cookie, ... (document, window, "yandex_metrika_callbacks2",my_cookie) |
(function(d, w, c, my_cookie) ... its_my_cookie: my_cookie, ... (document, window, "yandex_metrika_callbacks2",my_cookie)
При рендере всего этого скрипта вместо значения переменной haloooooooooooooooooo, в параметре its_my_cookie появляется значение my_cookie
Даже если в значение поля its_my_cookie функции вставить код getCookie("my_cookie"), то на выходе получу не куку, а буквально то, что написано:
... its_my_cookie: getCookie("my_cookie") ... |
... its_my_cookie: getCookie("my_cookie") ...
Что я сделал не так?
Дополнительно:
На первый взгляд всё норм, попробуй вынести конфиг в глобальный контекст:
// ★ устанавливаю значение var my_cookie = "haloooooooooooooooooo"; cosnt conf = { id: 7777777, clickmap: true, params: { // ★ как передать значение сюда? its_my_cookie: ?????????????????, } }; (function(d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter7777777 = new Ya.Metrika2(conf); } catch (e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function() { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/tag.js"; })(document, window, "yandex_metrika_callbacks2"); |
// ★ устанавливаю значение var my_cookie = "haloooooooooooooooooo"; cosnt conf = { id: 7777777, clickmap: true, params: { // ★ как передать значение сюда? its_my_cookie: ?????????????????, } }; (function(d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter7777777 = new Ya.Metrika2(conf); } catch (e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function() { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/tag.js"; })(document, window, "yandex_metrika_callbacks2");
w[c][w[c].length-1]();
snippet
js исполняется в браузере и там никакой магии не происходит, чтобы посмотреть на переменную нужно её вывести через console.log(), в исходниках значение вместо неё подставляться не будет
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для передачи куки из JavaScript в Яндекс.Метрику можно воспользоваться специальным методом `ym`.
Прежде всего, необходимо установить код Яндекс.Метрики на вашем сайте, если он еще не установлен. Затем, для передачи куки, вам потребуется использовать следующий код:
window.onload = function() { var cookieValue = document.cookie; // Получаем значение куки ym(YOUR_METRIKA_ID, 'params', { 'cookieValue': cookieValue }); };window.onload = function() { var cookieValue = document.cookie; // Получаем значение куки ym(YOUR_METRIKA_ID, 'params', { 'cookieValue': cookieValue }); };
Здесь `YOUR_METRIKA_ID` - это идентификатор вашего счетчика Яндекс.Метрики.
При загрузке страницы данный код получит значение куки и передаст его в Яндекс.Метрику в качестве параметра `cookieValue`. После этого вы сможете использовать этот параметр для сбора и анализа данных в Яндекс.Метрике.
Убедитесь, что ваш счетчик Яндекс.Метрики настроен для приема и обработки пользовательских параметров, чтобы корректно отображать данные о куках.
Таким образом, вы сможете передать куку из JavaScript в Яндекс.Метрику и использовать эту информацию для анализа поведения пользователей на вашем сайте.