最近wap端有个需求,要监控页面引导到应用市场的广告的展示量,因为近期来说应用市场的下载量减少了,但wap的在线数量没变,想要知道是不是这个banner的展示量减少,还是用户不愿意点击,如果是展示量减少,可以调整展示规则,如果是用户不愿意点击,那么这个banner的形式就要做调整了。
由于前端的同学比较熟悉datalayer push这种做法,所以沿用这一做法,没有采用ga send的形式。
datalayer push这种做法的原理是想数据层推送时事件,当banner展示的时候就像数据层推送事件,然后在GTM中的触发器里用自定义事件接受作为促发条件,再用一个tag去做事件配置,整体的原理是非常简单的。
(这个地方少了将这个事件设置为非交互事件,实际是需要的)
配置是很简单的,但是在测试的时候事件一直没有触发到,首先是先检查事件是否已经正常push出去,可以看到数据层里面是有这个事件的:
也就是这个事件已经被页面端推送出去的,问题在GTM的配置上了,我再次检查了tag中的配置,还是没有找到问题所在,在考虑是不是因为这个是单页应用做了页面改写了影响到,后面改用基础跟踪代码上复制一份出来做修改,共用原有的基础配置。
事件触发到了,也就印证了我前面的猜想,是改写了页面影响到的,也就是单页应用改写后的事件跟踪需要与基础跟踪代码有共同的页面配置基础。
总结一下:如果事件跟踪没有正常触发,先检查debug下的tag是否被触发,如果没有触发,那就是GTM中触发器的问题;如果被触发了,检查debug状态下的variable和datalayer,看对应的信息和数据是否已经推送出去,如果没有,就是页面端推送的问题;如果两者都正常,但是没触发,那就是这个事件没有跟GA的基础数据关联起来,是tag的配置问题。