Каков рекомендуемый способ добавления кода Google Analytics и почему? - PullRequest
3 голосов
/ 08 января 2011

Я читал во многих источниках, что рекомендуемый Google способ добавления кода GA ( ссылка ) может замедлить загрузку страницы.Сам StackOverflow размещает его не в заголовке (как рекомендует Google), а в нижней части страницы.

Итак, я должен пойти с Google, StackOverflow - или я должен использовать getScript jQuery?

Ответы [ 7 ]

6 голосов
/ 08 января 2011

Google Analytics рекомендует размещать асинхронный фрагмент непосредственно перед тегом </head>.

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);

  (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>, чтобы предотвратить блокировку загрузки страницы.Это больше не серьезная проблема.

Единственный способ, которым этот сценарий будет блокировать, - это создание простого массива JavaScript, вставка некоторых базовых значений, а затем выполнение анонимной функции.Браузер будет продолжать и продолжать загрузку, в то время как в фоновом режиме браузер запросит ga.js с серверов Google, а затем выполнит запрос __utm.gif на серверы Google с информацией отслеживания.

Поскольку этот сценарий вставлен неблокирующим асинхронным способом , он не препятствует своевременной загрузке вашего контента.Размещение на этой ранней стадии позволит вам отслеживать больший процент людей, в том числе тех, кто щелкает, когда загружена только часть тела.Кроме того, это снижает вероятность возникновения ошибки, если на вашей странице отслеживание по событиям.

Кроме того, поскольку Google Analytics почти всегда подается с одного из двух URL-адресов (версии Google для HTTP и HTTPS), файлскорее всего, кешируется практически в любом браузере ваших пользователей, а это означает, что сам скрипт не нужно переносить.

Проще говоря, лучшие результаты гарантируются, если вы поместите этот фрагмент в конец тега </head>.

2 голосов
/ 08 января 2011

Лучший способ - использовать асинхронную аналитику. Для отслеживания каждого клика, загрузок и т. Д. *

Вы можете найти всю информацию здесь: http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html

Edit: Всегда следуйте рекомендациям по коду Google, это лучшая практика.

1 голос
/ 07 марта 2013

$. GetScript, по умолчанию добавит текущую метку времени в URL, чтобы избежать кэширования.Так что, если вы используете его, это должно быть отключено.(Включите кэширование «вкл.»)

http://blog.yjl.im/2010/09/jquerify-google-analytics-tracking-code.html

Что-то подобное может работать.Это меньше кода, чем javascript от Google.

$.ajax(('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js', {dataType: 'script', cache: true})

Также обратите внимание, что вскоре он будет заменен универсальным аналитическим кодом "isogram".

1 голос
/ 08 января 2011

Асинхронная версия в конце вашего <body>.

т.е:.

  <script>
   var _gaq = [['_setAccount', 'UA-xxxxxxx-1'], ['_trackPageview']];
   (function(d, t) {
    var g = d.createElement(t),
        s = d.getElementsByTagName(t)[0];
    g.async = true;
    g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    s.parentNode.insertBefore(g, s);
   })(document, 'script');
  </script>
</body>
1 голос
/ 08 января 2011

Я недавно опубликовал небольшой плагин jQuery, чтобы справиться с этим для вас.Он реализует предложения Google по асинхронному отслеживанию, но с оттенком магии jQuery.Вы можете найти его:

Крошечный, нечеткий асинхронный плагин Google Analytics для jQuery https://github.com/mekwall/jquery-ga

1 голос
/ 08 января 2011

Переполнение стека использует более старую «традиционную» версию кода отслеживания Google, которая работает синхронно. Google рекомендует , чтобы эта версия была размещена непосредственно перед </body>.

Ссылка, на которую вы ссылаетесь, предназначена для обновленного кода отслеживания, который выполняется асинхронно и должен быть помещен в <head>

Итак, вы должны использовать последний (асинхронный) фрагмент Google в <head> вашего сайта.

0 голосов
/ 19 апреля 2012

Как объяснено здесь:

https://developers.google.com/analytics/devguides/collection/gajs/#SplitSnippet

Если ваши страницы загружаются медленнее (конечно, мои были), вы можете разделить код на две части, поместив первую в

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXX-X']);
  _gaq.push(['_trackPageview']);
</script>

и вторая у подножия, чуть выше

<script type="text/javascript">
  (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>

После этого мои страницы загружаются так же быстро, как и раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...