1 Client ID - 2 разных профиля посетителя в Яндекс.Метрике. Как?

04 марта, 2022

Почему в Яндекс.Метрике в разделе Посетители и клиенты по фильтрации Client ID вы можете видеть две разные карточки пользователя с одинаковым идентификатором пользователя Client ID? Как такое возможно? Попробуем разобраться.

Тот, кто глубоко изучал принцип работы счетчиков веб-аналитики и их функционал, знает, что одной из ключевых характеристик при сборе данных и отслеживании действий, совершаемых конкретным посетителем вашего сайта, является его уникальный идентификатор пользователя (он же Client ID).

Client ID (client id, cid, уникальный идентификатор пользователя) - это метка, состояющая из случайного числа и даты первого посещения пользователем сайта в Unix формате, которая сохраняется в основном файле cookie (для Google Analytics - _ga, для Яндекс.Метрики - _ym_uid) в течение определенного периода времени. Она создается сразу же после того, как посетитель впервые зайдет к вам на сайт.

Примеры Client ID:

  • _ga=GA1.2.619217801.1551898268 (Google Analytics);
  • _ym_uid=1551977723718998723 (Яндекс.Метрика);

Client ID в Яндекс.Метрике создается случайным образом и определяет браузер, в котором посетитель просматривает сайт. Если вы заходили на один и тот же сайт, например, с браузеров Google Chrome и Opera, в Яндекс.Метрике будет зафиксировано два разных Client ID.

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

Client ID = Пользователь - это верхний уровень организации данных в Яндекс.Метрике. Всего их можно выделить 3:

  1. визит;
  2. хит;
  3. пользователь.

Визит (сессия, сеанс) - последовательность действий, активность (просмотр страницы, переход по внешним ссылкам, нажатие на кнопку, отправка формы, загрузка файлов и т.д.) одного посетителя на сайте.

Каждый раз, когда пользователь заходит на сайт и просматривает какую-нибудь страницу, Метрика получает об этом информацию. Несколько просмотров страниц, совершенных одним пользователем, Метрика объединяет в один визит. Визит начинается с перехода на сайт из какого-либо внешнего источника и завершается, если активность пользователя отсутствует в течение определенного времени. По умолчанию - 30 минут (можно менять в настройках Яндекс.Метрики параметр тайм-аут визита).

Например, если пользователь перешел на ваш сайт из поиска, просматривал одну страницу 15 минут, затем перешел на другую, а потом сразу ушел и через 25 минут вернулся на сайт по ссылке из социальной сети, все эти просмотры будут объединены в один визит продолжительностью 40 минут с источником Переходы из поисковых систем.

Визиты являются основными данными для построения отчетов в Метрике.

Уровни организации данных в Яндекс.Метрике

Хит (обращение, hit) – взаимодействие пользователями с сайтом, в результате которого данные отправляются в аналитику. Например:

  • просмотр страницы;
  • клик по кнопке;
  • просмотр видео;
  • транзакция.

При заходе посетителя на сайт сразу отправляется первый хит – просмотр страницы (PageView). Все эти хиты совершаются в рамках визита, а совокупность визитов одного и того же посетителя - это и есть Пользователь.

Пользователь (посетитель, user) – совокупность визитов, которые совершаются с одного и того же браузера и имеют один файл cookie. Фактически, пользователи – это уникальный cookie-файл (Client ID, cid) за определенный период времени.

Зная свой Client ID, вы можете в Яндекс.Метрике найти и проанализировать все свои визиты, достигнутые цели и события за весь отслеживаемый период. Сделать это можно следующим образом: перейдите на сайт, откройте консоль разработчика (F12 в Google Chrome) и вкладку Console. Введите команду document.cookie и нажмите Enter.

Найдите куку с названием _ym_uid. Скопируйте ее значение. Это и будет ваш уникальный идентификатор пользователя для Яндекс.Метрики:

Кука _ym_uid

Значение файла cookie можно найти и по-другому. Перейдите в консоли разработчика на вкладку Application – Cookies. Там выберите ваш домен и в таблице справа найдите куку _ym_uid напротив которой в столбце Domain будет отображен ваш домен! Это важно, поскольку помимо основных файлов cookies (вашего домена) там могут быть сторонние файлы куки (сторонних доменов):

Application - Cookies

У Яндекс.Метрики есть и другие файлы cookies:

  • _ym_uid – содержит ClientID Яндекс.Метрики;
  • _ym_visorc_XXXXXXXX - содержит идентификатор Вебвизора и позволяет воспроизведение сеанса работать правильно;
  • _ym_isad - определяет, включен ли у пользователя блокировщик рекламы или нет;
  • _ym_d - содержит дату первого посещения сайта посетителем;

Про временные файлы, установленные Яндекс.Метрикой, читайте в официальной документации.

Затем вы можете взять часть этой куки (первые 10 цифр) и вставить ее в конвертер Epoch Unix Time Stamp Converter, который выдаст вам дату вашего первого посещения сайта. В моем примере - это цифры 1623097982, а полученная дата - 7 июня 2021 года:

Timestamp Converter - 7 июня 2021 года

7 июня 2021 года - это дата, когда я впервые зашел на свой сайт и мне был присвоен уникальный идентификатор пользователя 1623097982549043867 в системе. Я заходил на него и раньше, просто в браузере иногда чищу историю посещений. Поэтому старый Client ID затирается и создается новый.

Взяв собственный Client ID, я могу перейти в отчет Посетители и клиенты и там отфильтровать данные по этому значению:

Отчет "Посетители и клиенты"

Вы увидите себя как посетителя и все сведения о предудыщих визитах, включая тип устройства, операционную систему, дату первого визита (она равна дате 7 июня 2021 г.), дату последнего визита, активность, общее количество визитов и проведенное время на сайте, количество достигнутых целей, покупок и т.д.:

Фильтр посетителя по Client ID

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

Карточка пользователя

Именно Client ID позволил системе объединить все данные в единое целое и представить визиты и обращения в виде последовательности совершаемых пользователем событий с момента его первого посещения.

Но в Яндекс.Метрике может быть такое, что когда вы фильтруете данные по Client ID в отчете Посетители и клиенты, вы видите не одного посетителя и его карточку, а две:

1 Client ID - 2 разных профиля посетителя

Получается, что для одного Client ID -> две карточки пользователя с разными данными. Почему так происходит?

Чтобы ответить на этот вопрос, пришлось обратиться к техподдержке Яндекса. Они ответили следующее:

Все дело в двух параллельных системах учета. Метрика отличает посетителей по идентификатору yandexuid, а Client ID необходим для привязки данных в Метрике с данными вне отчетов (например, для загрузки параметров посетителей или офлайн-конверсий).

При этом у одного Client ID может быть несколько yandexuid'ов - отсюда несколько одинаковых Client ID с разными датами первого визита в отчетах и ответах API, так как внутри Метрика оперирует именно yandexuid. Client ID выдается на домен как основной файл cookie (first-party cookie), а yandexuid - это кросс-доменный идентификатор и сторонний файл cookie (third-party cookie). Иногда, если выставить third-party cookie невозможно (например, из-за политик браузера), yandexuid будет перевыпущен, а Client ID при этом сохранится. Это происходит в небольшом проценте случаев и существенно не влияет на данные в отчетах.

Это очень интересная и ценная информация, которой нет в официальной справке Яндекса. Получается, что Метрика учитывает не только уникальный идентификатор пользователя _ym_uid, но и стороннюю куку yandexuid при кросс-доменном отслеживании:

yandexuid

Преимущественно, Яндекс.Метрика идентифицирует посетителей по Client ID. Но могут наблюдаться случаи, в которых ранее уже приходившему посетителю будет назначен новый идентификатор. Благодаря yandexuid Метрика может связать посетителя, идентификатор которого был изменен, и вы сможете увидеть в отчете его полную историю посещений, не смотря на разрыв. Собственно, так и происходит когда вы видите две карточки посетителя с одним Client ID в отчете Посетители и клиенты.

Еще Яндекс сохраняет в браузере yandex_login - логин вашего аккаунта Яндекса, в котором вы в данный момент авторизованы.

yandex_login

Таким образом, комбинация _ym_uid, yandexuid и yandex_login (а также по ряду других параметров, которые компания не раскрывает из-за конфиденциальности) дает возможность Яндексу более точно записывать=связывать все действия пользователя и идентифицировать его на различных устройствах.

Получайте бесплатные уроки и фишки

По контекстной, таргетированной рекламе и аналитике