Telegram, Google Analytics, GTM, BiqQuery… На этой неделе наши власти ясно дали понять, что нечего засматриваться на всякие западные бесовские штучки.
Сообщения о сбоях или вовсе отсутствии работоспособности популярных интернет-сервисов и даже банальных Google Таблиц сыпались как из рога изобилия.
Многие сайты не могли корректно загрузиться из-за того, что используемые скрипты, например Google Analytics, были размещены на серверах, ip которых щедро забанил Роскомнадзор.
Какое-то время не работал данный блог. И чтобы восстановить его работоспособность, пришлось комментить код GTM, который подгружал скрипты Google Analytics и Яндекс Метрики. Но совсем без аналитики оставаться нельзя, в результате чего было принято решение захардкодить скрипт Яндекс Метрики, то есть установить его по старинке прямо в шаблона сайта.
Раньше я заглядывал в Метрику, чтобы поиграться с Вебвизором, но видимо теперь придется освоить ее на более продвинутом уровне. Для начала неплохо бы передать в Метрику Client ID пользователя, который присвоил ему счетчик Google Analytics (подробнее о Client ID).
Данный идентификатор будем доставать из cookie _ga
и записывать в параметры посетителей Метрики. Ниже код с моими комментариями, который необходимо разместить в шаблоне вашего сайта перед </head>, но после кода GTM:
<!-- Yandex.Metrika counter --> <script type="text/javascript" > // Читаем куку содержащую Client ID function getCookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } var google_client_id = getCookie('_ga') ? getCookie('_ga').slice(6) : ''; // Сам код счетчика. Не забудьте заменить '11111111' в идентификаторе счетчика на свой номер (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter11111111 = new Ya.Metrika({ id:11111111, clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, // Передаем Client ID в параметры пользователей userParams:{ "GoogleClientID": google_client_id, } }); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript><div><img src="https://mc.yandex.ru/watch/11111111" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter -->
После размещения код нужно протестировать:
- Для этого заходим по ссылке http://yoursite.ru/?_ym_debug=1
- Открываем консоль F12
- И проверяем передался ли просмотр страницы (PageView) и параметр посетителя (User params)
- Через некоторое время проверяем появились ли параметры в Метрике.
Видим User params и PageView:
Радуемся наличию Google Client ID в Метрике:
Зачем все это нужно?
А затем, чтобы можно было сопоставить данные двух систем между собой и обогатить их.
Что дальше?
Теперь я исповедую такой подход — Google Analytics устанавливается и настраивается как и раньше, через GTM. Но параллельно в коде сайта хардкодится Яндекс Метрика, настраивается фиксация ключевых целей, в параметры которых дублируются Event Category
, Event Action
, Event Label
и Event Value
событий Google Analytics (об этом в одной из следующих статей).
Это позволит не остаться без аналитики при блокировке Google, чего я очень надеюсь, никогда не произойдет, но, как говорится, бережёного бог бережёт.
- Как правильно организовать работу с гипотезами? - 21.11.2023
- Кейс: как построить отдел аналитики в большой компании? - 06.05.2023
- Учимся применять оконные функции - 29.09.2020