谷歌Analytics(分析)ga函数hitCallback没有触发
问题描述:
我试图在客户端的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配置,并检查源代码以确保先前的尝试没有被缓存)。我花了将近一天的时间完成了一项简单的任务,我没有收到任何错误或任何问题。任何进一步的帮助将非常感激!谢谢:)
答
传递回调作为第五个参数
https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#hitcallback
因此,它应该是这样的。
ga('send', 'event', 'order online', 'click', {
hitCallback: goToOrderForm
});
我试过了。我也尝试使用此处给出的签名:https://developers.google.com/analytics/devguides/collection/analyticsjs/events。为eventValue传递null因为我不需要它。到目前为止没有运气。 – drigby