3

几天来,我一直在努力使这项工作,但没有任何效果。无论我做什么,这些事件都不会被捕获。

我在顶部导入 ReactGA

import ReactGA from "react-ga";

我在导入后初始化它

ReactGA.initialize("TRACKING-ID", {
  debug: true
});

我创建了一个函数来处理跟踪器

const GASignInHandler = name => {
  ReactGA.event({
    category: "Dashboard Home",
    action: `User Signing In As ${name}`,
    label: "Tracking users every time they sign in.",
    nonInteraction: true
  });
};

在我的名为 DashHome 的功能组件中,在 return 中我称之为。如果signedIn = true,运行这个函数,如果不运行console.log。这显然是出于测试目的,但我仍然没有看到这个事件被记录在 GA 中。它在调试中触发。

{signedIn ? GASignInHandler(userEmail) : console.log("signin not true")}

[react-ga] with fieldObject: {"hitType":"event","eventCategory":"Dashboard Home","eventAction":"用户以我的身份登录","eventLabel":"每次登录时跟踪用户.","nonInteraction":true} log.js:2 [react-ga] with trackers: undefined

我也有 GA 告诉我放入我的 public/index.html 的所有标签。

4

1 回答 1

3

将它放入 index.js 解决了这个问题。

(function initAnalytics() {
  initGA("Tracking ID");
})();

initGA 函数是手动创建的,就是这样(这个文件叫做 index.js)

import ReactGA from "react-ga";

export const initGA = trackingID => {
  ReactGA.initialize(trackingID);
};

export const PageView = () => {
  ReactGA.pageview(window.location.pathname + window.location.search);
};

export const Event = (category, action, label) => {
  ReactGA.event({
    category,
    action,
    label
  });
};

我还删除了我在 public/index.html 中的所有脚本。我只有 react-ga init。

看来你也必须把

ReactGA 事件

如果您正在使用功能组件,则进入 useEffect 挂钩。

于 2020-03-04T21:54:34.273 回答