Въз основа на вашия отговор на моя коментар, отговорът на този въпрос е
Google Analytics премина към нов, по-модерен начин за обработка на събития преди няколко години, позволявайки на браузърите да зареждат цяла страница, без да се налага да чакат отговор от сървърите на GA. Докато в миналото сте били насочвани да поставите фрагмента <script>
, предоставен от google, близо до края на страницата (точно преди затварящия маркер body), сега вместо това трябва да включите маркера някъде в секцията <head>
на вашия HTML.
Новият скрипт работи, като дефинира javascript променлива _gaq
като масив, който се третира като опашка. Показвания на страници, събития и други неща, които искате да проследите, се изпращат в масива, което е ефективно незабавно. Когато има време, кодът на GA ще провери масива за съдържание и ще го извади, обработвайки заявките към сървъра на GA, докато масивът се изпразни.
Страничен ефект от променливата _gaq
е, че тагът на скрипта трябва да е в HTML, преди да бъде препратен, или в противен случай ще получите JS грешка _gaq is undefined
.
Например както е документирано тук в ръководството за проследяване на събития в Google Анализ вие може да искате да знаете кога потребител пусне видеоклип на вашия сайт по следния начин:
<a href="/bg#" onClick="_gaq.push(['_trackEvent', 'Videos', 'Play', 'Baby\'s First Birthday']);">Play</a>
Забележете препратката към променливата _gaq
тук. Ако вече не е дефинирано, ще получите грешката.
Кратък отговор: поставете фрагмента на async 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