Как получить идентификатор клиента при отправке данных в GA с использованием протокола измерения?

Я пробовал использовать analytics.js (Universal Analytics) как через интерфейс (js), так и через сервер (протокол измерения).

При использовании через внешний интерфейс (способ js):
я проверяю наличие файла cookie с именем _ga со значением GA1.2.1360127879.1438853622 . И он отправляет данные в GA с cid=1360127879.1438853622 через запрос 'http://www.google-analytics.com/collect?...' . Я знаю, что 1360127879 — уникальный идентификатор, а 1438853622 — отметка времени.

При использовании через серверную часть (Measurement Protocol):
У меня есть несколько вопросов:

1. Как я могу получить идентификатор клиента из браузера?

Один из способов - прочитать файл cookie _ga из бэкэнда и проанализировать из него идентификатор клиента. Но я читал, что это не рекомендуется. Потому что Google может изменить формат в любое время. Где-то я читал это использование:

 ga(function(tracker) {
 var clientId = tracker.get('clientId');
 });

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

2. Что такое идентификатор клиента? Это уникальный идентификатор или комбинация unique_id.timestamp. Что я должен отправить в GA из бэкэнда?




Ответы (1)


Если вы посмотрите на веб-сайт, использующий рекомендуемый фрагмент JavaScript Google Analytics, вы увидите, что идентификатор клиента, который он отправляет, выглядит примерно так:

324729700.1423421585

И значение, сохраняемое в файле cookie _ga, выглядит примерно так:

GA1.3.324729700.1423421585

Обратите внимание, что последние две части одинаковы, а отличается только часть GA1.3.

Единственная часть, о которой вам нужно позаботиться, — это идентификатор клиента, который отправляется в Measurement Protocol., поэтому, если у вас есть доступ к файлу cookie _ga с сервера, вам следует удалить префикс GAX.X. и просто отправить остальные.

Но я читал, что это не рекомендуется. Потому что Google может изменить формат в любое время.

Это неправда. Срок действия этих файлов cookie составляет два года, поэтому они, вероятно, не будут изменены. И подумайте об этом, если бы Google изменил их, данные для миллионов веб-сайтов внезапно оказались бы неверными, поэтому у них нет веских причин для этого.

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

Обновление:

Чтобы ответить на ваш второй вопрос, отметка времени является частью идентификатора клиента, не удаляйте ее. Отметка времени используется, чтобы сделать идентификатор «более уникальным».

person Philip Walton    schedule 06.08.2015
comment
Google может изменить формат файла cookie в любое время. Поскольку строка GA1.3, скорее всего, является идентификатором версии формата, они смогут даже перенести форматы на лету после изменения. - person Axel Amthor; 02.12.2015