当前位置: 首页 > article >正文

Google Tag Manager - 服务器端代码植入

服务端跟踪出现的原因;

服务端跟踪主要有两个原因:

  • 法律法规日趋严格,如GDPR,CCPA的的实施,对用户隐私保护越加严格,服务端跟踪可以让你对数据有完整的控制,你可以控制哪些数据可以发送给第三方平台。

  • 浏览器的隐私保护,如苹果的ITP,Firefox的ETP,它在浏览器本地内置机器学习去屏蔽第三方跟踪,通过服务端跟踪能有效解决;

客户端跟踪 VS 服务端跟踪

客户端跟踪

现在客户端的一般是采用页面标签技术,将不同的分析工具直接布署或通过GTM布署到页面上去,用户打开页面的时候加载GTM上的配置,然后触发不同分析工具代码将数据直接发向不同的第三方收集服务器,如下图:

目前业内主流的布署方法是客户端布署,英文全称是Client-Side Tagging,简称CST,也可以叫设备端布署。客户端布署的容器配置是在浏览器上运行,数据直接从浏览器通过JavaScript请求发送到第三方平台,这是业内主流、经典的布署方法。

服务器端跟踪

服务端跟踪是将数据发送到TMS服务器,再将数据转化成不同工具的数据通过API发向不同的第三方收集服务器,你可以对发送数据的字段做控制

TMS服务端部署至少需要配置代码植入服务器( 就是图中的Tagging servers)和预览服务器(图中的Preview server ),所以至少需要两台服务器。

  • Tagging servers是所有请求去到代码植入服务器的入口点,并将负责处理请求。

  • Preview server是用于预览服务器容器,用于测试。

为了获得更出色的可用性、可扩缩性和性能,官方推荐的是服务器端代码植入服务器配置成集群的形式,所以至少需要三台服务器,可以使用GCP,也可以使用其他厂家的服务器,国内厂家的服务器连接不上谷歌的服务,需要使用境外服务器。

对比;

它们两者的对比如下:

在Client-Side Tagging中,Tag Manager是在浏览器中运行,数据直接从浏览器通过JavaScript请求发送到第三方平台,如发送给Google Analytics、Facebook、Adwords等。

在Server-Side Tagging中,多出了个Client概念,这个是适配器,一个是在浏览器中,它是收集数据,将数据转化成特定的形式然后发给TMS服务器;一个是在TMS服务器中,它是对接收到的数据做处理,解析出来。最后数据在TMS服务器上的Tag Manager运行,将数据从服务端通过API请求发给第三方平台,如发送给Google Analytics、Facebook、Adwords等。

服务端跟踪的有点;

  • 改进的性能:网站页面加载和发送的请求/数据变少了,用户浏览会更流畅

  • 更高的安全性:在TMS服务器上,你可以完全控制发送的数据,可以更好地保护访问者数据。

服务端跟踪与之前的GTM有什么不同?

  • 数据传输方式:原有的GTM是第三方工具分别向不同的服务器发送数据,服务端的统一收集后再处理转发到第三方平台

  • 服务器:服务端跟踪自然需要使用服务器的,需要有自己的服务器,这个服务器的作用是放容器代码,收集和转发数据,

  • 加载代码的域:原有GTM是从谷歌服务器加载,服务端的可以用解析到自己的二级域名的,也就是所有的代码和收集收集的服务器指向的域名都可以是自己的,能解决被屏蔽的可能。

  • 费用:原有的GTM是免费,服务端的由于使用到服务器,会需要付费的

服务器跟踪优势

  • 数据质量更高;直接从网页传输到GA4会因为网络稳定性,页面Js的负载等原因出现数据丢失情况,传输效率一般在98%左右。

  • 解决浏览器禁用Cookies 问题:服务器端跟踪,可以自定义二级域名,从站点传输数据到服务器端,不被定义为第三方,解决浏览器禁用第三方cookies 的问题。

  • 数据更合规;数据传输到服务器端后,可以在服务器端完成数据得脱敏工作,然后再传输到第三方平台,这样更符合数据合规要求。

  • 网站页面速度更快;因为只需要在前端部署一套数据收集代码,不需要处理和响应,数据是传输到服务器端进行处理的,所以前端页面加载速度更快

服务器端代码植入 官方介绍

https://developers.google.com/tag-platform/tag-manager/server-side?hl=zh-cn


http://www.kler.cn/news/326163.html

相关文章:

  • Python与SQL Server数据库结合导出Excel并做部分修改
  • ElasticSearch安装分词器与整合SpringBoot
  • 【制作自解压程序】使用7Z制作自解压程序
  • OceanBase技术解析:自适应分布式下压技术
  • 【软件整理资料】软件项目配套资料,项目计划书(word)
  • IDEA使用技巧和插件推荐
  • 爬虫及数据可视化——运用Hadoop和MongoDB数据进行分析
  • js中的深拷贝与浅拷贝 手写深拷贝代码
  • 深入剖析 Android Lifecycle:构建高效稳定的应用
  • 如何设计能吸引下载的截图以及注意事项
  • SpringBoot助力墙绘艺术市场创新
  • golang学习笔记16-数组
  • java 解析excel (本地资源)
  • Android常用C++特性之std::find_if
  • CF1619D.New Year‘s Problem
  • 解决 TypeError: Expected state_dict to be dict-like, , got <class ‘*‘>.
  • Acwing 最小生成树
  • 每日OJ题_牛客_NC40链表相加(二)_链表+高精度加法_C++_Java
  • 《黑神话:悟空》天命人速通法宝 | 北通鲲鹏20智控游戏手柄评测
  • linux打开桌面软件(wps)、获取已打开的文件名(wps)
  • Ini文件读写配置工具类 - C#小函数类推荐
  • 汽车免拆诊断案例 | 2016 款宾利GT车仪表盘上的多个故障灯点亮
  • 使用TensorFlow实现一个简单的神经网络:从入门到精通
  • 动手学深度学习(李沐)PyTorch 第 3 章 线性神经网络
  • TiDB 性能测试的几个优化点
  • Leetcode热题100-438 找出字符串中所有字母异位数
  • R语言非参数回归预测摩托车事故、收入数据:局部回归、核回归、LOESS可视化...
  • 408算法题leetcode--第19天
  • java通过webhook给飞书发送群消息
  • PTA L1-080 乘法口诀数列