#javascript #google-analytics #e-commerce
#javascript #google-analytics #электронная коммерция
Вопрос:
У меня на странице окончательного оформления заказа есть следующий код для отслеживания транзакций электронной коммерции. Однако после нескольких транзакций я не вижу ни одной транзакции в учетной записи analytics. Я включил опцию электронной коммерции в своей учетной записи analytics. Может кто-нибудь указать, есть ли какие-либо проблемы в следующем коде, или предложить инструменты для отладки этого.
Это находится внутри тега body
<body>
...
...
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'xxx']);
_gaq.push(["_setDomainName", ".abc.com"]);
_gaq.push(["_setAllowLinker", true]);
_gaq.push(['_trackPageview']);
_gaq.push(['_addTrans',
'456', // order ID - required
'EcoStrip', // affiliation or store name
'34.95', // total - required
'0.0', // shipping
'Santa Clara', // city
'California',
'USA'
]);
_gaq.push(['_addItem',
'456', // order ID - necessary to associate item with transaction
'67333', // SKU/code - required
'USB EcoStrip 2.0 Energy Saving Power Strip', // product name
'Office', // category or variation
'34.95', // unit price - required
'1'
]);
//Now submit the transaction
_gaq.push(['_trackTrans']); //submits transaction to the Analytics server
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
Комментарии:
1. У меня похожая проблема, вы когда-нибудь решали свою проблему?
Ответ №1:
Одна из возможных причин: в вашем addTrans
вызове отсутствует параметр между общим параметром и параметром доставки: параметр tax. Если вы не взимаете налог, вы можете просто жестко ввести это значение в ‘0’.
_gaq.push(['_addTrans',
'456', // order ID - required
'EcoStrip', // affiliation or store name
'34.95', // total - required
'0', // tax
'0.0', // shipping
'Santa Clara', // city
'California',
'USA'
]);
Без параметра tax все параметры после total уменьшаются на единицу. Итак, налог установлен в 0, для доставки установлено значение «Санта-Клара», для города установлено значение «Калифорния», для штата / региона установлено значение «США», а для страны установлено значение «не определено».
Подробности см. в статье справочного центра Google Analytics.
Теперь, даже если вы это исправите, это не гарантированно станет источником ваших проблем. Но это только начало.
Что касается отладки этого, Google Analytics выпустила очень полезное расширение Chrome для отладки Google Analytics, которое называется Google Analytics Tracking Code Debugger.
Комментарии:
1. Спасибо, я обновил код, давайте посмотрим, работает ли он. Имеет ли значение размещать этот код в теге <body>, а не в теге <head>. Я подожду несколько часов, чтобы посмотреть, отразится ли это.
2. Нет, не имеет значения, где он размещен, главное, чтобы данные вашей электронной коммерции были заполнены.
Ответ №2:
Я создал на заказ многодоменную платформу электронной коммерции (разрабатывался 2 года), вся внутренняя часть выполнена на T-SQL / MSSQL 2008, а интерфейс работает на PHP 5.3 Apache и недавно был перенесен с C # на IIS7. С момента перехода на PHP отслеживание срабатывает только несколько раз.
Должно быть, есть какая-то разница в способе обслуживания страниц IIS по сравнению с PHP, и это приводит к тому, что отслеживание не работает. Или, возможно, Google не хочет, чтобы он работал каждый раз, чтобы сэкономить на обращениях к серверу.
Я использовал инструмент отладки GA, точно следовал инструкциям Google, и по-прежнему маяк отправляется только при первом попадании на сайт или при нажатии кнопки обновления страницы Chrome.
У кого-нибудь была подобная проблема? Код корректен на 100%, я даже пытался удалить все другие JavaScript со страницы, и я всегда очищаю кэш браузера при тестировании.
Если кто-нибудь может сказать мне, почему это происходит, отлично, но пока у меня есть работа, которую другие люди могут счесть полезной. Это заставит их отслеживание отслеживать каждый раз.
Короче говоря, исправление заключается в том, чтобы браузер каждый раз полностью анализировал (если это правильный термин) весь javascript на странице. Есть много способов сделать это, мой подход заключается в создании PHP-файла, который не поддерживает кэширование и имеет небольшой размер файла. Возможно, это излишество — я не знаю, но это работает. Файл php должен быть вызван anything.php и содержит только следующий код.
(function GA_FIX(){
var gafix = '<?php echo md5(rand(1,20));?>';
})
Возможно, вы захотите добавить заголовки php, чтобы установить тип mime на text / javascript, и заголовки cache expires в зависимости от вашей конфигурации Apache. Например, если у вас включено кэширование для файлов .js.
Теперь ссылка на этот файл с вашего сайта непосредственно перед кодом отслеживания GA, подобным этому. Ваш код отслеживания должен находиться непосредственно перед закрывающим тегом head.
<script type="text/javascript" src="/path_to_php_file.php"></script>
<!-- google tracking code here-->
Ваше отслеживание GA теперь будет работать в 100% случаев. Это опробовано и работает, пока я жду официального ответа, в котором говорится мне (и остальным из вас), как заставить его работать.