Skip to content

Commit 080f25f

Browse files
authored
Merge pull request #92 from AnnaCodit/adding-google-analytics
добавлена гугл.аналитика. хм.. будет ли это работать с подключениями из скрипта Квантума?
2 parents 7cc45cd + d5b0a21 commit 080f25f

1 file changed

Lines changed: 32 additions & 3 deletions

File tree

js/analytics.js

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
// идентификатор счетчика Yandex.Metrica
1+
// идентификаторы счетчиков
22
const 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');
1112
ym(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
// сохранение данных о достижении цели в аналитику
1429
function 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
// сохранение данных о посетителе в аналитику
2244
function 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

Comments
 (0)