Сочетание JavaScript для Google Analytics с вашим. (Асинхронное отслеживание.) - PullRequest
2 голосов
/ 08 марта 2010

У меня есть JavaScript файл, который загружается в конце моей HTML-страницы.

Вместо того, чтобы добавлять код сценария для асинхронного отслеживания для Google в еще один сценарий, я бы лучше совместил два сценария вместе.

Итак, вместо этого:

    <html>
        ...

        <script src="myScript.js">

        <!-- google analytics -->
        <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';
                (document.getElementsByTagName('head')[0] ||
                 document.getElementsByTagName('body')[0]).appendChild(ga);
            })();
        </script>
    </html>

У меня был бы этот фрагмент кода во втором теге сценария в конце моего «myScript.js».

Я не нашел ни одного места в документации Google, где предлагается объединить скрипт с вашим.

Как я могу решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 08 апреля 2010

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

Если вы хотите поместить его в отдельный файл .js, чтобы фрагмент кода можно было кэшировать на стороне клиента, это здорово! Но обязательно загрузите его до других ваших скриптов:

<script src="analytics-snippet.js"></script>
<script src="other-scripts.js"></script>

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

Также вы можете заменить:

(document.getElementsByTagName('head')[0] ||
             document.getElementsByTagName('body')[0]).appendChild(ga);

С:

(document.head || document.getElementsByTagName('head')[0] || document.body).appendChild(ga);
1 голос
/ 08 марта 2010

Объединение скриптов работает абсолютно нормально (на самом деле, я сделал это на одном из моих сайтов). Пока порядок кода Google остается прежним, он будет отлично работать.

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