1- // идентификатор счетчика Yandex.Metrica
1+ // идентификаторы счетчиков
22const yandex_metrica_id = 106339628 ;
3+ const google_analytics_id = 'G-27VECDGS20' ;
34
4- // Yandex.Metrika counter (счетчик посещаемости)
5+ // --- Инициализация Yandex.Metrika ---
56( function ( m , e , t , r , i , k , a ) {
67 m [ i ] = m [ i ] || function ( ) { ( m [ i ] . a = m [ i ] . a || [ ] ) . push ( arguments ) } ;
78 m [ i ] . l = 1 * new Date ( ) ;
@@ -10,20 +11,48 @@ const yandex_metrica_id = 106339628;
1011} ) ( window , document , 'script' , 'https://mc.yandex.ru/metrika/tag.js?id=' + yandex_metrica_id , 'ym' ) ;
1112ym ( yandex_metrica_id , 'init' , { ssr : true , webvisor : true , clickmap : true , ecommerce : "dataLayer" , accurateTrackBounce : true , trackLinks : true } ) ;
1213
14+ // --- Инициализация Google Analytics 4 ---
15+ ( function ( ) {
16+ const script = document . createElement ( 'script' ) ;
17+ script . async = true ;
18+ script . src = 'https://www.googletagmanager.com/gtag/js?id=' + google_analytics_id ;
19+ document . head . appendChild ( script ) ;
20+
21+ window . dataLayer = window . dataLayer || [ ] ;
22+ function gtag ( ) { dataLayer . push ( arguments ) ; }
23+ window . gtag = gtag ;
24+ gtag ( 'js' , new Date ( ) ) ;
25+ gtag ( 'config' , google_analytics_id ) ;
26+ } ) ( ) ;
27+
1328// сохранение данных о достижении цели в аналитику
1429function analytics_reach_goal ( goal = '' , params = { } ) {
30+ // Дублируем в Яндекс
1531 waitForYm ( ( ) => {
1632 console . log ( 'Отправили достижение цели в яндекс.метрику' , goal , params ) ;
1733 ym ( yandex_metrica_id , 'reachGoal' , goal , params ) ;
1834 } ) ;
35+
36+ // Дублируем в Google
37+ if ( typeof gtag === 'function' ) {
38+ console . log ( 'Отправили событие в Google Analytics' , goal , params ) ;
39+ gtag ( 'event' , goal , params ) ;
40+ }
1941}
2042
2143// сохранение данных о посетителе в аналитику
2244function analytics_set_visit_params ( params = { } ) {
45+ // Дублируем в Яндекс
2346 waitForYm ( ( ) => {
2447 console . log ( 'Отправили параметр визита в яндекс.метрику' , params ) ;
2548 ym ( yandex_metrica_id , 'params' , params ) ;
2649 } ) ;
50+
51+ // Дублируем в Google
52+ if ( typeof gtag === 'function' ) {
53+ console . log ( 'Отправили параметры пользователя в Google Analytics' , params ) ;
54+ gtag ( 'set' , 'user_properties' , params ) ;
55+ }
2756}
2857
2958// ожидание Yandex.Metrica так как счетчик загружается асинхронно
@@ -35,4 +64,4 @@ function waitForYm(callback) {
3564 setTimeout ( ( ) => {
3665 waitForYm ( callback ) ;
3766 } , 1000 ) ;
38- }
67+ }
0 commit comments