Google analytics 如何在google analytics中向多个跟踪器发送事件,而无需两次发送调用(analytics.js)

Google analytics 如何在google analytics中向多个跟踪器发送事件,而无需两次发送调用(analytics.js),google-analytics,google-analytics-api,tracker,analytics.js,Google Analytics,Google Analytics Api,Tracker,Analytics.js,根据google为新analytics.js提供的文档,您可以设置多个跟踪器,并通过在单独的发送呼叫中明确提及跟踪器的名称向其发送事件: 我想知道是否有一种方法可以将一个事件发送到两个跟踪器,而不必为每个事件编写两个单独的发送调用,或者是否有一种方法可以使用一个发送调用和一个逗号描述的跟踪器列表或其他什么来发送。有人知道吗?创建一个包含三个参数的函数(您也可以为事件包含另外两个可选参数,但在本例中,我只使用了category、action和label。) 在链接、按钮等上,使用onclick调

根据google为新analytics.js提供的文档,您可以设置多个跟踪器,并通过在单独的发送呼叫中明确提及跟踪器的名称向其发送事件:


我想知道是否有一种方法可以将一个事件发送到两个跟踪器,而不必为每个事件编写两个单独的发送调用,或者是否有一种方法可以使用一个发送调用和一个逗号描述的跟踪器列表或其他什么来发送。有人知道吗?

创建一个包含三个参数的函数(您也可以为事件包含另外两个可选参数,但在本例中,我只使用了category、action和label。)

在链接、按钮等上,使用onclick调用函数并传递事件的参数

<head>
    <script>
        function evtTrack(evtCat,evtAction,evtLabel) {

            ga('send', 'event', evtCat, evtAction, evtLabel);
            ga('newTracker.send', 'event', evtCat, evtAction, evtLabel);
}
    </script>
</head>

//Example
<body>
    <a href="blah.com" onclick="evtTrack('Product Category','Image Click', 'Shoes');">Example</a>
</body>

功能evtTrack(evtCat、evtAction、evtLabel){
ga(“发送”、“事件”、evtCat、evtAction、evtLabel);
ga('newTracker.send','event',evtCat,evtAction,evtLabel);
}
//范例
根据文档和示例代码,您可以执行以下操作:

function multiSend() {
  var trackers = ga.getAll();
  for (var i = 0; i < trackers.length; i++) {
     tracker=trackers[i].get('name')+'.send';
     argum = Array.prototype.slice.call(arguments);
     argum = argum.toString();
     ga(tracker,argum);
  }
}

ga(multiSend('pageview')); // send a pageview to all defined trackers...
函数multiSend(){
var trackers=ga.getAll();
对于(变量i=0;i
基于Mike的答案,并与GA Universal配合使用

function multiSend() {
  var trackers = ga.getAll();
  for (var i = 0; i < trackers.length; i++) {
    tracker=trackers[i].get('name')+'.send';
    argum = Array.prototype.slice.call(arguments); 
    argum.unshift(tracker);
    ga.apply(window, argum);
  }
}
函数multiSend(){
var trackers=ga.getAll();
对于(变量i=0;i
这将向Google Analytics发送两个请求。我的理解是OP正在寻求一种方法,只向GA发送一个带有两个不同跟踪器的请求。目前,这确实有效。每个属性仅接收1个事件。
function multiSend() {
  var trackers = ga.getAll();
  for (var i = 0; i < trackers.length; i++) {
    tracker=trackers[i].get('name')+'.send';
    argum = Array.prototype.slice.call(arguments); 
    argum.unshift(tracker);
    ga.apply(window, argum);
  }
}