我在我的chrome扩展页面中添加了这个gtm代码(由内容脚本in和iframe注入)
// <!-- Google Tag Manager -->
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','owDataLayer','GTM-XXXXXXX');
// <!-- End Google Tag Manager -->
Run Code Online (Sandbox Code Playgroud)
我确认已成功加载的gtm.js文件.
Request URL:https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXX&l=dataLayer
Request Method:GET
Status Code:200 (from disk cache)
Run Code Online (Sandbox Code Playgroud)
我有一个按钮,下面的代码已附加到按钮的单击事件
dataLayer.push({'event':'tab click','user id':123,'description':"Social"});
当我单击按钮dataLayer.push成功工作但没有任何内容被发送到https://www.google-analytics.com/r/collect?
开发人员工具栏窗口的"网络"选项卡中的任何活动.
任何人都可以帮我解决这个问题吗?提前致谢!
当有人点击我网站上的“购买”按钮时,我尝试使用 dataLayer 和 dataLayer.push 通过 Google 跟踪代码管理器跟踪此事件。
它看起来像这样:
dataLayer.push({
'event': 'service',
'category': 'purchase',
'action': 'product selected',
'label': product
});Run Code Online (Sandbox Code Playgroud)
问题是,每次用户单击按钮时,服务都会立即重定向到购物车,因此在某些情况下,事件没有足够的时间触发,并且 Google Analytics 中的数据不完整。
我知道有一个“eventCallback”选项可以与 dataLayer 一起使用,如下所示
dataLayer.push({
'event': 'service',
'category': 'purchase',
'action': 'product selected',
'label': product,
'eventCallback': function () {
//redirect to the shopping cart
}
});
});Run Code Online (Sandbox Code Playgroud)
但这个选项的问题是,它产生了依赖性,并且在某些情况下,由于 Google Tag Manger 的一些问题,用户没有被重定向到购物车(这对我们来说是一个大问题)。
是否有更流畅、更有效的方法来处理这个问题,以便我们可以在不中断服务的情况下收集尽可能多的数据(例如,当在用户浏览器中启用跟踪保护时)
我在 React 应用程序中尝试将数据发送到 GTM(谷歌标签管理器)时遇到问题。我们已经设法在相关页面上放置了不同的脚本。
例如下面是我们放入购物车页面的脚本之一:
class Cart extends Component {
render() {
const { cartItems } = this.props;
return (
<script
dangerouslySetInnerHTML={{ __html: `
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'viewCart',
cartItems: ${cartItems}
});
window.history = window.history || [];
window.history.pushState({
page: 'Current Cart Page',
events: 'viewCart',
cartItems: ${cartItems},
}, 'Current Cart Page');
` }}
/>
);
}
}
Run Code Online (Sandbox Code Playgroud)
当我们从另一个页面(EG:主页)访问购物车页面时,上面的脚本不会执行,但是当我们刷新页面时,它会被触发。
事实证明,数据层只推送pageLoad和DOMReady事件。但不在historyChange
有没有人遇到过这个问题并知道如何解决?
尝试在SPA的移动网站中实现内容分组.
场景如下:当我第一次访问PDP页面时,设置了类别变量,并将其发送到Universal Analytics标记中的内容组.如果在此之后我返回主页,则类别变量不会更新,并且主页也会分组在先前PDP页面的相同内容组下.
此变量仅在我访问另一个PDP页面时更新.
我正在使用自定义事件PageLoad来模仿pageView事件.只是希望数据层变量在连续的PageLoad事件中刷新.
谢谢
我想从 google 标签管理器的 dataLayer 对象中获取一些值。在 chrome 标签帮助中,我得到了这样的值
[
{
"gtm.start": 1503053374849,
"event": "gtm.js",
"gtm.uniqueEventId": 0
},
{
"event": "gtm.dom",
"gtm.uniqueEventId": 1
},
{
"event": "gtm.load",
"gtm.uniqueEventId": 2
},
{
"Linker": "_ga=53655374"
}
]
Run Code Online (Sandbox Code Playgroud)
我需要获得“链接器”值。我试过了,dataLayer[3].Linker但它给了我“未定义”或空白也相同dataLayer[1].event(它是空白而不是返回值 =“gtm.dom”)当我尝试时dataLayer[0].event它返回正确'gtm.js'
请帮助我如何获得“链接器”值
在过去的几周里,我发现我们建立和维护的一个网站的 Google Analytics 中的转化跟踪每天都会下降约 20% - 40%。
在除 Firefox 之外的任何浏览器中进行测试时,一切正常,您可以看到转化立即推送到 Analytics。
但是,在 Firefox 中,当您打开增强隐私保护(现在默认打开)时,您会收到以下错误:
跨源请求被阻止:同源策略不允许读取https://www.googleadservices.com/pagead/conversion/957837126/wcm?cc=ZZ&dn=01858439338&cl=ITVOCP2S_34Qxt7dyAM&ct_eid=2处的远程资源。(原因:CORS请求未成功)。
一旦您关闭增强隐私保护,它就会完美运行。
我用来推送到数据层的代码(如果有任何相关性)是:
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
window.dataLayer.push({
"event" : "cf7submission",
"eventAction": "FormSubmission",
"eventCategory": "Contact Form Submission",
"eventCallback" : function() {
// Firefox never gets to run this callback to redirect page - which is what triggered further investigation.
window.location.href = "https://www.domain.co.uk/thank-you/";
return false;
},
"eventTimeout" : 2000 // I had to add this in so that it still redirects …Run Code Online (Sandbox Code Playgroud) 这是我的dataLayer数组:
dataLayer = [{
'giftBatch' : {
'giftID': '',
'giftAmount': 0,
'giftCount': 0,
'giftUpdate': {
'giftPhase': 'Gift Empty'
}
},
'txBatch': {
'txID': '',
'txTotal': 0,
'txURL': window.location.href,
'txUpdate': {
'txPhase': 'Transaction Opened',
'txT0': new Date(),
'txT1': ''
'txT2': ''
}
}
}];
Run Code Online (Sandbox Code Playgroud)
控制台结果为:Array [Object1]
根据需要,Object1包含“ giftBatch”和“ txBatch”对象。
我有一个触发器,稍后触发以更新dataLayer中的对象。
例如,将“ giftAmount”更新为50,将“ giftCount”更新为1。
我尝试了以下方法(我仅展示了一次修改“一个对象”的失败尝试),
尝试1:
dataLayer.push({giftAmount : 50});
Run Code Online (Sandbox Code Playgroud)
结果:
数组[object1,object2]
Object1与上面相同,
Object2是一个新对象,其属性为'Gift Amount':50,
尝试2:
dataLayer.push({giftBatch.giftAmount: 222});
Run Code Online (Sandbox Code Playgroud)
结果: SyntaxError:缺少:属性ID之后
尝试3:
dataLayer.push({'giftBatch.giftAmount' : 50});
Run Code Online (Sandbox Code Playgroud)
结果:
数组[object1,object2]
Object1与上面相同,
Object2是一个具有'giftBatch.giftAmount'属性的新对象:50 …
javascript arrays google-analytics google-tag-manager google-datalayer
我们最初将一个包含变量的对象推送到数据层:
dataLayer.push({
'environment': {
'userName': 'abc',
'id': 123,
'clicks': 0
}
});
Run Code Online (Sandbox Code Playgroud)
我们现在想要增加environment.clicks用户每次点击的价值。怎么做?当我们通过
dataLayer.push({
'environment': {
'clicks': 123
}
});
Run Code Online (Sandbox Code Playgroud)
dataLayer Array 可能会获得 10.000 个条目。如何正确更新变量?
javascript google-analytics google-tag-manager google-datalayer
我想添加一个集成到页面上现有跟踪代码管理器数据层的自定义脚本。我需要这个脚本来通知新的数据层推送。因此,每当页面上的某些内容使用 时window.dataLayer.push,我的脚本都应该被告知这一点。
有没有办法将自定义 dataLayer 事件侦听器添加到 Google Script API?
我正在寻找类似的东西
google_tag_manager.dataLayer.onPush(callback);
Run Code Online (Sandbox Code Playgroud)
google_tag_manager.dataLayer.subscribers似乎列出了有多少个 dataLayer 订阅者 - 但我如何添加自己的订阅者?
我正在开发一个项目,其中我使用TagManager和Datalayer类来实现GTA和增强的电子商务,我在build.gradle中使用'com.google.android.gms:play-services-base:12.0.1'和android studio版本3.0.1显示我将它更新到15.0.0,当我更改其版本和同步项目时,它现在给我错误:
错误:包com.google.android.gms.tagmanager不存在
我更新了android studio 3.1.1并使用了构建工具版本27,但它无法解决这个问题.它仍然显示相同的错误消息.
build.gradle信息:
compileSdkVersion 27
buildToolsVersion "27.0.2"
minSdkVersion 16
targetSdkVersion 27
compile 'com.android.support:appcompat-v7:27.1.1'
compile 'com.android.support:design:27.1.1'
compile 'com.android.support:cardview-v7:27.1.1'
compile 'com.android.support:recyclerview-v7:27.1.1'
compile 'com.android.support:customtabs:27.1.1'
compile 'com.google.android.gms:play-services-auth:15.0.0'
compile 'com.google.android.gms:play-services-base:15.0.0'
compile 'com.google.android.gms:play-services-gcm:15.0.0'
compile 'com.google.android.gms:play-services-analytics:15.0.0'
Run Code Online (Sandbox Code Playgroud)
我的activity类中存在此问题的一段代码:
import com.google.android.gms.tagmanager.DataLayer;
import com.google.android.gms.tagmanager.TagManager;
Run Code Online (Sandbox Code Playgroud)
我无法理解这个更新15.0.0如何没有tagmanager和datalayer.
android google-tag-manager google-datalayer enhanced-ecommerce android-studio-3.0
google-datalayer ×10
javascript ×6
android ×1
arrays ×1
cors ×1
firefox ×1
jquery ×1
reactjs ×1
wordpress ×1