【问题标题】:Listening google events听谷歌事件
【发布时间】:2018-02-15 11:33:00
【问题描述】:

你能告诉我,我怎样才能用原生 javascript 监听谷歌分析(谷歌标签管理器)事件? 例如:

客户端发送了这个事件

ga('send', 'event', [eventCategory], [eventAction], [eventLabel], [eventValue]);

我需要订阅这个活动。

【问题讨论】:

    标签: javascript google-analytics google-analytics-api google-tag-manager


    【解决方案1】:

    您可以使用tasks,它允许您连接到 Google Analytics 跟踪器的执行例程,例如,连接到 sendHitTask 以检索发送的每个命中的有效负载:

    ga('create', 'UA-XXXXX-Y', 'auto');
    
    ga(function(tracker) {
    
      // Grab a reference to the default sendHitTask function.
      var originalSendHitTask = tracker.get('sendHitTask');
    
      // Modifies sendHitTask to send a copy of the request to a local server after
      // sending the normal request to www.google-analytics.com/collect.
      tracker.set('sendHitTask', function(model) {
        originalSendHitTask(model);
        var xhr = new XMLHttpRequest();
        xhr.open('POST', '/localhits', true);
        xhr.send(model.get('hitPayload'));
      });
    });
    
    ga('send', 'pageview');
    

    【讨论】:

    • @ValeraChecha:不客气。如果它很棒,您可以投票 :) 帮助答案脱颖而出并激励贡献者。
    • 只是对不关注链接的人的警告:代码示例会破坏跟踪器,因为它会覆盖 sendHitTask 而不发送数据本身。
    • 我改变了这个例子,让人们明白他们除了做任何他们想做的事情之外,还需要正常发送事件
    【解决方案2】:

    您可以使用 hit callback as per documentation - 一个 JavaScript 函数,将在命中触发后执行。

    【讨论】:

    • 谢谢你的回答,我知道这个功能,但这并不能解决我的任务(我想监听客户端发送的所有事件,我无法让它添加这个回调。跨度>
    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多