Верх страницы
Обложка к записи Оптимизация асинхронного вызова Google Analytics
Время для прочтения: 0 мин. 6 сек.

Оптимизация асинхронного вызова Google Analytics

Google Analytics — веб-аналитика корпоративного уровня от компании Google, внедряемая на страницу при помощи JavaScript.

Стандартный асинхронный код подключения Google Analytics громоздкий и не оптимизированный. Исправим данный недочёт.

По умолчанию сниппет выглядит следующим образом:




 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);
 })();


После проведения оптимизации Матиасом Байненсом (Mathias Bynens) сниппет принимает вид:



 var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
 (function(d, t) {
  var g = d.createElement(t),
    s = d.getElementsByTagName(t)[0];
  g.src = '//www.google-analytics.com/ga.js';
  s.parentNode.insertBefore(g, s);
 }(document, 'script'));

Получаем 270 байт против оригинальных 440 байт. А после минимизации и того меньше. Подробнее смотрите в статье автора. Вопросы в комменты.

Используйте getElementsByTagName('script')[0], так как ни body, ни html может просто не быть на странице

Используйте insertBefore, так как если родитель вдруг не до конца загружен, вызов appendChild у него приведет к ошибке

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Предыдущая запись
Следующая запись

Давайте дружить
в Телеграме

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы