#javascript #firebase #google-analytics #firebase-analytics
#javascript #firebase #google-analytics #firebase-аналитика
Вопрос:
Я использую официальный Firebase JS SDK в SPA на основе Vue. Чтобы получить более полезную аналитику благодаря интеграции Firebase firebase.analytics()
с Google Analytics, я хотел бы отключить автоматическую отчетность о page_view
событиях.
Я знаю, что под капотом Firebase Analytics использует Google gtag.js для отчетности в Google Analytics, и я знаю, что могу настроить gtag так, чтобы он не отправлял это событие автоматически, например:
gtag('config', 'MEASUREMENT_ID', {
'send_page_view': false
});
Моя проблема в том, что я не могу найти способ установить такое значение конфигурации firebase.analytics()
. Я пробовал analytics.setUserProperties({ send_page_view: false })
, но, похоже, это не работает, поскольку событие page_view по-прежнему передается в Google.
Есть ли какой-либо способ установить это значение конфигурации в Firebase analytics или есть другой способ отключить автоматическую отчетность о просмотре страниц здесь?
Ответ №1:
В настоящее время я ищу это же решение. Я использую firebase analytics в приложении react spa. Для меня решение, предложенное @Draven, похоже, не работает.
Используя расширение Chrome для отладки GA, я вижу Processing GTAG command: ["config", "G-3MVDF7WX31", {send_page_view: false}]
, что меня вызывают, но вскоре после этого я также вижу Sending event "page_view" to undefined
, что меня вызывают. После этого Processing GTAG command: ["config", "G-3MVDF7WX31", {send_page_view: false}]
снова вызывается. Используя Google Analytics DebugView, я все еще вижу, что событие просмотра страницы регистрируется.
Обновить
Просматривая Firebase JS SDK, похоже, нет способа отключить page_view по умолчанию, который возникает во время вызова firebase.analytics()
. Однако я придумал обходной путь, который после легкого тестирования, похоже, работает. Перед вызовом укажите следующее firebase.analytics()
:
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('set', { 'send_page_view': false });
</script>
Смотрите Проблему github: https://github.com/firebase/firebase-js-sdk/issues/3988
Ответ №2:
Вы можете использовать Firebase с существующими gtag.js пометка. Основываясь на этой документации, вам нужно сначала вызвать firebase.analytics() перед отправкой событий с использованием gtag(), и данные будут связаны с Firebase.
<script async src="https://www.googletagmanager.com/gtag/js"></script>
...
firebase.analytics();
...
gtag('config', 'MEASUREMENT_ID', {
'send_page_view': false
});