ga()函数Google Analytics(分析)在Google跟踪代码管理器中实现为代码

时间:2019-10-25 18:10:32

标签: javascript google-analytics

我需要使用自定义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与脚本代码进行自定义事件?

1 个答案:

答案 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启用后:

  1. 根据您刚刚编写的用于推送到数据层的自定义事件(“表单提交”)创建触发器,如下所示: enter image description here
  2. 然后创建一个GA标签,将曲目类型设置为“ EVENT”,并根据需要填写类别,操作和标签。然后附加在步骤1中创建的触发器。 enter image description here
  3. 预览或提交所有内容以查看其正常运行。