如何在 Firebase 分析中禁用自动 page_view 日志记录

问题描述 投票:0回答:3

我在基于 Vue 的 SPA 中使用官方 Firebase JS SDK。为了通过 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 分析中设置此配置值,或者是否有其他方法可以在此处禁用自动页面视图报告?

javascript firebase google-analytics firebase-analytics
3个回答
3
投票

我目前正在寻找相同的解决方案。 我在 React Spa 应用程序中使用 Firebase 分析。对我来说,@Draven 提出的解决方案似乎不起作用。

使用 GA Debug chrome 扩展,我可以看到

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

0
投票

Firebase Analytics v9+

Firebase JS SDK 的新版本已添加对此的支持。

https://github.com/firebase/firebase-js-sdk/issues/3988#issuecomment-1029225843

....
import { initializeAnalytics } from 'firebase/analytics';

const initializedAnalytics = initializeAnalytics(firebaseApp, {
  config: {
    send_page_view: false
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.