Обратная связь
Введите ваши данные, и я свяжусь с вами!
Какой у вас вопрос?

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c обработкой персональных данных

Установка и чтение Cookie с помощью Google Tag Manager

Материал обновлен 04:01:2022

Для чего может понадобится подобная функция? Например для отслеживания последовательности действий пользователя.

Прежде чем перейдем к установке и чтению cookie в Google Tag Manager, определим что такое cookie. За информацией обратимся к wikipedia.org.

Куки (от англ. cookie — печенье) — небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Веб-клиент (обычно веб-браузер) всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в виде HTTP-запроса. Применяется для сохранения данных на стороне пользователя…

Теперь практика, вначале немного JavaScript. Для установки cookie необходимо использовать следующий вызов:

  • name — имя для cookie;
  • value — значение присваиваемое cookie
  • expires — до какого времени будет «жить» cookie;
  • path — путь, внутри которого будет доступ к cookie;
  • domain — домен, на котором доступно cookie;
  • secure — cookie можно передавать только по HTTPS.

Secure обычно не используются, domain не указывается, если cookie устанавливается для текущего домена, а для path значение / означает, что cookie доступно со всех страниц сайта.

Expires — время (дата) истечения куки в формате GMT. Если дату не указать, то cookie удаляется при закрытии браузера. Если дата в прошлом, то cookie будет удалена.

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

Удобство описанной функции в том, что вы можете передать в качестве expires количество секунд, на которое необходимо установить cookie.

Если вам необходимо получить значение ранее установленной cookie используется следующий вызов:

Выполнение этого кода вернет строку, которая будет содержать список пар имя/значение, разделенных точкой с запятой для всех cookie, которые существуют для текущей страницы:

Как и ранее, для облегчения получения значения ранее установленной cookie используют дополнительные функции, например:

Чтобы при необходимости удаления куки не высчитывать каждый раз нужное значение времени/даты, возможно использование следующей функции:

Теперь у нас есть необходимый набор функций для установки, чтения и удаления cookie. Несколько практических примеров использования описанных выше функций.

Установка cookie с именем name до закрытия браузера:

Чтение ранее уставленной cookie с именем name:

Удаление cookie с именем name:

Установка cookie с именем name на сутки:

Для того чтобы использовать названные функции на страницах сайта, необходимо создать новый тег в Google Tag Manager.

Задайте удобное для вас имя тега, например Функции JavaScript, укажите тип тега Пользовательский тег HTML, затем в поле ввода содержимого тега добавьте первую строку <script> затем разметите функции записи, изменения и удаления cookie, после чего завершающей строкой укажите </script>.

Тег Google Tag Manager с функциями JavaScript

Тег Google Tag Manager с функциями JavaScript

Заполнив поля настройки тега не забудьте указать правила активации, если вам необходима активация тега на всех страницах сайта используйте существующее правило — Все страницы.

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

Создайте новый тег типа Пользовательский тег HTML, укажите произвольное имя и правило активации Все страницы. В поле HTML введите следующий код:

 Краткое пояснение алгоритма:

  1. получаем значение cookie;
  2. проверяем значение cookie и если не установлено, то присваиваем значение 1, если ранее установлено, то увеличиваем значение на единицу больше;
  3. сохраняем обновленное значение cookie.

Обратите внимание на строку:

Отсутствует третий параметр, это значит, что cookie будет «жить» до закрытия браузера, установив его значение, например, в 3600, мы сможем получать cookie в течении часа с момента последнего открытия страницы сайта:

Пример работы описанного процесса в Google Chrome:

Пример работы тега

Пример работы тега

Если Вам понадобится удалить cookie, используйте следующий код:

Если материал оказался полезным и интересным для вас, прошу поделиться им в социальных сетях.

Рассылка бесплатных кейсов, инструкций, обзоров
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности
Ежедневные новости из мира аналитики в Telegram канале
Настройки, интеграции, примеры реальных задач, пошаговые инструкции
материалы ПО ТЕМЕ:
ОБСУЖДЕНИЕ:
Иван
14.01.2014 at 13:59

Мне вот интересно. А на роботов поисковых машин можно вешать куки? Например на Googlebot или Yandexbot. Вы не в курсе? Спасибо.

Иван
14.01.2014 at 16:39

Добрый день, Иван!
С подобной задачей не сталкивался. Вопрос в технической реализации, ведь cookie хранится на стороне того, кто заходит на страницу. Они могут быть настроены таким образом, что не будут приниматься браузером клиента, а как устроены пауки поисковиков — это только гадать можно.

Михаил
15.01.2014 at 16:52

Боты поисковиков ходят на сайты не через браузеры, соответственно ни о каких cookie речи быть не может.

Stijit
15.01.2014 at 17:47

Да, роботы куки не принимают

Maxim
14.05.2015 at 16:21

Спасибо за статью, очень интересно.

А можно ли как то создать правило активации тега, при наличии определенного кука у пользователя? если да,то как ? )

    Иван
    15.05.2015 at 09:34

    Да возможно. Нужно использовать код, который прочитает нужную cookie и получит из нее значение. Дальше все строится на основе полученного значения

Алексей
14.07.2015 at 18:08

Немогли бы Вы привести пример полного скрипта для отслеживания кук?

    Иван
    14.07.2015 at 19:11

    Алексей, а какого функционала Вам не хватает в описанном коде?

    Алексей
    15.07.2015 at 11:45

    Я просто немного не парограмист и не могу связать части кода в целый чтоб его установить и связать с кодом в статье https://prometriki.ru/otslegivanie-nestandartnih-celey-v-google-analytics-s-pomoshu-google-tag-manager/
    Не появляется counter попробовал все варианты комбинацый.

    Иван
    21.07.2015 at 13:26

    Алексей, если Вам необходимо решение конкретной задачи, Вы можете воспользоваться моими услугами

Ярослав
14.08.2015 at 13:29

Иван, спасибо за публикацию!

Вопрос: в правой части выражения document.cookie = … — это же обычная строка? Есть у вас идеи, почему здесь не использовался объект? Ведь структура «ключ : значение» к тому располагала.

    Иван
    16.08.2015 at 22:58

    Ярослав, я использую документацию в таких случаях. Согласно документации значения описываются так, как приведено у меня в материале. Возможен дли другой вариант? Не знаю, я не пробовал другой реализации

    Ярослав
    25.08.2015 at 18:09

    Иван, я не имел в виду, что у вас что-то неправильно:) просто для себя хотел понять внутреннюю особенность кукис (почему строка, а не объект — чем обусловлен такой выбор разработчиками? наверное, чем-то обусловлен таки).

Kirill
25.04.2016 at 13:52

Иван, скажите, а можно получится ли таким образом записывать куку для другого домена?
У меня страница регистрации вынесена на поддомен, задача что бы при регистрации на поддомене срабатывал пиксель по определенной куке

    Иван
    25.04.2016 at 14:38

    Cookie могут быть установлены и прочитаны только на своем домене

    Kirill
    26.04.2016 at 19:23

    даже если на домене и поддомене у меня установлен один и тот же GTM?
    А можно каким-то образом пробрасывать какой-нибудь другой параметр, по которому можно было бы запускать тег на поддомене

    Иван
    28.04.2016 at 11:13

    Установка и область «чтения/видимости» cookie, это вопрос безопасности на уровне браузера. Для того, чтобы решить Вашу задачу нужно изучать реальный сайт и настройки

Ян
09.10.2016 at 16:48

Иван, подскажите, пожалуйста, почему расчет переменной может вызываться много раз?
Для примера похожего на описанный выше я получаю «Здравствуйте! Это ваше первое посещение!» — 12 раз. Как проверить когда происходит «расчет» переменной?

    Иван
    09.10.2016 at 19:21

    Ян, проверьте устанавливаются ли у Вас cookie, скорее всего не происходит ее запись, скрипт пытается прочитать данные и не находит их

    Ян
    09.10.2016 at 23:27

    Если я правильно понял, то скрипт не находит cookie и выводит ‘Здравствуйте! Это ваше первое посещение! — это правильно, но почему 12 раз не понятно.

    Сейчас проверил на другом примере {{myCounterTest}}
    «function ()
    {
    var myCounterTest = 0;
    console.log(myCounterTest);
    return;

    вызов этой переменной происходит 12 раз.
    Ни в каком из тегов новая переменная не участвует.

    Иван
    12.10.2016 at 22:18

    Ян, посмотрите в отладчике, сколько раз и при каких условиях активируется тег содержащий код работы с Cookie

    Ян
    21.10.2016 at 10:40

    Иван, спасибо, разобрался.
    Не внимательно читал статью и запись в куку делал в переменной, а не в теге.
    А так как переменные считается несколько раз (до сих пор не понятно почему), то итоговый результат выходил больше (на кол-во расчетов переменной).

Олег
13.02.2017 at 17:32

Иван, огромное спасибо за Ваши статьи! Очень доступно всегда излагаете!
Вопрос: а как быть, если нам значение прочитанное из куки нужно передать в аналитику, например, в качестве параметра. Т.е. вопрос даже шире, как присвоить какой-либо переменной из GTM значение кастомного JS (в нашем случае чтение из куки)?
Заранее большое спасибо!!!

Олег
14.02.2017 at 14:32

Сморозил, пардон) Это ж через уровень данных и решается.

Сергей
05.04.2017 at 01:24

Иван, добрый день. Требуется установить куку на 14 дней каждому пользовальзователю зашедшему из яндекс директ в гугланалитк с utm-metkami. Как можно ето реализовать в техническом плане например через GTM, какую функцию для етого и скрипт использовать.
Заранее спасибо

    Иван
    08.04.2017 at 00:47

    Сергей, нужно по источнику ссылки определить нужный Вам источник и параметры, далее по этим данным настроить логику работы

Максим
20.05.2017 at 11:58

Добрый день,
Есть задача.
Необходимо записывать в память пользователей информацию в кукис информация с другого домена. Но эта информация постоянна.
Тоесть любой посетитель зашедший на сайт должен «схватить» нужную кукис.
Как реализовать ?

    Иван
    22.05.2017 at 11:01

    Добрый день, Максим! Не совсем понятна задача. Если я правильно ее понял, то нужно из одной куки получить значение и записать в нужную, но «чужие» куки сайт не сможет считать

Екатерина
09.06.2017 at 16:21

Добрый день!

Коллеги, есть такой вопрос, никак не можем разобраться в чем причина(

GA явно задваивает данные по Пользователям

мы создали страницу на домене 3го уровня — повесили на него код ГА,
далее перед нами стояла задача повесить коды событий на видео с YouTube которые размещаются на этой странице

реализовывали мы это впервые и по инструкции

lunametrics.com/labs/recipes/youtube-tracking/

но в Таг Менеджере мы дополнительно ничего не настраивали ( но данные по событиям видео мы видим в GA

на сколько мы понимаем 1 уник срабатывает через код GA , и он же через событие

сейчас не можем понять где именно задвоение данных происходит, и как это поправить ((

    Иван
    11.06.2017 at 10:28

    Екатерина, для решения вопроса необходима ссылка на страницу, где у Вас возникает проблема

Антон
09.06.2017 at 19:44

Доброго времени суток!
Подскажите, а как быть, если на сайте страницы категорий и товаров не отличаются (ЧПУ), а страницы надо как то разделять в аналитике, можно ли их как-то разметить через код шаблона страниц (например поставить метки в коде этих страниц), т.е. виртуальная страница не через размеченный клик, а через просмотр размеченной страницы.. простите что так запутанно..

    Иван
    11.06.2017 at 10:30

    Антон, добрый день! Вероятно на странице есть информация о текущем разделе, которая видна пользователю. По ней можно настроить логику работы Google Tga Manager нужным образом

Ivan
15.07.2017 at 17:26

Здравствуйте Иван
Подскажите, а можно ли считывать cookie другого сайта?
Например: cookie была установлена на сайте site1.ru, а я хочу считать ее с помощью GTM на своем сайте и настроить фильтр для этих пользователей имеющих эту cookie другого сайта.
Спасибо!

    Иван
    20.07.2017 at 22:47

    Здравствуйте. Нет нельзя, это сделано для безопасности

    Ivan
    28.07.2017 at 18:21

    Здравствуйте Иван
    Даже при условии, если я знаю название этой cookie и ее значение?
    Спасибо!

    Иван
    29.07.2017 at 15:07

    В любом случае

Дмитрий
03.10.2018 at 19:27

Добрый день, а есть реализация алгоритма установки куки через gtm пользователям сайта?

    Иван
    06.10.2018 at 18:47

    Дмитрий, в материале описано все, что для этого необходимо

Анастасия
13.02.2019 at 15:08

Добрый день! Спасибо за материал) Подскажите, пожалуйста, как быть в такой ситуации: нужно организовать передачу источника трафика заказа в 1С, для этого хотим разбирать cookie Google Analytics «__utmz», соотв-но вытягивать источник трафика. На сайте GTM, cookie передается только «_ga». Какой именно код JavaScript необходимо настроить в GTM, чтобы cookie «__utmz» начал передаваться? Заранее спасибо за ответ.

    Иван
    24.02.2019 at 13:45

    Добрый день, Анастасия. Вы описали код, который уже не используется несколько лет, по этой причине рекомендую вам перейти на актуальную версию Google Analytics — Universal и использовать ее. Сейчас таких cookie файлов уже нет

Оставить комментарий
Для добавления комментария — заполните форму!

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c обработкой персональных данных