2017-10-11 43 views
1

我试图在客户端的Google分析中触发一个事件。当用户点击另一个网站的链接时,需要触发该事件。放置在onclick中的函数调用在桌面上不起作用,因为在Javascript可以运行之前页面已经被卸载。为了解决这个问题,我实现了基于this article下面的代码:谷歌Analytics(分析)ga函数hitCallback没有触发

<script> 
    function submitOrderButtion(eventName){ 
    var url = 'https://example.com'; 
    var goToOrderForm = function(){ 
     console.log("goToOrderForm"); 
     window.location = url; 
    }; 
    //setTimeout(goToOrderForm, 1000); 
    console.log(ga.q); 
    console.log(ga.loaded); 
    ga('set', 'transport', 'beacon'); 
    ga('send', 'event', 'order online', 'click', eventName, { 
     hitCallback: goToOrderForm 
    }); 
    } 
</script> 

调用该函数的联系是这样的:

<a href="javascript:" onclick="submitOrderButtion('homepage');" class="btn btn-primary">Order Online!</a> 

单击该按钮时,ga函数永远不会做任何事情。

ga.q未定义,ga.loaded为true。我最后一次尝试将交通工具设置为“灯塔”,但没有任何区别。除非我取消注释setTimeout(我最终会在这种情况下工作),否则回调从不会被调用,ga事件从不记录,并且检查器中也没有任何网络请求出现。

这是链接到网站Joey's Pizza。有问题的链接是页面中间显示“订购在线!”的大按钮。

有谁能告诉我为什么GA功能没有做任何事情吗?在此先感谢您的帮助!

状态更新: 我仍然在寻找对此的答案。我得到的答案已经多次尝试过(使用各种arg配置,并检查源代码以确保先前的尝试没有被缓存)。我花了将近一天的时间完成了一项简单的任务,我没有收到任何错误或任何问题。任何进一步的帮助将非常感激!谢谢:)

回答

0

传递回调作为第五个参数

https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#hitcallback

因此,它应该是这样的。

ga('send', 'event', 'order online', 'click', { 
    hitCallback: goToOrderForm 
}); 
+0

我试过了。我也尝试使用此处给出的签名:https://developers.google.com/analytics/devguides/collection/analyticsjs/events。为eventValue传递null因为我不需要它。到目前为止没有运气。 – drigby

相关问题