返回博客

博客

适用于 TYPO3 的 SignalHost:安装扩展,逐个连接网站,服务器端跟踪即刻上线

发布于 · 阅读约 8 分钟

在 TYPO3 Extension Repository 获取

SignalHost 扩展无需粘贴一行代码,就能把服务器端 Google Tag Manager 装到你的 TYPO3 网站上。它把跟踪加载器添加到已连接网站的每个前台页面,在我们这边有任何变化时保持它最新,并在你断开连接时再把它移除。多站点安装中的每个网站都要单独连接,本指南以一个网站为例,从安装一直讲到测试。

开始之前

  • TYPO3 13.4 LTS 或 14.3 LTS,运行在 PHP 8.2 或更高版本上,并带有 sodium 扩展。
  • 一个 SignalHost 账号。免费套餐足以试用:每月 10,000 次请求和一个容器。你可以在连接时创建账号。
  • 一个后台管理员账号。SignalHost 模块仅供管理员使用。
  • 一个在站点配置中其 base 带有域名的网站,例如 https://www.example.com/。

1. 安装扩展

在基于 Composer 的安装中,从 Packagist 引入它:

composer require signalhost/server-side-tagging

在经典模式下,则改为从 Extension Manager 安装;它在 TYPO3 Extension Repository 中,键名为 signalhost_server_side_tagging。在网站连接之前,它不会向该网站添加任何东西。

2. 把网站连接到容器

在 TYPO3 后台中打开「Sites › SignalHost」(在 TYPO3 13 上是「Site Management › SignalHost」),每个网站在那里都有自己的卡片。连接后,SignalHost 会把你送回该网站自己的地址,所以请在该网站的域名下打开后台;如果在别的域名下,卡片上会有一个按钮,在该网站的域名下打开这个页面,你可能需要在那里登录一次。

在网站的卡片上按「Connect with SignalHost」;如果你还没有账号,则按「Create a free account」。在你按下连接之前,不会向 SignalHost 发送任何东西。在 signalhost.io 上登录。下一个页面会列出扩展能做和不能做的事,并询问网站应使用哪个容器。容器就是你自己的跟踪服务器:一个 Tag Manager 网页容器和一个服务器容器,构建在你自己的 Google 账号中,因此始终归你所有。

选择一个现有容器,或者按「为你的网站新建容器」并走完简短的向导。新容器需要几分钟来构建;你可以立即连接,准备就绪后代码就会马上添加。按「连接」,你会回到卡片上,并看到消息「Connected」。SignalHost 的代码现在已经添加到这个网站的每个页面上了。对每个你想跟踪的网站重复这一步。

3. 检查代码是否已在你的网站上

现在网站的卡片会显示「Tracking is live」;如果新容器仍在构建中,则显示「Tracking starts as soon as your container is ready」。然后看「On your home page」这一行:连接之后,扩展会立即像访客一样获取你的首页并查找它的代码。「Code found」就是你想要的答案。「Check again」可以随时重新检查,其他答案见「出现问题时」。

4. 测试一下

在无痕窗口中打开你的网站,点击浏览几个页面;拒绝 Cookie 横幅的访客仍会被统计,以 Google 的无 Cookie ping 的形式。然后按「Open statistics & settings」,打开你在 signalhost.io 上的容器页面。

在「详细访问统计」下,「最近」选项卡显示最近 30 分钟的页面浏览,其中包括你自己的。页面底部「故障排查」下的「运行检查」会把你的跟踪服务器收到的数据与 Google Analytics 在同样 30 分钟内报告的数据进行比较。Analytics 中的数字更少是正常的:它不统计拒绝 Cookie 的访客。从 Growth 套餐起,「实时事件监控」会在每个事件到达时把它显示出来。

扩展在你的网站上添加了什么

每个已连接的网站一个小脚本,以及每小时一次的同步:

  • Google Tag Manager 加载器,位于每个前台页面 head 部分的结尾之前,指向该网站自己的跟踪地址而不是 googletagmanager.com。它从那里加载你的 Tag Manager 容器。它在 TYPO3 的页面缓存之后才被插入最终页面,因此不需要清除任何缓存。如果网站强制执行 TYPO3 的内容安全策略(Content Security Policy),扩展会把跟踪地址加入其中,并通过哈希值放行加载器,除非该策略已经允许内联脚本。
  • 每小时一次,在某个响应发送出去之后,扩展会与 signalhost.io 同步,以保持最新。它只发送扩展、TYPO3 和 PHP 的版本、网站的地址,以及代码是否在首页上被找到:不发送访客数据、内容或用户账号。如果无法连接到 signalhost.io,网站会保留上一次有效的配置。

每个请求都以广告拦截器无法识别的形式离开浏览器,你的跟踪服务器再把它转发给 Google Analytics 4 以及你在容器页面上设置的广告平台:Google Ads、Meta、TikTok 等。跟踪通过 Google Consent Mode 跟随你的 Cookie 横幅。位于 head 中的横幅会排在加载器之前;如果横幅加载得更晚,它必须在加载器之前设置好 Consent Mode 的默认值。

扩展不读取表单或订单。页面浏览会自行到达;购买或潜在客户线索要由你的网站推送到数据层,才会到达你的容器。

你自己的跟踪域名

你的容器起初使用 signalhost.io 下的一个地址。在付费套餐中,容器页面上的「设置您自己的域名」会通过在你的服务商处添加一条 DNS 记录,把它迁到你自己网站的子域名上,例如 sgtm.yoursite.com。这个地址能扛过过滤列表,并让点击 Cookie 保持第一方。它上线后,扩展会在下一次同步时把该网站切换过去,通常在一小时内,网站的内容安全策略也会随之更新。不需要手动替换任何东西,在此之前旧地址也会继续工作。

手动添加 SignalHost

你也可以自己粘贴代码。在容器页面上,在「安装到您的网站」卡片中找到你的代码片段,按「复制」。把它粘贴到每个页面的 head 部分(在 TYPO3 中,通过你的模板或 TypoScript),紧跟在 Cookie 横幅的脚本之后,然后按「我已完成」。「复制给 AI 智能体」可以把同样的任务交给编程智能体。

手动粘贴会失去扩展所做的事:没有东西检查你的首页,断开连接时也没有东西移除代码,强制执行 TYPO3 内容安全策略的网站需要手动放行脚本和跟踪地址;而当你自己的域名上线时,你需要根据卡片上的「请更新网站代码」或宣布域名上线的电子邮件,自己替换代码。千万不要两种方式同时使用:两份代码会把每次访问计两次。

更新、管理与断开连接

用安装时的方式更新它:通过 Composer,或者在经典模式下通过 Extension Manager。

网站卡片上的「Disconnect」会先询问一次,然后立即从该网站的每个页面移除 SignalHost 的代码,并撤销它的访问权限。其他网站保持连接,你的容器及其数据也会保留在你的 SignalHost 账号中。

在 signalhost.io 上,容器页面会显示「已由你网站上的 TYPO3 扩展安装」。它的「管理」按钮会带你前往「设置」中的「已连接的网站」,在那里「断开连接」同样有效:扩展会在下一次同步时停止加载 SignalHost,通常在一小时内。

在经典模式下,在 Extension Manager 中停用扩展会撤销所有网站的访问权限,并移除它存储的内容。composer remove 不会运行任何 TYPO3 代码,所以请先逐个断开网站;否则它们会继续列在「设置」中的「已连接的网站」下,你需要在那里断开它们。

出现问题时

  • 卡片提示 SignalHost 会在连接后把你送回该网站自己的地址:你是在另一个域名下打开后台的。使用下方的按钮,在该网站的域名下打开这个页面。
  • 「Could not check (your server refused a request to itself)」:你的主机拦截了发往它自己地址的请求。这与你的访客无关;请在首页源代码中查找你的跟踪地址。
  • 「An older copy is on the page」或「The code is on the page twice」:有一份代码被手动粘贴到了模板、TypoScript 或其他扩展中。移除它;扩展会添加最新的那一份,两份代码会把每次访问计两次。
  • 提示你的网站已经用 Google 自己的代码片段加载了一个 Tag Manager 容器:移除那段代码片段,因为现在由 SignalHost 加载这个容器,两者同时存在会把每次访问计两次。
  • 此网站的地址在连接之后发生了变化:在副本上(例如预发布环境),不会发送任何东西。如果是线上网站搬了家,请断开连接后重新连接。
  • 其他任何问题:请写信至 hello@signalhost.io,并附上你的网站地址。

商标声明

SignalHost 是 Algorithmo GmbH 的独立产品,与 TYPO3 Association、Google、Meta 或 TikTok 没有关联,也未获得其认可。Google Analytics、Google Ads 和 Google Tag Manager 是 Google LLC 的商标;Meta 是 Meta Platforms, Inc. 的商标;TikTok 是 ByteDance Ltd. 的商标;TYPO3 是 TYPO3 Association 的注册商标。

别再把数据丢给广告拦截器

免费开始。几分钟即可运行第一个容器。