Где я должен поместить асинхронный фрагмент Google Analytics - PullRequest
0 голосов
/ 26 сентября 2011

Google говорит

Асинхронный фрагмент должен появиться в верхней части вашей страницы до закрывающий тег.

И дает это:

<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>

Могу ли я создать этот внешний файл .js или он должен быть на самой html-странице?

Ответы [ 2 ]

3 голосов
/ 26 сентября 2011

Фрагмент может быть загружен любым способом.Если вы хотите включить его во внешний файл, вырубитесь.Google рекомендует поместить его в <head>, чтобы максимизировать количество отслеживаемых просмотров страниц, но вы также можете легко загрузить его в <body> без проблем, либо из внешнего файла JavaScript, либо даже из динамически внедренного файла JavaScript.Все, что должно произойти, - это выполнение фрагмента;ga.js позаботится обо всем остальном.

Даже если ваш браузер кэширует сам код, он все равно будет выполнять ga.js (который сам может быть кэширован), но данные, которые он отправляет в Google Analytics, очень сильнокеш накрылся.Ваш браузер не сможет кэшировать этот запрос, даже в самых строгих прокси-средах.

Способ, которым ваши аналитические данные "отправляются" в Google Analytics, заключается в том, что ga.js после сбора всех аналитических данных из среды, ваших настроек и файлов cookie, которые он устанавливает, объединяет все эти значения вСтрока запроса для динамического запроса изображения (запрашивается с помощью JavaScript и фактически не внедряется в DOM.) Эти запросы имеют параметры очистки кэша, а также данные, которые обычно уникальны для каждого запроса.

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

Cache-Control:private, no-cache, no-cache=Set-Cookie, proxy-revalidate
Expires:Wed, 19 Apr 2000 11:43:00 GMT
Pragma:no-cache
0 голосов
/ 26 сентября 2011

Фрагмент должен находиться на самой странице.

Если фрагмент находится во внешнем файле JS, браузер будет кэшировать файл, и фрагмент будет генерировать попадание только на первую загруженную страницу из вашего файла.site.

Существуют более изощренные способы вызова API сниппета из Javascript, если это необходимо - они в основном используются для отслеживания специальных событий, таких как нажатия кнопок и т. д.

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