Javascript 向GA发送事件的正确方式是什么?
我们正在使用,箭头已启用。单击箭头时,我们希望向GA发送一个事件,如下所示。但是,当我们单击箭头元素时,它不会发送。没有错误消息,我的扩展(如)似乎也没有返回任何结果 这是我们尝试过但没有成功的方法。在我们的本地测试环境中,我们可以添加google-analytics.js文件,但无法在此处加载 我们已经通过GTM安装了GAJavascript 向GA发送事件的正确方式是什么?,javascript,jquery,google-analytics,slick.js,Javascript,Jquery,Google Analytics,Slick.js,我们正在使用,箭头已启用。单击箭头时,我们希望向GA发送一个事件,如下所示。但是,当我们单击箭头元素时,它不会发送。没有错误消息,我的扩展(如)似乎也没有返回任何结果 这是我们尝试过但没有成功的方法。在我们的本地测试环境中,我们可以添加google-analytics.js文件,但无法在此处加载 我们已经通过GTM安装了GA $(文档).ready(函数(){ var carsl=$('.carousel'); carsl.slick(); carsl.on('click','slick ar
$(文档).ready(函数(){
var carsl=$('.carousel');
carsl.slick();
carsl.on('click','slick arrow',function(){
//创建GA事件;
//这是行不通的。
ga(‘发送’{
hitType:'事件',
事件类别:“光滑”,
eventAction:'箭头',
eventLabel:“已单击”
});
});
});代码>
项目1
项目2
项目3
项目4
这里的问题是您没有使用正确的方法将事件发送给GA
您已经通过GTM实现了GA,但单击箭头时使用的函数是针对您是否通过analytics.js实现了GA
有很多方法可以帮助您跟踪GTM事件,但是由于您已经在页面上使用了javascript,所以根据您目前所拥有的内容来解决它是最简单的
该解决方案将用于gtm
将代码的GA部分更改为这样:
$(document).ready(function () {
var carsl = $('.carousel');
carsl.slick();
carsl.on('click', '.slick-arrow', function() {
// push event to datalayer, the event name is whatever you like
// this does should work
dataLayer.push({'event': 'mySlickArrowEvent'});
});
});
GTM设置:
$(document).ready(function () {
var carsl = $('.carousel');
carsl.slick();
carsl.on('click', '.slick-arrow', function() {
// push event to datalayer, the event name is whatever you like
// this does should work
dataLayer.push({'event': 'mySlickArrowEvent'});
});
});
在GTM中,设置触发器。进入GTM,进入“触发器”屏幕,添加一个“自定义事件”类型的新触发器,并在“事件名称”字段中,从上方输入该名称“myClickArrowEvent”。像这样:
现在转到“标签”屏幕,添加一个新的谷歌分析标签。这次选择“事件”类型,按照您希望它出现在GA中的方式填写所有事件类别、操作和标签,并将我们刚刚创建的触发器附加到这个新标签上。像这样:
现在,要么发布容器,要么只发布容器,事件应该在GA中注册。看起来您可能缺少GA方法的脚本include。Google Analytics必须包含在您的页面上,您提供您的站点令牌,以便它知道将事件应用到哪个资源1)您是否在某个地方定义了ga
(例如,通过提供的ga片段),但没有包括它?2) 单击处理程序是否执行(例如,如果添加console.log()
或alert()
,是否会触发)?您可能缺少的代码在“2.安装您的跟踪代码”@coreyward中提到,当我们尝试console.log
和alert
时,我们可以验证是否触发了click事件。@usernameabc OK,那么GA代码段中设置属性ID的其余部分呢?@XLOTHEL切换到数据层。push
成功了。我确实决定创建自定义的数据层变量
,以便在调用push
函数时传入该变量。现在,它正在传递我期望的值,这是一个有效的解决方案,并且对于可重用性来说更灵活。干得好