Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向GA发送事件的正确方式是什么?_Javascript_Jquery_Google Analytics_Slick.js - Fatal编程技术网

Javascript 向GA发送事件的正确方式是什么?

Javascript 向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

我们正在使用,箭头已启用。单击箭头时,我们希望向GA发送一个事件,如下所示。但是,当我们单击箭头元素时,它不会发送。没有错误消息,我的扩展(如)似乎也没有返回任何结果

这是我们尝试过但没有成功的方法。在我们的本地测试环境中,我们可以添加google-analytics.js文件,但无法在此处加载

我们已经通过GTM安装了GA

$(文档).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
函数时传入该变量。现在,它正在传递我期望的值,这是一个有效的解决方案,并且对于可重用性来说更灵活。干得好