2 способа получения Client ID Google Analytics в Google Tag Manager

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

Ранее я приводил пример настройки для сбора данных о конкретном пользователе в Google Analytics и Яндекс Метрике используя настройки Google Tag Manager, в которых для уникального ключа использовал самостоятельно сгенерированное значение. Но имеется также решение и на базе значения Client ID Google Analytics. Об особенностях его использования я писал ранее.

Давайте рассмотрим варианты получения значения Client ID в Google Tag Manager. Для решения задачи нам понадобится создать собственную переменную, настройки которой будут зависеть от выбранного вами варианта. Я предлагаю два:

  • с помощью метода get() Google Analytics;
  • из cookie _ga Google Analytics.

Какой из них будет для вас наиболее удобным – решать вам. Обратите внимание, что _ga это имя cookie по умолчанию, оно может быть изменено!

Первый вариант: получаем Client ID Google Analytics методом get().

Необходимо создать собственную переменную типа Собственный код JavaScript:

Переменная типа Собственный код JavaScript

Переменная типа Собственный код JavaScript

Далее указать следующий код JavaScript:

Немного поясню, что он делает. Сначала мы получаем трекер Google Analytics, затем методом get() через него получаем нужное нам значение. Результат работы в отладчике:

Получение через метод get()

Получение через метод get()

Второй вариант: получаем Client ID Google Analytics из cookie _ga.

Необходимо создать переменную, которая получит значение из cookie, и вернет необходимое значение. Пути решения два:

  • создать переменную для получения значения из cookie файла и затем работать с этой переменной;
  • создать универсальную переменную, которая сразу вернет нужное значение.

Я покажу второй вариант, но предварительно напомню, что Client ID Google Analytics хранится в cookie файле _ga в следующем виде:

Client ID в cookie файле

Client ID в cookie файле

Нам же необходимы только 3 и 4 фрагмент, если разделить эту строку на части через знак . .

Создаем переменную со следующими настройками:

Переменная типа Собственный код JavaScript

Переменная типа Собственный код JavaScript

В поле Собственный код JavaScript размещаем следующий код (что он делает указано в комментариях):

В интерфейсе Google Tag Manager это выглядит примерно вот так:

Настройки переменной

Настройки переменной

После этого сохраняем переменную и можем посмотреть как она работает в режиме предварительного просмотра Google Tag Manager:

Проверка перемнной в отладчике

Проверка перемнной в отладчике

Итак, мы решили нашу задачу – получили Client ID Google Analytics в Google Tag Manager. Но… Есть один момент, который нужно учитывать при использовании этих методов.

При первом обращении к сайту нужное значение для пользователя будет возвращено не ранее стандартного события gtm.load при условии, что тег Google Analytics активируется триггером “по умолчанию” Все страницы.

Вот пример первого визита пользователя на ваш сайт:

Событие Pageview Google Tag Manager

Событие Pageview Google Tag Manager

После выполнения события gtm.load становится доступно нужное значение:

Событие Page Load Google Tag Manager

Событие Page Load Google Tag Manager

При повторном визите / загрузке следующей страницы, нужно значение доступно с первого события Google Tag Manager при использовании способа получения значения из cookie, если через метод get(), то не ранее gtm.load.

Кто готов поделиться соображениями почему так происходит, прошу писать комментарии.

Кейсы и инструкции по настройке в вашем ящике. Подпишитесь сейчас!
я даю согласие на обработку персональных данных

14 комментария(ев) к “2 способа получения Client ID Google Analytics в Google Tag Manager

  1. Арсений Алиханов 09.02.2016 в 15:48 - Ответить

    Да, долго бодался с проблемой, что CID не прописывается сразу. За счет этого остается не промеченными 10-15% трафика.

    В итоге как сделать присвоение CID внутри основного тега UA я не придумал, но сделал обходной маневр:
    Данные o CID присваиваются отдельным тегом, который срабатывает на gtm.load но с внутренним таймаутом. И отправляем данные через Event. Выглядит это так: http://prntscr.com/a0yatn

    Конечно, вариант костыльный, и получаем тучу эвентов, зато погрешность снизилась до 2% – тех, кто уходит со страницы пока еще даже gtm.load не успел сработать. То есть супер-быстрые отказы.

    Такие дела :)

  2. Иван, добрый день!

    А зачем Вам брать CID? Вы его как-то можете пробросить из таг менеджера в стороннюю таблицу для отслеживания?
    Кстати не заметил в Вашем блоге описания активации функции UID для склеивания действий зарегистрированных пользователей и просмотра их потом в отдельном представлении https://support.google.com/tagmanager/answer/4565987

    Если говорить об отслеживании действий конкретного зарегистрированного пользователя , с целью показать их, к примеру, менеджеру по продажам в CRM, то вероятно потребуется создавать отдельную таблицу, в которую следует отправлять cid, uid и данные о его посещениях – просмотры страниц, товары в корзине или иные действия. А затем уже подтягивать эти данные в CRM.

  3. Иван, а Вы знаете способ как получить данные из datalayer, чтобы их подтянуть в свою таблицу или это невозможно?

    • Возможно, т.к. уровень данных это объект JavaScript, соответственно с ним можно сделать все, что позволяет этот язык

  4. Иван, возможно ли, объединяя сеансы в Яндекс.Метрике и Google Analytics по ClientId, импортировать в Google Analytics поисковые запросы из Яндекс.Метрики? Например, выгружаем их через API Метрики и импортируем в GA через Measurement Protocol. Нет ли у вас подробной информации по такому решению, как импорт данных Яндекс.Метрики в Google Analytics?

    • Алексей, готовое решение я не описывал, но встречал подобные схемы с небольшими инструкциями. Импортировать в GA – не всегда лучший вариант. Можно сделать выгрузку и свести данные из разных систем

  5. В одном из материалов вы писали, что UID нужен только для склеивания статистики по пользователю на разных устройствах. Вопрос: так все таки можно использовать эти данные для сквозной аналитики, например, передачи по конкретному посетителю данных в CRM или нет?

    • Для сквозной аналитики Вам необходим уникальный ключ или идентификатор пользователя. Он должен присутствовать во всех системах откуда Вы планируете собирать данные. Что будет этим ключом – решать только Вам, возможно Вы будете использовать UserID

      • Василий 23.11.2016 в 15:16 -

        Ок, предположим это будет UID, который GA может подхватывать из куки, как я понял. Этот UID может уходить в CRM, например, в АмоСРМ, а обратный экспорт событий по заявке как наладить? Чтобы можно было строить отчеты в GA не по конверсиям, а по прибыли именно? Вообще возможно такое?

  6. Иван, спасибо за статью!
    Подскажите, если у меня РК размечена через UTM метки и я хочу видеть все события, которые совершили юзеры, чей первый источник попадания на сайт именно моя РК.

    Я должен настроить CID по вашему мануалу, а дальше, как мне сделать отчет о всех ивентах совершенных юзерами у которых моя РК была первоисточником?? (даже если они пришли на сайт через пару дней).

    Подскажите, пожалуйста.

  7. Как получить CID и передать его для отправки формы? Использую form7. Реально такое сделать использую GTM?

Добавить комментарий для jobforacowboy Отменить ответ

Current month ye@r day *