Подтвердить что ты не робот

Что такое идентификатор клиента при отправке данных отслеживания в Google Analytics через протокол измерений?

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

На этой странице указывается идентификатор клиента: https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide#required

И эта страница говорит, что она необязательна: https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#visitor

Кроме того, формат, определенный в этих документах, отличается: первая страница дает целое число в качестве примера и просто говорит, что это "уникальное значение", а вторая ссылка указывает, что он должен быть UUID.

Если я отправлю либо идентификаторы пользователя, либо сгенерированные UUID на моем бэкэнд, как Google узнает, чтобы связать этого посетителя с существующей сессией посетителя? Похоже, мне нужно будет получить внутреннюю ссылку GA для существующего пользователя.

Любая помощь приветствуется - спасибо!

4b9b3361

Ответ 1

Целое или UUID

cid является эквивалентом второго значения в cookie _utma, когда вы используете отслеживание javascript. В отслеживании js это случайное целое число (сгенерированное Math.round(2147483647 * Math.random())). Но он сохраняется и отправляется как строка: поэтому вы можете использовать оба формата (integer или UUID).

Обязательный/Дополнительно

При отслеживании js запрос, отправленный с отсутствующим идентификатором пользователя, игнорируется серверами Google Analytics. Предположим, что это необходимо.

Связать веб-посетителя с действиями протокола измерений

Если вы хотите связать своего бэкэнд-пользователя с посетителем, ранее отслеживаемым с помощью javascript Google Analytics ga.js, вы можете получить значение cid из файла cookie _utma. Но я не рекомендую это; каждый раз, когда он изменяется (смена терминала или браузера, очистка файлов cookie и т.д.), вы потеряете связь с предыдущими действиями своего клиента.

Обновление

analytics.js не существовало, когда задавался вопрос. cid теперь сохраняется в файле cookie _ga. Вы можете получить его в javascript с помощью:

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

С учетом этого, когда вы получите clientId из трекера, как в приведенном выше коде, он не даст вам UUID, а два случайных 32-битных целых числа в формате "X.Y". Эта реализация может измениться в UUID в будущем.

Или установите его с вашим собственным значением (например, с помощью UUID с помощью backend):

ga('create', 'UA-XXXXX-Y', {'clientId': 'your_client_id'});

Ответ 2

В Rails:

  def save_google_analytics_client_id
    if current_user && cookies["_ga"]
      client_id = cookies["_ga"].split(".").last(2).join(".")
      if current_user.google_analytics_client_id != client_id
        current_user.google_analytics_client_id = client_id
        current_user.save
      end
    end
  end

Ответ 3

Я использую node с модулем экспресс и универсальной аналитики и решил использовать cid, встроенный в cookie _ga, а не генерировать мою собственную сторону сервера cid.

my server.js выглядит так...

app.use(function(req, res, next) {
  if(req.session && (!req.session.cid) && req.cookies._ga){
    //Use the cid already embedded in the _ga cookie and save to session so I can access from socket routes
    var gaSplit = req.cookies._ga.split('.');
    req.session.cid = gaSplit[2] + "." + gaSplit[3];
  };
  next();
});  

Затем позже я могу это сделать.

ua = require('universal-analytics')
var visitor = ua('UAXXX', req.session.cid)

НТН