我正在使用https://www.npmjs.com/package/react-google-tag-manager
在ReactJS中管理GTM标签。
我建议使用GoogleTagManager
组件。每当用户在“产品列表”页面上向下滚动时,我都将其称为GoogleTagManager组件。当用户向下滚动时,尽管会呈现GoogleTagManager,但GTM预览报告GTM仅在页面加载时触发一次。 (尽管我可以清楚地看到,随着用户向下滚动,GTM组件中的控制台语句正在呈现,因此确实会被调用)
这就是我的称呼:
{this.state.callGTM===true && <GoogleTagManager gtmId='GTM-A12B12' additionalEvents={this.state.gaDataEvent}/>}
这是我在脚本标签中看到的内容:
(function(w,d,s,l,i){w[l]=w[l]||[];
w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js', "event":"productListingImpressions","ecommerce":{"currencyCode":"INR","impressions":[{"name":"Blue Top","id":21443,"sku":"IN1747567OTOPBLU-714","price":1199,"category":"Category Results","list":""}}]}});
var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';
j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl
;
f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-A12B12');
我需要做的是将this.state.gaDataEvent
作为数据层传递给GTM。但是当我使用gtm Preview时,我看到当用户向下滚动时,它没有再次被触发。