去年,我写过一篇如何应用自定义JS来追踪内部推广活动追踪的文章。每当我需要部署banner追踪的时候,就拿出来当作教程来辅助我工作。但是它有着一定的局限性,比如需要同时追踪多个banner的时候,比如频繁改动banner的时候。
在开发者的帮助下,应用dataLayer和自定义JS能够较好的解决上述应用场景。
闲话少说,直接上源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'masterBanner01': { 'id': 'masterBanner01', //动态获取banner的ID 'name': 'YYMMDDNewRelease', //这里给运营留字段补充格式为200531banner内容,表示修改banner的日期和banner的内容(不超过3个单词) 'creative': 'security', //这里给运营留字段补充security/appliances/promotion/others 'position': 'static', //这里填写static(静态图片)或者dynamic(视频或者gif) }, 'masterBanner02': { 'id': 'masterBanner02', //动态获取banner的ID 'name': 'YYMMDDNewRelease', //这里给运营留字段补充格式为200531banner内容,表示修改banner的日期和banner的内容(不超过3个单词) 'creative': 'security', //这里给运营留字段补充security/appliances/promotion/others 'position': 'static', //这里填写static(静态图片)或者dynamic(视频或者gif) }, }); </script> |
注意在dataLayer中,我们把每一个banner作为一个单独的键值对作为对象存储,creative和position我这里打破常规存储了一些banner的详细信息,因为在id和name中我们已经能够读取到banner的位置和内容。
回到GTM中,我们分别创建dataLayer变量。
然后将创建的数据层变量传递到自定义JS中即可。
打开GTM预览/debug模式,我们看数据有没有正确的传递。
Bingo!剩下的步骤参见我第一篇关于内部推广追踪的博客即可。
总结
如何解决同时追踪多个banner的场景?
我们将不同的banner分别存储在dataLayer中,方便我们读取对应的banner对象。
如何解决频繁改动banner的场景?
我们在开发者的帮助下,动态获取和手动命名,只需要改dataLayer里的数据即可,不需要在GTM中反复的修改。
http://xzh.i3geek.com
有任何疑问,欢迎留言提出:)