gpt4 book ai didi

reactjs - React SPA - GTM Analytics React-Helmet 上一页标题

转载 作者:行者123 更新时间:2023-12-03 14:27:04 25 4
gpt4 key购买 nike

我正在使用 Google 跟踪代码管理器将网页浏览事件推送到数据层以进行分析跟踪。这种情况发生在 componentDidMount() 中(如果我使用 withRouter 使用 location 属性监听查询字符串参数更改,有时会发生在 componentWillReceiveProps() 中)。

我正在使用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 中始终获取当前页面标题

See github issue comment

更新功能

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

关于reactjs - React SPA - GTM Analytics React-Helmet 上一页标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49322314/

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