2010-03-08 3 views
2

У меня есть файл JavaScript, который загружен в конце моей HTML-страницы.Сочетание JavaScript для Google Analytics с вашим. (Асинхронное отслеживание.)

Вместо добавления кода сценария для асинхронного отслеживания для 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, где предлагается объединить сценарий с вашим.

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

ответ

1

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

+0

вы случайно не знаете, почему этот метод никогда не упоминается ни в одном из документов Google Analytics? похоже, что они не хотят его одобрять. – Zo72

+0

@lorenzo: Я ответил на это в своем посте: http://stackoverflow.com/questions/2401308/2597908#2597908 –

2

Весь смысл асинхронного фрагмента 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); 
Смежные вопросы