5 gtm 工作原理_一文看懂如何部署GTM的服务端标记

314ab5ddfcc45c0d487ab458d53c4d4c.png

如何使用服务器端的GTM容器发送网站跟踪数据?

文丨洪晓丹

触脉咨询数据工程师

2020年8月12日,Google发布了GTM的公开测试版,引入了新的容器类型(“Server”),与传统的web端容器不同,新的容器类型需要运行在Google Cloud环境中。

一、服务器端标记是什么?

我们知道,传统的web端容器的工作原理是:网站开发人员先将web端容器的容器代码添加到网站的源代码中。在页面加载的时候,容器代码也会被加载,相应的代码也会根据实际的配置情况在合适的时机触发。

6e3a866b23699f51798581093cf7c663.png

而服务器端标记可以理解为,在浏览器和app发送的数据与实际上报到GA中的数据之间加了一层代理。服务器端容器做为http API端点运行,网站部署的gtag.js或者web端容器的Universal Tag将http请求发送到服务器,服务器端容器会侦听这些传入的请求,并将其解析为我们所熟悉的事件格式再转发到GA。

017e5b9f02c7c7a8f12355ab99cb3bb0.png

二、如何开始部署?

1.创建GTM服务器端容器

Step1.登录GTM账号,转到“管理员”板块,点击新建容器

ff4d0ebb8a081954186494dc4f8b45f7.png

Step2.为容器命名,并选择目标平台为服务器。

86bbbd98cf898d641a6e82a62bbd4f87.png

Step3.需要新建Google Cloud Platform项目,这里可以选择自动创建服务器或者手动配置。

在这里演示比较简单的第一种方法。

5ff2258302a1319aacbfbc419b7796bf.png

创建服务器首先需要指定一个结算账户,如果没有的话根据指示创建结算账户。

1ea0d23bb9f8ef76ebbd1e7cce9cdc49.png

等待一两分钟,GCP项目及对应的服务器就会自动配置完成,然后会看到以下窗口,可以查看服务器的相关信息。

1122fc5539d4fd19a5cf20099aae8845.png

2.设置将事件发送到服务器(gtag.js/gtm)

(1)通过gtag.js配置

对于直接部署gtag.js的情况,需要在config设置中,通过transport_url字段,指定http请求发送到服务器:

  window.dataLayer = window.dataLayer || [];

  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());

  gtag('config', 'UA-XXXXX-Y', {  //填写实际的tracking_id

    transport_url: 'https://gtm-555j48n-ndeyz.uc.r.appspot.com' //url需填写创建的服务器的网址

  });

(2)通过web端GTM容器配置

对于通过web容器部署的情况,需要在GA设置变量、设置http请求目标路径

(更多设置>>高级配置>>传输网址)

9ec64ca9cf47cb004b75bb4d14f12bfc.png

3.客户端配置

对于服务器端的容器,需要配置客户端以监听网站或者app发送的http请求,并将其解析为事件格式的数据。支持的客户端类型包括Universal Analytics、App+Web和Measurement Protocol。

当然,新建服务器端容器的时候会自动创建两个客户端,分别名为Universal Analytics和App+Web,可根据需要选用或者创建更多客户端。

ebe2db68367ad9c4163cc8268fe49d5a.png

4.创建触发器、标签、变量等

此步骤和传统web容器配置很类似,当客户端将监听到的http请求解析为事件以后,服务器端容器还需要配置触发器及代码,以在合适的时机将数据发送到GA,也可能会需要设置变量。

如下图所示,这里展示的例子将接受Universal Analytics的所有数据(包括浏览、事件等)并全部发送:

168da413ffb45176685a61548bfb87de.png

dd994aab8ea66c7e074429f6ac128e33.png

和传统web端的容器代码不同的是,正常情况下只需要一个tag就可以转发来自网站的所有http请求,当然在实际需要的时候可以配置多个tag。

5.预览模式

服务器端容器点击预览,开启预览模式,浏览器会自动打开一个新的标签页,当与网站进行互动时,与传统web端容器预览模式类似,可以查看标签的触发情况,如下图所示:

45d0872156a36ec82eb7e9564db3ffc9.png

点击request选项卡,可以查看传入的http请求和服务器响应的相关信息,也包括此次请求的客户端信息。

57823f3124f53deefda59c5bfc7d1cab.png

在标签抛出异常的时候,点击errors选项卡,可以查看详细错误信息。

打开浏览器控制台,可以观察到,网页互动时发送的collect请求的域名是第三方域名xxxx.appspot.com,并非google-analytics.com。

c7daa5a2132a1ce6f05e3cb99abb7b32.png

三、设置自定义域

在默认情况下,服务器端代码部署托管在GCP的App Engine网域上,发送到服务器的请求仍会被视为第三方追踪,在某些情况下可能收到限制。因此,可以选择配置自定义网域,将请求发送到自己网站的子域

(配置位置:访问GCP项目>>App Engine >>设置>>自定义网域)

356c72204d454a8e7f89ffd65f6e72dc.png

15bb5b3bece9f12e417c843bc110d317.png

Step1.选择网域

选择需要将请求发送到的自己网站的子域,比如analytics.example.com,若未验证过该网域,需要选择验证新网域,根据指引验证通过后返回自定义网域设置界面,点击刷新网域才可使用此网域。

b5d31dee748558c46f31b30b35e8ea8e.png

bb550147472b5ece6b85fcf154545937.png

Step2.保存映射,将指定的自定义网域指向GTM服务器

89329c3105c1fe60c2fbfdcc7fbe54aa.png

Step3.按照指示更新DNS记录

f666476be7f1e2c312797bb5373cc420.png

Step4.修改服务器端容器配置中的服务器网址

b1f94e24dd263eaac66a182bb4ed8806.png

88b38df329677c045aae53c8d8933fb4.png

Step5.更新gtag.js的config代码中transport_url字段,或者web端容器GA设置变量对应字段,字段值应为已更新的当前服务器指向域名:

(1)gtag.js

  window.dataLayer = window.dataLayer || [];

  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());

  gtag('config', 'UA-XXXXX-Y', {  //填写实际的tracking_id

    transport_url: 'https://gtm-555j48n-ndeyz.uc.r.appspot.com' //url需填写创建的服务器的网址

  });

(2)web容器GA设置变量

991a22be25827e9e7ee41c08f1bb2987.png

Step6.测试自定义网域

开启服务器端容器的预览模式,同时使web端容器更改生效,浏览网站,查看http请求指向的域名,可以观察到发送的collect请求的域名是更新后的自定义网域。

7739c8a68b5bb8dfd43f62c711aa1b53.png

以上就是对于服务器端标记配置的一些简单介绍,当然,目前这个功能还处于beta阶段,本文内容仅适用于现阶段,后续更新请以谷歌官方发布为准,希望能对各位读者起到帮助。

(添加客服,可加入交流群)

备注:昵称-地区-公司-职位

GA使用、数据学习、行业交流、干货分享……

f856fd8503f48ee87bf5428f17056025.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值