React SPA - GTM 分析 React-Helmet 上一页标题
React SPA - GTM Analytics React-Helmet Previous Page Title
我正在使用 Google 跟踪代码管理器将网页浏览事件推送到数据层以进行分析跟踪。这发生在 componentDidMount() 中(有时 componentWillReceiveProps() 如果我正在使用 withRouter 监听查询字符串参数随位置道具的变化)。
我正在使用 react-helmet 在组件更改时动态更新我的标题和其他标签。
我注意到一个问题,即我在 Analytics 中获取的页面标题不正确。它经常显示上一页的页面标题,而不是我当前所在的页面。似乎 react-helmet 直到 componentDidMount().
之后才更新标签
页面查看事件函数示例
每次将此事件推送到数据层时都会调用我在 GTM 中的分析标签
const firePageViewEvent = () => {
console.log("Pageview event fired (from tracking script)");
if (window && window.dataLayer) {
console.log("window and dataLayer exist, pushing pageview event.");
let dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'reactPageViewEvent'
});
} else {
console.log("window or dataLater does not exist, cannot push pageview event.");
}
};
我可以确认将函数包装在延迟为 0 毫秒的 setTimeOut() 函数中确实可以确保仅在 react-helmet 有机会执行其操作后才推送事件。
这使我能够始终如一地在 Analytics 中获取当前页面标题。
更新函数
const firePageViewEvent = () => {
setTimeout(() => {
console.log("Pageview event fired (from tracking script)");
if (window && window.dataLayer) {
console.log("window and dataLayer exist, pushing pageview event.");
let dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'reactPageViewEvent'
});
} else {
console.log("window or dataLater does not exist, cannot push pageview event.");
}
}, 0);
};
我正在使用 Google 跟踪代码管理器将网页浏览事件推送到数据层以进行分析跟踪。这发生在 componentDidMount() 中(有时 componentWillReceiveProps() 如果我正在使用 withRouter 监听查询字符串参数随位置道具的变化)。
我正在使用 react-helmet 在组件更改时动态更新我的标题和其他标签。
我注意到一个问题,即我在 Analytics 中获取的页面标题不正确。它经常显示上一页的页面标题,而不是我当前所在的页面。似乎 react-helmet 直到 componentDidMount().
之后才更新标签页面查看事件函数示例
每次将此事件推送到数据层时都会调用我在 GTM 中的分析标签
const firePageViewEvent = () => {
console.log("Pageview event fired (from tracking script)");
if (window && window.dataLayer) {
console.log("window and dataLayer exist, pushing pageview event.");
let dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'reactPageViewEvent'
});
} else {
console.log("window or dataLater does not exist, cannot push pageview event.");
}
};
我可以确认将函数包装在延迟为 0 毫秒的 setTimeOut() 函数中确实可以确保仅在 react-helmet 有机会执行其操作后才推送事件。
这使我能够始终如一地在 Analytics 中获取当前页面标题。
更新函数
const firePageViewEvent = () => {
setTimeout(() => {
console.log("Pageview event fired (from tracking script)");
if (window && window.dataLayer) {
console.log("window and dataLayer exist, pushing pageview event.");
let dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'reactPageViewEvent'
});
} else {
console.log("window or dataLater does not exist, cannot push pageview event.");
}
}, 0);
};