博客
适用于 Joomla 的 SignalHost:安装扩展,连接一次,服务器端跟踪即刻上线
发布于 · 阅读约 7 分钟
在 Joomla Extensions Directory 获取
SignalHost 扩展无需粘贴一行代码,就能把服务器端 Google Tag Manager 装到 Joomla 网站上。它把跟踪加载器添加到你网站的每个页面,在我们这边有任何变化时保持它最新,并在你断开连接时再把它移除。本指南按照你遇到它们的顺序展开:安装扩展包、连接容器、检查是否生效,以及出现问题时该怎么办。
开始之前
- Joomla 4.4、5 或 6,运行在 PHP 7.4 或更高版本上。
- 一个 SignalHost 账号。免费套餐足以试用:每月 10,000 次请求和一个容器。你可以在连接时创建账号。
- Joomla 后台中的一个 Super User 账号:连接和断开连接需要配置 SignalHost 组件的权限,而 Super User 拥有这项权限。
1. 安装扩展
从 Joomla Extensions Directory 下载扩展包,它在那里的名称是 SignalHost Server-Side Tagging。在 Joomla 后台中打开「System › Install › Extensions」,上传 zip 文件。
这是一个包含两部分的扩展包:SignalHost 组件,你在这里连接网站并查看其状态;以及系统插件 System - SignalHost Server-Side Tagging,它负责把代码放到你的页面上。安装时插件会自动启用;在网站连接之前,它不会输出任何东西。
2. 把网站连接到容器
打开「Components › SignalHost」,按「Connect with SignalHost」。如果你还没有账号,「Create a free account」会改为带你去注册。在你按下连接之前,不会向 SignalHost 发送任何东西。
在 signalhost.io 上登录。下一个页面会列出扩展能做和不能做的事,并询问网站应使用哪个容器。容器就是你自己的跟踪服务器:一个 Tag Manager 网页容器和一个服务器容器,构建在你自己的 Google 账号中,因此始终归你所有。
选择一个现有容器,或者按「为你的网站新建容器」并走完简短的向导。新容器需要几分钟来构建;你可以立即连接,准备就绪后代码就会马上添加。按「连接」。你会回到「Components › SignalHost」,并看到消息「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 容器。插件通过 Joomla 的 Web Asset Manager 添加它,因此当你的网站使用 CSP nonce 时,它也会带上 nonce。它从不在后台、订阅源或仅组件视图中运行。
- 每小时一次,在某个页面发送出去之后,插件会与 signalhost.io 同步,以保持最新。它只发送扩展、Joomla 和 PHP 的版本、你网站的地址,以及代码是否在你的首页上被找到:不发送访客数据、内容或用户账号。如果无法连接到 signalhost.io,你的网站会保留上一次有效的配置。
每个请求都以广告拦截器无法识别的形式离开浏览器,你的跟踪服务器再把它转发给 Google Analytics 4 以及你在容器页面上设置的广告平台:Google Ads、Meta、TikTok 等。跟踪通过 Google Consent Mode 跟随你的 Cookie 横幅;请把横幅的代码放在 SignalHost 的代码之前。
扩展不读取表单或订单。页面浏览会自行到达;购买或潜在客户线索要由你的网站推送到数据层,才会到达你的容器。
你自己的跟踪域名
你的容器起初使用 signalhost.io 下的一个地址。在付费套餐中,容器页面上的「设置您自己的域名」会通过在你的服务商处添加一条 DNS 记录,把它迁到你自己网站的子域名上,例如 sgtm.yoursite.com。这个地址能扛过过滤列表,并让点击 Cookie 保持第一方。它上线后,扩展会在下一次同步时把你的网站切换过去,通常在一小时内,并清除 Joomla 的页面缓存。不需要手动替换任何东西,在此之前旧地址也会继续工作。
手动添加 SignalHost
你也可以自己粘贴代码。在容器页面上,在「安装到您的网站」卡片中找到你的代码片段,按「复制」。把它粘贴到每个页面的 head 部分(在 Joomla 中,就是你网站的模板),紧跟在 Cookie 横幅的脚本之后,然后按「我已完成」。「复制给 AI 智能体」可以把同样的任务交给编程智能体。
手动粘贴会失去扩展所做的事:没有东西检查你的首页,断开连接时也没有东西移除代码,除非你自己添加,否则加载器不会带 CSP nonce;而当你自己的域名上线时,你需要根据卡片上的「请更新网站代码」或宣布域名上线的电子邮件,自己替换代码。千万不要两种方式同时使用:两份代码会把每次访问计两次。
更新、管理与断开连接
更新和其他扩展一样,通过 Joomla 自己的更新程序送达,位于「System › Update › Extensions」下。
「Components › SignalHost」页面上的「Disconnect」会先询问一次,然后撤销网站的访问权限,从每个页面移除代码,并清除 Joomla 的页面缓存。你的容器及其统计数据会保留,你可以随时重新连接。
在 signalhost.io 上,容器页面会显示「已由你网站上的 Joomla 扩展安装」。它的「管理」按钮会带你前往「设置」中的「已连接的网站」,在那里「断开连接」同样有效:扩展会在下一次同步时停止加载 SignalHost,通常在一小时内。
卸载扩展包会移除扩展存储的所有内容。请先断开连接,这样 SignalHost 也会知道网站已经不在了。
出现问题时
- 「Code not found」:插件可能被关闭了。在 Joomla 的插件管理器中启用 System - SignalHost Server-Side Tagging,然后按「Check again」。
- 「Could not check (your server refused a request to itself)」:你的主机拦截了发往它自己地址的请求。这与你的访客无关;请在首页源代码中查找你的跟踪地址。
- 「An older copy is on the page」或「The code is on the page twice」:有一份代码被手动粘贴到了模板或其他扩展中。移除它;扩展会添加最新的那一份,两份代码会把每次访问计两次。
- 提示你的网站已经用 Google 自己的代码片段加载了一个 Tag Manager 容器:移除那段代码片段,因为现在由 SignalHost 加载这个容器,两者同时存在会把每次访问计两次。
- 此网站的地址在连接之后发生了变化:在副本上(例如预发布环境),不会发送任何东西。如果是线上网站搬了家,请断开连接后重新连接。
- 「Components › SignalHost」总是打开仪表盘:在全新安装的 Joomla 上,首次登录的引导教程会让每个后台页面都这样,直到你把它隐藏。
- 其他任何问题:请写信至 hello@signalhost.io,并附上你的网站地址。
商标声明
SignalHost 是 Algorithmo GmbH 的独立产品,与 Open Source Matters、Google、Meta 或 TikTok 没有关联,也未获得其认可。Google Analytics、Google Ads 和 Google Tag Manager 是 Google LLC 的商标;Meta 是 Meta Platforms, Inc. 的商标;TikTok 是 ByteDance Ltd. 的商标;Joomla! 是 Open Source Matters, Inc. 的商标。

