我开始从 GTM 迁移到 GTM 服务器。我已经使用 Loadbalancer 在 Google Cloud Run 中为我们的测试环境设置了所有内容,一切正常。
现在我已经为我们的生产系统设置了所有内容,但 GTM 调试模式不起作用并抛出错误 400 错误请求 - 我使用与测试环境中相同的设置和配置:
https://sst.myserver.com/healthz中的状态也表示正常。
在网上搜索了一些错误,有人说如果服务器抛出400,则客户端丢失。但我也将 GA4 与它连接,并且数据将传入 GA4。只有调试模式在 /gtm/debug/... 下不起作用
有什么想法吗?
终于找到问题了。预览服务器未作为预览服务器正确运行。在 Cloud Run 中,环境变量名称“RUN_AS_PREVIEW_SERVER”有一个空格,这导致预览服务器作为常规服务器启动。并且常规服务器不允许正确处理 /gtm/debug 请求。
snowplow/snowplow-gtm-server-side-client
第39期说明了您不需要额外空格的配置(!)
我已经按照“在 AWS 上使用 Google 标签管理器进行服务器端网站分析的指南”设置了 GTM 服务器端
现在我有两个链接可以访问我的 GTM 服务器:
主服务器端容器 (analytics.example.com)
预览服务器容器 (preview-analytics.example.com)
我在 GTM 的 aws_ecs_task_definition 设置中使用这些参数:
预览容器:
container_definitions = <<TASK_DEFINITION [ { "name": "preview", "image": "gcr.io/cloud-tagging-10302018/gtm-cloud-image", "environment": [ { "name": "PORT", "value": "80" }, { "name": "RUN_AS_PREVIEW_SERVER", "value": "true" }, { "name": "CONTAINER_CONFIG", "value": "${var.CONTAINER_CONFIG}" } ],
主要容器:
{ "name": "primary", "image": "gcr.io/cloud-tagging-10302018/gtm-cloud-image", "environment": [ { "name": "PORT", "value": "80" }, { "name": "PREVIEW_SERVER_URL", "value": "${var.PREVIEW_SERVER_URL}" }, { "name": "CONTAINER_CONFIG", "value": "${var.CONTAINER_CONFIG}" } ]
任何额外的空格,“
RUN_AS_PREVIEW_SERVER
”名称都没有任何价值。