简介
众所周知,谷歌的服务在中国大陆总是有股神秘力量在干扰,而谷歌分析也不能幸免于难,总是无法使用
而作为一个有强迫症的人,控制台里这个报错简直令我感觉浑身上下有无数只蚂蚁在爬,坐立难安,正好今天看见Cloudflare多了个新玩具 标记管理——Google 标记 ,这不得好好研究研究?

经过研究,这个“第一方模式的 Google 标记”是一个可以完美解决谷歌分析在中国大陆无法使用的好东西,我先简单介绍一下原理:
传统的谷歌分析是通过在head里安装谷歌分析代码,然后谷歌分析代码向谷歌的后端 https://www.googletagmanager.com/gtag/js?id=这里是你的标记ID 发送分析数据,而https://www.googletagmanager.com 这个网址可以说是几乎不可能打得开、使用,这玩意放在你的页面里就纯粹是为了多加个报错,淦。
而这个“第一方模式的 Google 标记”(这读起来咋跟咒语一样?)就不一样了,它不再是直接向谷歌发送数据请求,而是先向你的域名下的一个路径(例如/analytics)发送数据,然后/analytics路径的路由再向谷歌发送数据,等于说是加了个中转者,帮你中转数据,完美的绕开了神秘的力量,让分析数据可以走你的网站线路,只要能访问你的网站,就能使用谷歌分析!

配置
首先你的网站域名要托管在Cloudflare上,并且有开小黄云,然后到你的Cloudflare主页,下拉找到标记管理——Google 标记,点击打开,然后选择你的域名,看到如下界面了吗?

点击那个更新配置按钮,在标记ID里填入你的谷歌分析的标记ID,标记ID是这玩意:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-0P4JLHJL9R"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-这个就是你的标记ID');
</script>
度量路径是你想要的后端路径,如果站点域名是100713.xyz,度量路径是/analytics,那么分析数据会发送到https://100713.xyz/analytics 下,但你要确保原来这个路径下面没有其他的东西。
设置标记这个也打开,这样更省事。

配置好后点击保存,然后你就可以直接在你的网站上删掉原来的谷歌分析代码块,然后直接使用了!确认配置是否成功你可以按F12开发者工具里的网络选项里搜索/analytics(搜索你的度量路径名),看到有请求该路径的加载请求就说明成功了:

如果你有多个子域名创建了不同的分析项目,你应该在head标签里加入:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-你的标记ID');
</script>
然后关闭Cloudflare的自动安装和设置 Google 标记,这样才能不同的网站区分不同分析项目,关闭Cloudflare的自动安装和设置 Google 标记后Cloudflare只会往你的head标签里塞
<script>(function(w,i,g){w[g]=w[g]||[];if(typeof w[g].push=='function')w[g].push(i)}) (window,'G-你在控制台里设置的ID','google_tags_first_party');</script>
<script async="" src="/analytics/"></script>
虽然里面有你在控制台里设置的ID,但如果你在子域名的网站中设置了
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-子域名ID');
</script>
子域名的ID优先级会更高,数据将会发送到子域名ID的谷歌分析应用下。
完事
点个赞?这可是我第一次为了写文章画流程图呢。如果你有什么不懂、不理解、不确定的地方,欢迎留言提问