гугл аналитика ловушка 22

У меня здесь проблема с кодом отслеживания Google Analytics. У меня есть форма, которая при отправке отправляет данные в API. Недавно мы решили записать эту отправку как транзакцию электронной торговли с кодом отслеживания Google Analytics. Транзакция не записывается до тех пор, пока приложение не будет отправлено и не вернет данные из API. Это связано с тем, что в транзакцию включены данные из API.

Проблема в том, что форма также автоматически сохраняет данные в базе данных, так что, если форма не полностью заполнена и / или отправлена, автоматический скрипт php может забрать ее позже для отправки в api.

Теперь улов 22

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

3 решения, которые не работают

  1. Отправка транзакции на стороне сервера в ga. Это возможно, но в этом сценарии все данные, которые Google Analytics собирает от клиента, поступают с сервера, что устраняет всю цель использования Google Analytics с самого начала.

  2. Отправка транзакции до отправки формы. Помните, что нам нужно получить данные из API для отправки в транзакцию.

  3. Сохранение информации о клиенте в базе данных для включения в заголовки при отправке транзакции на сервере в Google Analytics. Что-то вроде этого, вероятно, сработает, если я обновлю всю информацию, которую Google Analytics собирает о клиенте, о том, как подделать мой IP-адрес, и у меня будет время для создания такого решения.


person Adam McMahon    schedule 13.01.2011    source источник


Ответы (4)


Используйте AJAX для автосохранения и используйте SUBMIT для окончательного обновления.

person Diodeus - James MacFarlane    schedule 13.01.2011
comment
Я использую ajax для автосохранения. Извините, я подумал, что это подразумевалось. - person Adam McMahon; 13.01.2011
comment
Рассмотрите возможность использования _trackPageView для более контролируемой отправки ваших данных. - person Diodeus - James MacFarlane; 13.01.2011

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

Итак, ваш JS-код будет выглядеть так:

var pageTracker = _gat._getTracker("UA-XXXX-1");
pageTracker._setLocalServerMode(); //this disables external GA calls. 
pageTracker._setLocalGifPath("/foo/bar.gif");
pageTracker._trackPageview(); //or your transaction calls

Глядя на URL-запрос, который это делает по сравнению с обычным запросом __utm.gif, кажется, что единственное, что не хватает, - это параметр utmcc, который, похоже, является версией файлов cookie Google Analytics с кодировкой URL. Вы также захотите отслеживать это (вне document.cookie или на стороне сервера), чтобы вы могли добавить его в строку запроса при выполнении запроса Google Analytics. Это важно, потому что именно здесь хранится информация о сеансе и источнике; в противном случае ваше отслеживание не будет иметь контекста.

Затем на сервере bar.gif можно переписать в bar.php, который фиксирует строку запроса и заголовки запросов, которые Google отправил бы на свои серверы (первостепенное значение имеют строка запроса и пользователь строка агента и IP-адрес); , а затем добавляет необходимые данные, затем берет результирующую строку запроса и делает запрос cURL к версии этого URL-адреса Google Analytics с поддельными заголовками для браузера и т. д.

person Yahel    schedule 20.01.2011

Если вы не можете использовать асинхронный код отслеживания для отправки данных после того, как API вернет необходимые биты данных, разумного пути нет. Описанный выше метод хорош и все такое, но он все равно потребует от вас подделки IP-адресов в Google, поскольку IP-адрес считывается из входящего вызова, и это снова будет сервер.

По моему опыту, Google Analytics не подходит для таких случаев (отслеживание на стороне сервера).

person Sampsa Suoninen    schedule 24.01.2011

Есть вопрос об отправке обращений Google Analytics со стороны сервера по адресу # 1027660, в котором есть несколько предложений по созданию щелчка на стороне сервера.

Хотя это противоречит вашему «так нельзя делать №3», вы можете обнаружить, что это выглядит достаточно простым, чтобы его стоило нарушить.

Удачи!

person Owen Blacker    schedule 05.09.2011