google.tagmanager 在单页面中的实践

栏目: JavaScript · 发布时间: 6年前

内容简介:在上一篇文章中说了下基础的 tagmanager 怎么使用入口在这里下面是我遇到的一些问题,以及处理方法,可能有些有问题,或者处理的很复杂,如果你有更好的思路,请一定联系我现在有很多优秀的框架能实现页面应用化,一次加载所有资源,根据路由变化,加载不同页面,而不进行刷新,例如AngularJS ,由于这类网站在页面跳转时,并不进行页面刷新,所以 GA(analytics.google)不会发送 PV 数据, 这时该怎么办呢,其实官方文档中给出了建议,链接点这儿,文档的大意是,你的网站,你当然知道什么时候需要

在上一篇文章中说了下基础的 tagmanager 怎么使用入口在这里

下面是我遇到的一些问题,以及处理方法,可能有些有问题,或者处理的很复杂,如果你有更好的思路,请一定联系我 hellozhengjia@gmail.com 感谢。

一、单应用页面怎么处理 PV(pageview)?

现在有很多优秀的框架能实现页面应用化,一次加载所有资源,根据路由变化,加载不同页面,而不进行刷新,例如AngularJS ,由于这类网站在页面跳转时,并不进行页面刷新,所以 GA(analytics.google)不会发送 PV 数据, 这时该怎么办呢,其实官方文档中给出了建议,链接点这儿,文档的大意是,你的网站,你当然知道什么时候需要发 PV 了,so,需要的时候就发给我吧

第一步,设置 page, ga('set', 'page', '/new-page');

第二步,发送 pv, ga('send', 'pageview');

搞定,超简单。

1、但是这里有一个问题,设置 page?什么是 page?

举个例子,例如你使用的是 angular,你的链接就会像这样: harvestmoon.cn/blog/#/abc、 harvestmoon.cn/blog/#/xyz,… page 为别为 abc、xyz;在我自己的实践中,我是将 page 设置为 blog/abc 和 blog/xyz 的,统计的数据也是正确的,可能是伟大的谷歌为我们做好了兼容。

2、这里还有一个问题,在逻辑代码中,我知道什么时候执行 设置 page发送 pv ,但是在 tagmanager 中怎么设置触发器呢?

这位观众,你很厉害哦,一下抓住了重点,接下来,我们就讲讲在单应用页面中怎么使用 tagmanager。

二、单应用页面中使用 tagmanager

问题的关键就是:在我们本地的代码中,我们总是知道何时发生了路由切换,从而知道什么时候发送 pv,以 angular 为例,如下代码

$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
    ga('set', 'page', '/blog/abc');
	ga('send','pageview');
});
复制代码

所以我们只需要在 tagmanager 中找到这样一个触发时机即可,在新建触发器(triggers)时,伟大的谷歌再次让我膜拜,我发现一个内置的触发器叫做【历史记录更改】,它的意思是只要是网址发送了变化,就会触发,简直就是为单应用定制的触发器。

google.tagmanager 在单页面中的实践

知道什么时候触发,接下来,只需要搞定执行代码即可,然而代码早已经有了 ga('set', 'page', '/new-page'); ga('send','pageview');

三、是时候看看具体的操作了

1、我们从代码(tags)开始,选择新建代码,依次:

选择产品-》Google Analysis;

选择代码类型-》Universal Analytsis;

配置代码-》跟踪ID 填入你的 Analysis.Google 的 ID,在管理下的媒体资源设置下可以找到,我这里填入的是 ga-property 是引用了自己设置的一个变量(变量在下面介绍)。

-》跟踪类型:网页浏览(就是平时所说的 pv)

​ -》字段名称填入 page,值填入本页面的 page 值(这里我有使用了一个自定义的变量 ga-page 值,后边讲解怎么设置)

触发条件-》新建一个触发器,历史记录更改;如图,还有一个【窗口已经加载】触发器,是因为页面第一次加载时,我们需要发送 pv,【历史记录更改】在第一次加载时,是不会触发的。

google.tagmanager 在单页面中的实践

2、变量的创建,

1)ga-property 变量,在左边栏选择变量(variables),选择新建

选择类型-》常理

配置变量-》填入你的跟踪 ID 即可

google.tagmanager 在单页面中的实践

2)ga-page 值

主要说下自定义的 JavaScript,你需要创建一个匿名函数,返回你需要的值即可

www.smartisan.com/t2/#/overvi… 这个网址做例,我这里返回的就是 t2/overview,你可以根据自己的需要返回任何值

google.tagmanager 在单页面中的实践

四、 可能的问题

tagmanager 解决单页面 pv 的问题大致就如上,下面记录一些已知问题

1、发送的 pv 标题错误:由于触发条件为【历史记录更改】,会导致单页面标题还未改变,就已经发送了 pv,所以往往本次 pv 的标题还是上个页面的。

目前我想到的解决方法比较傻,就是每次发送 pv 的代码(tags)都选择【自定义 javascript】,在代码了 setTimeout 延迟大概 200ms 然后发送 pv,这时候标题已经切换为新的了。但是这样有个问题,【自定义 javascript】每次触发都会忘页面的 body 后边加入一个想 标签,目前看来虽然没有什么大的伤害,但总是不够优雅。

google.tagmanager 在单页面中的实践

我的个人网站


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创业无畏

创业无畏

彼得· 戴曼迪斯、史蒂芬· 科特勒 / 贾拥民 / 浙江人民出版社 / 2015-8 / 69.90元

 您是否有最大胆的商业梦想?您是否想把一个好主意快速转化为一家市值几百亿甚至几千亿元的公司?《创业无畏》不仅分享了成功创业家的真知灼见,更为我们绘制了一幅激情创业的行动路线图!  创业缺人手怎么办?如何解决钱的问题?把握指数型大众工具,互联网就是你车间,你的仓库。拥有好的创意,自然有人把钱“白白地送给你用”。当你大海捞针的时候,激励性大奖赛会让针自己跑到你的眼前来!  掌握指数级......一起来看看 《创业无畏》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码