迁移到Google跟踪代码管理器打破了我们的虚拟网页浏

时间:2015-11-17 16:43:13

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

我最近将公司的网站转换为Google跟踪代码管理器。由于我们的联系表单没有包含唯一网址的唯一确认页面,因此我们使用虚拟综合浏览量来跟踪转化情况。表单已提交,网页会重新加载新内容和转化跟踪代码。

自迁移到GTM以来,我们所有的虚拟网页浏览都停止了工作。现在,当我在我们的网站上提交表单时,我会在控制台日志中找到它:

ReferenceError: ga is not defined
  ga('send', 'pageview', '/funnel_G1/premium1.html');

之前,我们直接在页面上加载了Universal Analytics。现在我们通过GTM加载Universal Analytics。这就是所有改变了,我无法弄清楚为什么我们的虚拟网页浏览脚本不再有效。

这是在表单完成时触发的脚本:

<script type="text/javascript">
$(document).ready(function () {
  ga('send', 'pageview', '/funnel_G1/premium1.html');
});
</script>

2 个答案:

答案 0 :(得分:2)

当您转移到GTM时,您可能还正确删除了所有页面上的GA代码,其中包括标准GA代码段以及

ga('create', 'UA-.....');
ga('send','pageview');

代码。删除GA代码段也会删除&#34; ga&#34;对象,这就是为什么你得到你看到的错误。使用GTM,您现在需要使用标签发送您的活动和综合浏览量。因此,您可以尝试将事件推送到dataLayer,以帮助触发激活虚拟网页浏览的标记。在您的特定情况下,您可以在提交表单时执行以下操作:

dataLayer.push({
   'event': 'form complete',
   'vpv': '/funnel_G1/premium1.html'
})

然后在GTM中,您需要创建由事件“表单完成”触发的网页浏览标记,并且还会将页面值更改为“vpv”和“#39”的值; dataLayer键(即/funnel_G1/premium1.html)。

答案 1 :(得分:1)

问题是,GTM异步加载ga()函数。如果您在加载ga()之前致电,则会遇到此错误。

解决方案是以某种方式等待定义ga(),或使用dataLayer.push()

修改

我们最终使用的解决方案 - 我们在GA中没有包含Google Analytics,但在源代码中单独包含它们。 GTM将处理除GA之外的其他脚本icnludes。这个解决方案至少没有打破整个项目的ga()用法。