我需要使用自定义ga('send')
函数来发送在表单提交(特别是通过Marketo)上触发的数据。
在将GA作为脚本代码安装的网络媒体资源上,这很好用。但是,在一个站点上我需要这样做,GA是通过GTM作为标记安装的。显然,这是最佳做法。
基本上,代码如下所示(针对上下文):
form.onSuccess(function (values, url) {
console.log('success');
...
ga('send', 'event', {
eventCategory: 'form',
eventAction: 'submit',
eventLabel: 'Form Submit'
});
...
return false;
});
我做了一些研究
How to send ga(...) events with Google Tag Manager?
Google Analytics Code Explanation
前提是我需要首先定义ga()
函数-所以我这样做是这样的:
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', "UA-XXXXXXXX", 'auto');
form.onSuccess(function (values, url) {
console.log('success');
...
ga('send', 'event', {
eventCategory: 'form',
eventAction: 'submit',
eventLabel: 'Form Submit'
});
...
return false;
});
我可以看到`console.log(“ success”)并且没有引发任何错误,但是我看不到GA中记录了表单提交事件。
有什么想法吗?如何使用Google跟踪代码管理器实施的GA与脚本代码进行自定义事件?
答案 0 :(得分:1)
在通过GTM标签实施GA的marketo表单页面上,那么您应该考虑使用custom datalayer events。
不要害怕“ custom”一词,基本上可以代替ga()函数,您可以这样做:
dataLayer.push({'event': 'event_name'});
因此您的代码变为:
form.onSuccess(function (values, url) {console.log('success');
...dataLayer.push({'event': 'form-submit'});...return false;});
在GTM启用后: