我最近将公司的网站转换为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 回答
问题是,GTM异步加载
ga()
函数 . 如果在加载之前调用ga()
,则会遇到此错误 .解决方法是以某种方式等待定义
ga()
,或者使用dataLayer.push()
编辑
我们最终使用的解决方案 - 我们在GA中没有包含Google Analytics,但在源代码中单独包含它们 . GTM将处理除GA之外的其他脚本icnludes . 这个解决方案至少没有打破我们项目的整个过程 .
当您转移到GTM时,您可能还正确删除了所有页面上的GA代码,其中包括标准GA代码段以及
码 . 删除GA代码段也会删除“ga”对象的创建,这就是您收到错误的原因 . 使用GTM,您现在需要使用标签发送您的活动和综合浏览量 . 因此,您可以尝试将事件推送到dataLayer,以帮助触发激活虚拟网页浏览的标记 . 在您的特定情况下,您可以在提交表单时执行以下操作:
然后在GTM中,您需要创建由事件'form complete'触发的pageview标记,并且还将页面值更改为'vpv'dataLayer键的值(即./funnel_G1/premium1.html) .