Что такое ClientID в Яндекс Метрике?

В одной из ранних статей я разбирал что такое Client ID в Google Analytics, но не все знают, что и в Яндекс.Метрике тоже есть ClientID.

Давайте же разберемся и с Метрикой, а начнем с определения:

ClientID — это анонимный идентификатор, который Яндекс.Метрика автоматически присваивает каждому уникальному посетителю сайта.

Идентификатор создается случайным образом и определяет браузер, в котором посетитель просматривает ваш сайт. Следовательно, если посетитель просматривал сайт из двух разных браузеров, в Яндекс.Метрике будет зафиксировано два разных ClientID и два разных пользователя.

Зачем нужен ClientID?

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

В Яндекс.Метрике ClientID используются для передачи параметров посетителей и для отслеживания оффлайн-конверсий.

Параметры посетителей — это расширенная информация о ваших клиентах, например семейный статус или наличие машины, которая известна только вам и хранится в CRM. Передав в Метрику эти параметры, вы сможете совместить их с теми данными, что уже есть в отчетах для более детального анализа аудитории. А также, построив сегмент с применением параметров, вы можете запустить по нему ретаргетинговую кампанию.

Оффлайн-конверсии — это целевые действия пользователей, произошедшие вне вашего сайта. Примером оффлайн-конверсии может служить оплата клиентом ранее выставленного счета по заказу с сайта. Загрузив информацию о таких конверсиях в Метрику, вы сможете видеть более полную картину воронки продаж.

Как фиксировать ClientID?

ClientID создается при первой инициализации счетчика Яндекс.Метрики в новом браузере и сохраняется в куке под названием _ym_uid сроком на два года.

Пример значения куки:

1528651862599277088

Значение _ym_uid состоит из не более чем 20 знаков, причем первые 10 знаков — это дата и время первого посещения сайта в формате UNIX.

То есть:

1528651862 — это 10.06.2018, 20:31:02

599277088 — а эта часть, скорее всего, просто рандомное число.

Получается практически полный аналог ClientID в Google Analytics, в котором время отделено от рандомного числа разделителем в виде точки.

Чтобы получить значение идентификатора посетителя, вам необходимо выполнить простой JS-код:

yaCounterXXXXXX.getClientID() // где вместо XXXXXX должен быть номер вашего счетчика

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

Где в найти ClientID?

Специально настраивать передачу ClientID как в Google Analytics не нужно, разработчики Метрики позаботились о нас с вами. За что им огромное спасибо!

Использовать ClientID в отчетах вы можете в качестве группировки:

  1. Для этого отчете нажмите кнопку «Группировки».
  2. Выберите группировку «Аудитория > ClientID».

ClientID в качестве группировки

После чего вы увидите группировку показателей по конкретным пользователям:

Группировка по пользователям

Помимо группировки, ClientID может быть использован в качестве условия сегментации:

  1. В отчете нажмите значок .
  2. Выберите условие «Характеристики > ClientID».

Сегментация по ClientID

А чтобы найти значение идентификатора в cookies:

  1. Нажимаем F12 в Chrome и в консоли разработчика открываем вкладку «Application».
  2. Фильтруем по «_ym» и видим все куки установленные Метрикой, в том числе и _ym_uid содержащую значение ClientID.

cookies Яндекса

Помимо _ym_uid, на картинке вы можете заметить следующие cookies:

  • _ym_isad — отвечающую за фиксацию факта включения у пользователя блокировщика рекламы.
  • _ym_visorc — содержащую идентификатор Вебвизора.

Что дальше?

В следующих статьях я расскажу о том, как объединить несколько идентификаторов одного и того же клиента в один (UserID), а также о загрузке в Яндекс.Метрику данных по оффлайн-конверсиям.

Полезные ссылки:

17 replies on “ Что такое ClientID в Яндекс Метрике? ”
  1. «А получив идентификатор, вы можете передать его в свою CRM или базу данных вместе с заявкой или транзакцией с сайта.»
    Роман, можете рассказать подробнее, как это сделать?
    Второй вопрос: в одной из Ваших статей Вы рассказали как передать в Метрику Google clientID, а как передать в Analitics clientID Яндекса или свой собственный id?
    Благодарю.

    1. > Роман, можете рассказать подробнее, как это сделать?
      Форма, через которую пользователь отправляет заявку, должна быть проинтегрирована с вашей CRM. И в нее нужно добавить новое скрытое поле, в которое бы при отправке сохранялось значение ClientID получаемое из куки посредством выполнения кода:
      yaCounterXXXXXX.getClientID() // где вместо XXXXXX должен быть номер вашего счетчика

      > как передать в Метрику Google clientID, а как передать в Analitics clientID Яндекса или свой собственный id?
      По тому же принципу. Настраиваете в GA пользовательский параметр куда будете сохранять id, получаете значение из куки и через GTM передаете при срабатывании нужного вам триггера.

      1. Спасибо Роман. Принцип мне понятен. Я не силен в программировании по этому возникла сложность с кодом, мне не понятно как получить id метрики? Client ID я получаю так:
        function() {
        return function(model) {
        model.set(‘dimension1’, model.get(‘clientId’));
        }
        }
        А какой код будет для переменной Yid?
        Благодарю

          1. Не понимаю, куда это прописать? В переменную не получается GTM ругается.

          2. Роман, благодарю Вас за ответы.
            У меня получилось извлечь данные:
            https://uploads.disquscdn.com/images/3897b6a26ef60f96d74947da6b56157b6b3d117f37f85b3364c13b6d1654bcc4.png
            Теперь я пытаюсь передать их через Тег GA в дополнительном поле CustomTask таким образом:
            https://uploads.disquscdn.com/images/b421d574112f4295fdb7a43e2adc40d6396d78b651288229741471b2ac37c27a.png
            Но результата нет.
            https://uploads.disquscdn.com/images/f5768b35d9e43ba46779ba33e9b9acdb66e4dfc9b59c5be143667400d619c4b9.png
            Что я делаю не так?
            Благодарю

          3. Не вижу на вашем последнем скриншоте специальных параметров под номером 2 и 3 (cd2, cd3) в которых должны передаваться значения.
            Вероятно, вы не опубликовали изменения (при условии, что в предпросмотре GTM все работает).

          4. да нет, все опубликовано.
            код переменной getPromoCode:
            function() {
            var promocode = getCookie(‘directpro_promocode’);
            return promocode;
            }
            Код переменной: getYaClientID
            function() {
            var yacid = yaCounter51170627.getClientID();
            return yacid;
            }
            код переменной setClientID: Может здесь что то не так!?
            function() {
            var customDimensionIndex = 1;

            return function(model) {
            model.set(‘dimension’ + customDimensionIndex, model.get(‘clientId’));
            }
            }
            Добавил четвертый дайменшен в виде id сессии, он передается…
            https://uploads.disquscdn.com/images/a86ce1d1f140d2cfad53cdcb3d04d2adcb3554779f454dcce7e19f346bc52c4e.png https://uploads.disquscdn.com/images/8a2e94f0b044d80f8db98fe6fd2f2ae690bcf7fa7017859a12cb0c0028dabad9.png

          5. Роман, я немного разобрался. Дело в том что Тег GA срабатывал при All Pages, но на момент просмотра страниц эти переменные еще не были определены. Я поставил триггер «окно загружено», данные появились в debug в консоли.
            Вопрос.
            Это правильно решение? Или есть какая то возможность определять эти переменные раньше?
            Благодарю

          6. Пользователь может не дождаться полной загрузки окна. Особенно если есть какие-то скрипты, которые тормозят загрузку, поэтому так лучше не делать.
            А переменные нужно отправлять до загрузки GTM-ма, при помощи такой конструкции:

            dataLayer = [{‘promocode’:’тут промокод’, ‘yacid’:’тут значение куки’}];

          7. Здравствуйте!Как вам удалось решить проблему округления и записи значений с количеством знаков 20.
            1544616702161778090 — вместо этого прилетает вот такое значение 1.5446126951016E+19
            т.е. если есть 0 в конце 19 знаков, то значение округляется и записывается ввиде экспоненты.
            С 20 знаками тоже самое. Если меньше, то запись строчкой без округлений и неявных преобразований.
            код простой, присваиваем переменной ID метрики и далее записываем значение в скрытое поле формы. yaCounterXXX.getClientID() — получаем как строку, но при приравнивание к переменной она неявным образом преобразуется в число.
            var clientid = yaCounterXXX.getClientID();
            $(this).find(‘.clientid’).val(clientid);
            Может есть решение?

  2. Роман, здравствуйте! Напишу здесь вопрос. Подскажите, пожалуйста. Есть проблема. Пользователь зарегистрировался по рекламе, ушел с сайта. Затем через 30+ минут вернулся и совершил покупку. У меня повторный визит с покупкой не привязывается к первому визиту с регистрацией. Т.е. в отчете по рекламной ссылке указана только регистрация, а покупки нет. Менял модели атрибуции, все равно конверсии покупки нет. Связано ли это как-то с тайм-аутом визита. У меня стоит по умолчанию — 30 минут. Т.е., конверсии привязываются к первому источнику только если между визитами прошло менее 30 минут? Если больше, то визиты между собой не сопоставляются?

    1. Здравствуйте!
      Без примера данных не смогу корректно ответить.
      Вероятно проблема связана со сменой источника перехода — при первом визите пользователя он был одним, при втором другим. Таймаут влияет лишь на то, начнется ли новая сессия или продолжится старая.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *