不知道大家有没有遇到和我一样的问题:出海项目想同时支持国内用户,但使用 GA4 做数据分析上报时,请求的域名是 Google 的,导致在国内环境下无法正常访问。
我研究了一天,发现 Google 官方其实提供了一个可行的解决办法。
这个方案本来的目标,并不是专门为了解决国内无法访问的问题,而是为了应对部分用户安装广告拦截插件后的拦截情况。因为很多插件会通过识别请求域名是否属于 Google 来进行拦截,所以 Google 提供了一个能力,支持使用自定义域名和路径来加载 JS 以及发送上报请求。
这个方案同样可以用于解决国内访问受限的问题。下面我演示一下,如何把默认的 Google 域名替换成自己网站的域名。
进入 Google Tag Manager,也就是常说的 GTM。在 GA4 的菜单里就有
点击“管理”,创建一个新的容器,填写自己的网站信息后点击创建。
创建完成后会弹出一个窗口,让你把代码加入到自己的网站中。
这里先不用管,因为这一步给出的代码仍然使用的是 Google 的域名。可以先忽略,继续往下操作。
回到“管理”页面,点击“Google 代码网关”。
然后选择 Cloudflare,并登录你的 Cloudflare 账号进行授权。
进入 Cloudflare 后,选择你要配置的域名。
随后会进入 Cloudflare 自己提供的 Google Tag Gateway 配置页面,这里勾选 Set up tag。
完成后,Cloudflare 会自动给你的网站加上相关代码(因为你使用了 Cloudflare 的 CDN ,你的网页上会在 cdn 节点上被 Cloudflare 修改加上上报需要的 <script> 标签),不需要手动修改。
前提条件:你的网站 DNS 需要使用 Cloudflare ,并且域名已经开启橙色云代理,也就是 Proxy 状态。
配置完成后,回到 Google Tag Manager 的“管理”页面。
在 Install Google Tag Manager 这里进行测试,如果你看到绿色箭头,说明配置已经成功。
到这里还没有结束。
你还需要进入 Workspace,在 Tags 标签页中新建一个 GA4 标签,填入你自己的 GA4 Measurement ID ,也就是类似 G-XXXXXXX 的那个 ID 。
配置完成后,点击发布即可。
通过 Google Tag Gateway + Cloudflare 的方式,可以把原本依赖 Google 域名的 JS 加载和数据上报,替换成自己网站的域名来完成。
这样做有两个明显好处:
对于想同时兼顾海外和国内用户的数据分析场景,这个方案还是挺实用的。