Основываясь на вашем ответе на мой комментарий, ответ на этот вопрос таков:
Google Analytics перешла на новый, более современный способ обработки событий несколько лет назад, позволяя браузерам загружать страницу целиком, не дожидаясь ответа от серверов GA. Если раньше вам предлагали разместить фрагмент <script>
, предоставленный Google, ближе к концу страницы (непосредственно перед закрывающим тегом body), теперь вместо этого вам следует включить тег где-нибудь в разделе <head>
вашего HTML.
Новый сценарий работает, определяя переменную javascript _gaq
как массив, который обрабатывается как очередь. Просмотры страниц, события и другие данные, которые вы хотите отслеживать, помещаются в массив, что практически мгновенно. Когда есть время, код GA проверяет массив на предмет содержимого и извлекает его, обрабатывая запросы к серверу GA, пока массив не станет пустым.
Побочным эффектом переменной _gaq
является то, что тег скрипта должен быть в HTML до того, как на него будет сделана ссылка, иначе вы получите ошибку JS _gaq is undefined
.
Например, как описано здесь в руководстве по отслеживанию событий Google Analytics, вы может захотеть узнать, когда пользователь воспроизводит видео на вашем сайте следующим образом:
<a href="#" onClick="_gaq.push(['_trackEvent', 'Videos', 'Play', 'Baby\'s First Birthday']);">Play</a>
Обратите внимание на ссылку на переменную _gaq
здесь. Если это еще не определено, вы получите сообщение об ошибке.
Краткий ответ: поместите фрагмент асинхронного javascript в <head>
вашего HTML.
person
Tom Harrison
schedule
16.11.2012
<head>
вашего HTML? В более старых версиях GA вы помещали скрипт непосредственно перед закрывающим тегом</body>
. Если он все еще там, скорее всего, проблема. Пока тег скрипта был прочитан и обработан до ссылки на переменную_gaq
, вы не должны получать эту ошибку (даже из IE7 и IE8 !!). - person Tom Harrison   schedule 16.11.2012</body>
- person Dharmalingam Arumugam   schedule 16.11.2012