Я использую Google Analytics для базовой аналитики своего веб-приложения — просто отслеживаю показы страниц с помощью таких вызовов javascript:
ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com');ga('send', 'pageview')
Этот подход всегда расстраивал меня, потому что я не мог надежно зафиксировать некоторые события на стороне сервера. Я только что обнаружил, что могу использовать протокол измерений для записи событий на стороне сервера. Запись событий на моем сервере выглядит просто, за исключением параметра cid (clientid)...
Я понимаю, что в браузере с javascript, который у меня сейчас есть, cid создается случайным образом, а затем сохраняется в файле cookie _ga. Я также понимаю, что я должен разделить это значение clientid/cid между вызовами клиента («просмотр страницы») и сервера (другие события) для одного и того же клиента, чтобы они были связаны друг с другом.
Этот StackOverflow ссылка была для меня полезной ссылкой.
Вопрос: должен ли я
- Создайте clientid на сервере, а затем поделитесь им с клиентом; или
- Должен ли я позволить javascript на клиенте создать clientid, а затем попытаться поделиться им с моим сервером? (подозреваю, что это лучший ответ)
Для (1) я думал, что могу сделать следующее:
- Сохраните UUID в сеансе на сервере (который является движком приложения Google)
- Непосредственно используйте этот UUID, когда я использую протокол измерений для создания событий непосредственно на стороне сервера.
Используйте тот же UUID, когда я создаю объект ga на странице с помощью jsp:
ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com', {'clientId': '<%=[value from the session]%>'});
Что меня беспокоит в этом подходе, так это то, что идентификатор будет сохраняться только во время сеанса на сервере. Я думаю, что цель clientId (cid) заключается в том, чтобы он сохранялся для клиента в течение длительного периода... Поэтому я думаю, что потеряю представление о том, кто является новым, а кто вернувшимся пользователем?
Для (2), честно говоря, я не знаю, как это сделать... Из приведенной выше ссылки StackOverflow я знаю, что могу получить cid из параметров clientId в объекте ga. Я не знаю, как я отправлю его обратно на свой сервер (вероятно, это простой вопрос javascript).
Определенно был бы признателен за совет о том, какой подход использовать .... спасибо!