gpt4 book ai didi

javascript - 如何在 Web 单页应用中使用 Firebase Analytics 跟踪页面浏览量?

转载 作者:行者123 更新时间:2023-12-03 08:26:21 24 4
gpt4 key购买 nike

我正在尝试通过 Firebase 分析跟踪简单的事件和页面/ View 。

我有一个渐进式网络应用程序(SPA)。这是一款全屏游戏,不使用浏览器历史记录。

老实说,我对 Google 的文档有点困惑,有时他们只解释了它在 ios/Android 中的工作原理,而不是在 web 中的工作原理。此外,Firebase 分析不同于“普通的 Google 分析”。

Firebase 分析 API 没有太多:

analytics().logEvent()
analytics().setAnalyticsCollectionEnabled()
analytics().setCurrentScreen()
analytics().setUserId()
analytics().setUserProperties()

虽然“Google Analytics 文档”确实有 section about SPA's我还没有找到如何对 Firebase 分析做同样的事情,例如手动发送页面 View ,如下所示:
ga('set', 'page', '/new-page.html');
ga('send', 'pageview');

我尝试使用 setCurrentScreen但它什么也没做。
帮助表示赞赏。

最佳答案

我也无法找到一个包含所有这些信息的地方,所以这就是我如何让它工作的。

进口

如果您使用 npm , 确保导入分析:

import * as firebase from "firebase/app";
import "firebase/analytics";
const analytics = firebase.analytics;

Analytics 自动随附最新的 Firebase SDK。

配置

确保在 Firebase 项目设置(集成选项卡)中启用了“Google Analytics”。此外,请确保 Firebase 配置具有 measurmentId: "ID_HERE"在代码中指定 - 此值也可以在 Firebase 项目设置(常规选项卡)中找到。

利用
analytics().setCurrentScreen(window.location.pathname) // sets `screen_name` parameter
analytics().logEvent('screen_view') // log event with `screen_name` parameter attached

其他信息
"page_view"默认情况下似乎会自动记录事件。我不知道为什么,但是您可以使用该事件的计数来跟踪有多少人重新加载/访问该应用程序。

相关链接:
  • Firebase Screen View Docs
  • Firebase Analytics Library Docs
  • Google Guidance for Single Page Apps
  • Firebase Analytics NPM Reference


  • 使用 React 路由器进行日志记录

    React 很常见,所以我还将列出我使用它进行日志记录的解决方案。放置 <AnalyticsComponent /> <BrowserRouter>之间宣言。
    const logCurrentPage = () => {
    analytics().setCurrentScreen(window.location.pathname)
    analytics().logEvent('screen_view')
    };

    const AnalyticsComponent = () => {
    const history = useHistory();
    useEffect(() => {
    logCurrentPage(); // log the first page visit
    history.listen(() => {
    logCurrentPage();
    });
    }, [history]);
    return (<div></div>);
    };

    关于javascript - 如何在 Web 单页应用中使用 Firebase Analytics 跟踪页面浏览量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59330467/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com