ブログ
TYPO3 向け SignalHost:拡張機能をインストールし、サイトごとに接続すれば、サーバーサイドのトラッキングが稼働
公開 · 読了 11 分
TYPO3 Extension Repository で入手
SignalHost 拡張機能は、コードを 1 行も貼り付けることなく、TYPO3 サイトにサーバーサイド Google Tag Manager を導入します。接続したサイトのすべてのフロントエンドページにトラッキング用のローダーを追加し、当社側で何かが変われば最新の状態に保ち、接続を解除すれば再び取り除きます。マルチサイト構成のインストールでは各サイトを個別に接続します。このガイドでは、1 つのサイトについてインストールからテストまでを順に説明します。
始める前に
- sodium 拡張を備えた PHP 8.2 以降で動作する TYPO3 13.4 LTS または 14.3 LTS。
- SignalHost のアカウント。試すだけなら無料プランで十分です。毎月 1 万リクエスト、コンテナ 1 つ。アカウントは接続の途中でも作成できます。
- バックエンドの管理者アカウント。SignalHost モジュールは管理者専用です。
- サイト設定のベースに、https://www.example.com/ のようなドメインが含まれているサイト。
1. 拡張機能をインストールする
Composer ベースのインストールでは、Packagist から require します:
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」を押してください。「Connect with SignalHost」を押すまで、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 分のページビューが表示されます。ページ下部の「トラブルシューティング」にある「チェックを実行」は、タギングサーバーが受け取ったものと、同じ 30 分について Google アナリティクスが報告するものを比較します。アナリティクスのほうが少ないのは正常です。Cookie を拒否した訪問者が除外されるからです。Growth プラン以上では、「ライブイベント監視」に、届いたイベントが 1 件ずつ表示されます。
拡張機能がサイトに追加するもの
追加されるのは、接続したサイトごとに小さなスクリプト 1 つと、1 時間ごとの通信です:
- Google Tag Manager のローダー。すべてのフロントエンドページの head の終わりの直前に置かれ、googletagmanager.com ではなくサイト自身のタギングアドレスを向いていて、そこから Tag Manager コンテナを読み込みます。ローダーは TYPO3 のページキャッシュの後で完成したページに挿入されるため、キャッシュを消去する必要はありません。サイトが TYPO3 の Content Security Policy を適用している場合、拡張機能はタギングアドレスをポリシーに追加し、ローダーをそのハッシュで許可します。ただし、ポリシーがすでにインラインスクリプトを許可している場合は除きます。
- 1 時間に 1 回、レスポンスを送信し終えた後に、拡張機能は最新の状態を保つため signalhost.io と通信します。送るのは、拡張機能、TYPO3、PHP のバージョン、サイトのアドレス、ホームページでコードが見つかったかどうかだけです。訪問者のデータ、コンテンツ、ユーザーアカウントは送りません。signalhost.io に接続できない場合、サイトは最後に正常だった設定を使い続けます。
すべてのリクエストは広告ブロッカーが認識できない形でブラウザから送られ、タギングサーバーがそれを Google アナリティクス 4 と、コンテナページで設定した広告プラットフォーム(Google 広告、Meta、TikTok など)に転送します。トラッキングは Google Consent Mode を通じて Cookie バナーに従います。ローダーは head にあるバナーの後に入ります。後から読み込まれるバナーの場合は、ローダーより前に Consent Mode の初期値を設定する必要があります。
拡張機能はフォームや注文を読み取りません。ページビューは自動で届きます。購入やリードは、サイトがデータレイヤーにプッシュしたときにコンテナに届きます。
独自のトラッキングドメイン
コンテナは signalhost.io 配下のアドレスで始まります。有料プランでは、コンテナページの「カスタムドメインを設定する」を使うと、プロバイダで DNS レコードを 1 つ追加するだけで、sgtm.yoursite.com のような自社サイトのサブドメインに移せます。このアドレスはフィルタリストを生き延び、クリックの Cookie をファーストパーティに保ちます。ドメインが稼働すると、拡張機能は次回の通信時(通常 1 時間以内)にそのサイトを切り替え、Content Security Policy もそれに合わせて更新されます。手作業で置き換えるものはなく、それまでは古いアドレスが動作し続けます。
SignalHost を手作業で追加する
コードを自分で貼り付けることもできます。コンテナページの「サイトに設置する」カードでスニペットを見つけて「コピー」を押します。それを全ページの head(TYPO3 ではテンプレートまたは TypoScript 経由)の、Cookie バナーのスクリプトの直後に貼り付けて、「設置しました」を押します。「AI エージェント用にコピー」を使うと、同じ作業をコーディングエージェントに任せられます。
手作業で貼り付けると、拡張機能が行うことは失われます。ホームページを確認するものはなく、接続を解除してもコードは削除されず、TYPO3 の Content Security Policy を適用しているサイトではスクリプトとタギングアドレスを手作業で許可する必要があり、独自ドメインが稼働したときは、カードの「サイトのスニペットを更新してください」か、ドメインの稼働を知らせるメールから、自分でコードを置き換えることになります。両方の方法を併用しないでください。コードが 2 つあると、すべての訪問が二重に数えられます。
更新、管理、接続の解除
更新はインストールしたときと同じ方法で行います。Composer か、クラシックモードでは Extension Manager からです。
サイトのカードの「Disconnect」は、一度だけ確認したうえで、そのサイトの全ページから SignalHost のコードを即座に削除し、アクセス権を取り消します。他のサイトは接続されたままで、コンテナとそのデータは SignalHost アカウントに残ります。
signalhost.io のコンテナページには「(サイト名)の TYPO3 拡張機能で設置済み」と表示されます。その「管理」ボタンを押すと「設定 › 接続済みサイト」に移動し、そこでも「接続を解除」が使えます。拡張機能は次回の通信時(通常 1 時間以内)に SignalHost の読み込みを停止します。
クラシックモードで Extension Manager から拡張機能を無効化すると、すべてのサイトのアクセス権が取り消され、拡張機能が保存したものが削除されます。composer remove は TYPO3 のコードを一切実行しないので、先に各サイトの接続を解除してください。そうしないと、サイトは「設定 › 接続済みサイト」に残り続けるので、そこで接続を解除することになります。
うまくいかないとき
- カードに「SignalHost sends you back to the site's own address after connecting」と表示される:別のドメインでバックエンドを開いています。その下のボタンを使って、サイトのドメインでページを開いてください。
- 「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、別の拡張機能に、手作業でコピーが貼り付けられています。それを削除してください。最新のコードは拡張機能が追加します。コードが 2 つあると、すべての訪問が二重に数えられます。
- サイトがすでに Google 純正のスニペットで Tag Manager コンテナを読み込んでいるという通知:そのスニペットを削除してください。今は SignalHost がコンテナを読み込むので、両方があるとすべての訪問が二重に数えられます。
- 「This site's address has changed since it was connected」:ステージングなどのコピーでは何も送信されません。本番サイトが移転した場合は、接続を解除してからもう一度接続してください。
- その他:サイトのアドレスを添えて 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 の登録商標です。

