Можно ли разместить аналитику Google во внешнем JS? - PullRequest
5 голосов
/ 05 марта 2011
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-123-2']);
  _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>

Помимо проблем с кэшированием (если я изменил свой идентификатор отслеживания), нужно ли что-то еще знать? Это все еще будет функционировать? Он рекомендует поставить его до </head>, все мои другие JS до </body>, можно ли его поставить там?

Ответы [ 2 ]

5 голосов
/ 05 марта 2011

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

2 голосов
/ 05 марта 2011

Весь этот код на самом деле находит первый элемент сценария в DOM и помещает новый элемент сценария непосредственно перед ним. Новый элемент скрипта в значительной степени эквивалентен:

<script type="text/javascript" async src="https://ssl.google-analytics.com/ga.js">

на страницах HTTPS и:

<script type="text/javascript" async src="http://www.google-analytics.com/ga.js">

на страницах HTTP.

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

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

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

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

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