我有一个包含各种页面的vuejs
项目:
我的客户希望我添加Google Tag Manager
代码,以便他们可以使用Google Analytics进行跟踪。我应该在.vue
文件中添加代码?或者我应该将其添加到index.html
?
Update01
这是我到目前为止所做的事情:
我将Google Tag Manager
代码添加到index.html
。
我安装了vue-gtm。
我有app.js
和bootstrap.js
。基本上,bootstrap.js
将添加我所有其他js框架。像lodash.js
或'jquery.js'。我将示例代码从vue-gtm
添加到bootstrap.js
:
window._ = require('lodash'); window.moment = require('moment');
window.Vue = require('vue');
从'vue-router'导入VueRouter; Vue.use(VueRouter)
从'vue-gtm'导入VueGtm; Vue.use(VueGtm,{ debug:true })
在所有vue
文件中,我添加了以下代码:
这个。$ ua.trackView('Sample','samplepath');
但是我收到了错误:
TypeError:无法读取未定义的属性'trackView'
什么似乎是错误?
答案 0 :(得分:2)
我假设您在谈论创建帐户时获得的脚本?
HTML中应该包含两个脚本,一个包含(noscript)
的评论和一个不包含的脚本。两者都应该放在index.html文件中(无论哪个文件都包含<head>
和<body>
标记)。 拥有 noscript的那个应该在 <body>
标记之后立即,不的那个有noscript应该靠近<head>
部分的顶部。
如果您询问如何触发事件,例如当用户与其中一个Vue元素交互时,则触发事件的代码应该放在Vue组件中。
更新1:我调查了它并设置我自己的Laravel安装进行测试(因为这似乎是你正在使用的)并进行了测试。问题是$ua
是Vue Analytics的一部分,因此如果您想使用$ua
,您还需要安装vue-ua
模块并将其添加到Vue。我不知道为什么Tag Manager模块的文档显示如何使用Analytics模块而不参考它,也许您应该在Tag Manager GitHub上提出问题以使文档更清晰!
总而言之,您应该将$ua
替换为$gtm
。我对其进行了测试,并且$gtm
具有trackView
功能,因此它可能会达到您想要的效果,但我不知道如何使用Google跟踪代码管理器,因此您必须对其进行测试出去了。