在 React 应用程序中将 Google 分析与到达路由器集成

Integrate Google Analytics with reach router in React application

我想将 Google Analytics 集成到我的 React 应用程序中。我正在使用到达路由器,这让事情变得更加复杂。

如果我像这样使用位置提供程序,那么导航 API 将不起作用。所以如果点击任何页面,页面不会呈现

import { Router,createHistory,LocationProvider }from "@reach/router";
import ReactGA from "react-ga";
ReactGA.initialize("G-xxxxxxx");
const history= createHistory(window);
history.listen( window => {
  ReactGA.pageview(window.location.pathname+ window.location.search);
  console.log('page=>',window.location.pathname);
});
<LocationProvider history={history}>
  <Router></Router>
</LocationProvider>

如果我使用 globalHistory google 分析仅在首页可用,其他页面不在统计中

ReactGA.initialize("G-XXXXXXXXXXX");
globalHistory.listen(({ location }) => {
  window.ga('send', 'pageview');
  // or use the new gtag API
  window.gtag('config', 'G-XXXXXXXXXX', {'page_path': location.pathname});
});

有人知道如何用第一种或第二种方法解决这个问题吗?

这取决于您使用的是 Google Analytics 4 属性 ID (G-XXXXXXXX),而有问题的 React Analytics 包适用于 Universal Analytics。我建议您创建一个 Universal Analytics 属性(如下图所示)并使用相对标识符 UA-XXXXXXX-X: