gtm是谷歌开发的跟踪代码管理器, 能够在平台上添加和更新本身的代码,用于转化跟踪、网站分析、再营销等用途。javascript
gtm有免费的版本, 能够上 marketingplatform.google.com/about/ 注册并开通帐号, 以后gtm会给你一个js代码块, 须要你放到每一个html页面的<head>
标签里面, 代码相似于下面这样, 里面会有个GTM-XXXXX
即是你的gtm container的ID, 须要替换成你本身container 的idhtml
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-XXXXX');</script>
<!-- End Google Tag Manager -->
复制代码
gtm最重要的部分, 能够在tag里面部署 google数据分析相关服务, 或者第三方服务, 若是某些服务商没有集成在gtm里面, 还能够经过嵌入自定义代码的方式来部署. 能够看到tag里面有至关多的方式来部署你的代码.java
每一个tag必须关联trigger用来触发tag的执行. 举个例子, 你但愿某段统计代码只有在访问特定url的时候才会执行上报, 这时候就须要添加trigger来指定条件.数组
Trigger 有至关多的触发方式, 你能够选择页面加载完成后触发, 某些dom元素可见时触发, 用户点击某个按钮触发等等.dom
大部分状况下数据统计都须要上传必定的信息, 好比电商网站须要统计用户购买了何种商品, 数量及价格等等, 或者用户点击了哪些按钮, 这些都须要经过变量的形式来定义, 变量设置后tag和trigger均可以引用, trigger能够引用变量来定义一些触发条件, 好比用户在某种语言下才触发. tag能够获取variable的值并上传到相关的服务商.async
variable也有不少类型, 能够是当前页面的url, 或者是自定义js计算获得的值.工具
最广泛使用的则是 Data Layer Variable
网站
gtm脚本运行时会建立一个dataLayer
的全局对象, dataLayer实际是是一个数组, 你能够经过dataLayer.push()
来添加相关的数据, 能够很方便的在gtm variable里面获取到.ui
好比你添加了一个描述当前页面类型的属性dataLayer.push({pageType:'home'})
, 就能够经过这样定义Variable来取值google
这里要注意的是取值的时机, 好比你在用户购买某个商品以后将相关的数据添加到dataLayer, 那么若是某个Trigger在这个按钮点击以前就被触发(如 PageView类型的trigger), 那么这时候是获取不到这个商品的信息的. 因此理清trigger的触发条件, variable 被添加的时间是很是重要的, 若是顺序乱了就会获得undefined
的结果, 影响到数据统计的准确性.