ブログ
WordPress 向け SignalHost:サーバーサイド Google Tag Manager と WooCommerce のイベントを 1 つのプラグインで
公開 · 読了 11 分
SignalHost プラグインは、コードを貼り付けることなく WordPress サイトにサーバーサイド Google Tag Manager を導入します。全ページにトラッキングを追加し、WooCommerce、フォーム、会員登録のイベントをコンテナが期待する形式で送信し、独自のトラッキングドメインが稼働すると自動で切り替え、二重に数えられるものがあれば警告します。このガイドは、実際に出会う順番に沿って進みます。インストール、接続、確認、そしてうまくいかないときの対処です。
始める前に
- WordPress 6.6 以降、PHP 7.4 以降、そして管理者アカウント。
- https:// で始まるサイトアドレス。接続にはこれが必要です。それ以外のサイトでも、後述するスニペットの貼り付けでプラグインを使えます。
- SignalHost のアカウント。試すだけなら無料プランで十分です。毎月 1 万リクエスト、コンテナ 1 つ。アカウントは接続の途中でも作成できます。
- ショップのイベントが必要なら WooCommerce。フォームと会員登録のイベントは WooCommerce がなくても動作します。
1. プラグインをインストールする
WordPress で「プラグイン」→「新規追加」を開き、SignalHost を検索して、SignalHost – Server-Side Tag Hosting for Google Tag Manager をインストールし、有効化します。管理メニューに SignalHost の項目が追加されます。サイトを接続するまで、プラグインが外部のサービスと通信することはありません。
2. サイトをコンテナに接続する
メニューで SignalHost を開き、「Connect with SignalHost」を押します。初めての場合は「Create a free account」を押してください。ブラウザが signalhost.io に移動し、完了すると戻ってきます。
signalhost.io の「ウェブサイトを接続」画面には、プラグインができること(全ページへのトラッキングコードの追加、その最新状態の維持、コンテナのステータスの読み取り)と、できないこと(Google アカウント、広告プラットフォームのトークン、請求情報の使用)が表示されます。続いて、このサイトで使うコンテナを尋ねられます。コンテナとは、あなた専用のタギングサーバーです。Tag Manager のウェブコンテナとサーバーコンテナで構成され、あなた自身の Google アカウントに構築されるので、ずっとあなたのものです。
コンテナを 1 つ選んで「接続」を押すか、「(サイト名)用の新しいコンテナ」を選んで「コンテナを作成」を押し、短いウィザードに進みます。ウィザードでは構築が終わる前にサイトを接続でき、コンテナの準備ができた瞬間にプラグインがコードを追加します。WordPress に戻ると、サイトが接続されたことを知らせるお知らせが表示されます。
3. 動作を確認する
「Status」タブは、上から順に緑に変わっていくチェックリストです。「Connected to SignalHost」、「Tracking code on your site」、「SignalHost served the code to a visitor」、「Data arriving」。2 番目のステップは、プラグインがログアウトした訪問者と同じようにホームページを取得して判定します。「Check again」を押すと、もう一度実行します。
ブラウザでサイトを開き、商品をカートに入れ、フォームを送信してください。3 番目のステップは最初の訪問から 1 分以内に緑になり、続いて「Data arriving」に直近 7 日間のページビュー数が表示されます。「Advanced」にある「Log events in the browser console」を使うと、ページから送信される各イベントをその場で確認できます。Growth プラン以上では、signalhost.io のコンテナページの「ライブイベント監視」にもイベントが一覧表示されます。
プラグインがサイトに追加するもの
まず Google Tag Manager のローダーです。全ページの head に置かれ、googletagmanager.com ではなくあなた自身のタギングアドレスを向き、Cookie バナーの後に配置され、一般的なパフォーマンス系プラグインの「JavaScript の遅延」機能の対象から外されます。コンテナが送信するページビューに加えて、プラグインは次のイベントをプッシュします。それぞれに固有の event_id が付くため、Meta、TikTok などのプラットフォームは、ブラウザのピクセルのイベントとそのサーバー側の対を 1 回として数えます:
- WooCommerce:view_item_list、view_item、add_to_cart、remove_from_cart、view_cart、begin_checkout、add_shipping_info、add_payment_info、purchase。従来型のカートとチェックアウトにも、ブロックベースのものにも対応します。各注文は、サンクスページが何度開かれても 1 回だけ送信され、送信済みの印は注文そのものに記録されます。
- フォーム:Contact Form 7、WPForms、Gravity Forms、Elementor Pro のフォーム、Fluent Forms の送信成功を、リード(generate_lead)、問い合わせ(contact)、予約(schedule)、応募(submit_application)、購読(subscribe)のいずれかとして送信します。どれにするかはフォームごとに選べます。
- 会員登録:訪問者がアカウントを作成したときに sign_up を送信します。登録ページ、マイアカウント、チェックアウトのどこで作成しても同じです。
どの種類も「What is tracked」のスイッチでオン・オフできます。カート、チェックアウト、フォーム、会員登録のイベントは訪問者自身のセッションから送られ、ページの HTML から送られることはありません。そのため、ページキャッシュがある訪問者のイベントを次の訪問者に渡してしまうことはありません。
「Send customer details for better ad matching」は、自分でオンにするまでオフのままです。オンにすると、メールアドレス、電話番号、住所は、訪問者が広告 Cookie を許可した場合に限りコンバージョンとともに送られ、広告プラットフォームに届く前にハッシュ化されます。同意は Google Consent Mode を通じて Cookie バナーに従います。バナーがそれを設定しない場合は、「Consent & privacy」で「Set “denied until consent”」を選んでください。
GTM4WP や別の Google タグをすでに使っている場合
プラグインはホームページを読み取り、他のプラグインを確認して、二重計上の原因になるものを「Double-counting check」に一覧表示します。以前に貼り付けた SignalHost のスニペット、同じプロパティ向けの Google 純正の Tag Manager スニペットや Google タグ、Site Kit、MonsterInsights、ExactMetrics、Google Analytics for WooCommerce です。
GTM4WP にはワンクリックの修正が用意されています。「Turn off GTM4WP’s container code」は、GTM4WP が同じコンテナを Google から直接読み込むのを止め、データレイヤーは動かしたままにします。「Turn off GTM4WP’s shop tracking」は、ショップのイベントを SignalHost に任せます。「Undo」でどちらも元に戻せます。
独自のトラッキングドメイン
コンテナは signalhost.io 配下のアドレスで始まります。有料プランでは、コンテナページの「カスタムドメインを設定する」が、metrics.yoursite.com のような自社サイトのサブドメインの設定を、DNS レコード 1 つで案内します。ブラウザはそれをファーストパーティとして扱うので、その Cookie は自社のものとして数えられ、広告クリックの成果も失われません。ドメインが稼働すると、プラグインは次回の通信時(通常 1 時間以内)にサイトをそのドメインに切り替え、ページキャッシュを消去します。手作業で置き換えるものは何もありません。
SignalHost を手作業で追加する
プラグインを使わずに WordPress で SignalHost を動かすこともできます。signalhost.io でコンテナを開き、「サイトに設置する」カードにあるスニペットを見つけて「コピー」を押します。それを全ページの head のできるだけ上、ただし Cookie バナーのスクリプトより後に貼り付けます。WPCode などのヘッダー用プラグイン(Header 欄)か、テーマの header.php が使えます。サイトがすでに同じアナリティクス プロパティ向けの Google Tag Manager や Google タグを読み込んでいる場合は、2 つ目を追加するのではなく、そのスニペットを置き換えてください。最後に「設置しました」を押します。
これで Tag Manager コンテナが全ページに入り、ページビューと、サイト自身がデータレイヤーにプッシュするものが送られます。ただし、プラグインが追加するものはすべて失われます。WooCommerce、フォーム、会員登録のイベント、注文ごとに 1 回だけの purchase、そして 2 つのチェックです。独自ドメインが稼働したら、スニペットは自分で置き換えます。
https:// のないサイトなど、接続できないサイトには中間の方法があります。プラグインで「I already have a snippet from SignalHost」を選び、コードを貼り付けて「Use this snippet」を押します。イベントは引き続き送られますが、プラグインは独自ドメインへの切り替えも、データが届いているかの表示もできません。
管理と接続の解除
「Status」タブの「Disconnect」は、一度だけ確認したうえで、すぐに全ページからトラッキングコードを削除します。コンテナとそのデータは残り、「Connect with SignalHost」でいつでもサイトを戻せます。signalhost.io の「設定 › 接続済みサイト」にもサイトが表示されます。そこで「接続を解除」を押すと、プラグインの次回の通信時(通常 1 時間以内)にコードが外されます。
プラグインを削除すると、サイトの接続が解除され、プラグインが保存したものはすべて消去されます。ステージング環境のコピーでは、プラグインがアドレスの変化に気づいてトラッキングを一時停止するので、テストのトラフィックが本番のデータに混ざることはありません。
うまくいかないとき
- 「Connect」ボタンがない:サイトのアドレスが https:// で始まっていません。代わりに「I already have a snippet from SignalHost」を使ってください。
- 接続がファイアウォールに関するメッセージで止まる:セキュリティ系プラグインかサーバーが signalhost.io へのリクエストをブロックしています。許可してから、もう一度「Connect」を押してください。
- ホームページでコードが見つからない:wp_head() のないテーマ、ページキャッシュ、または最適化プラグインがコードを取り除いています。「Advanced」で「Clear page caches」を押してから、「Check again」を押してください。
- ホームページにコードが 2 つある、または古いコピーがある:以前にテーマやヘッダー用プラグインに貼り付けたスニペットを削除してください。
- このサーバーからホームページを開けなかった:パスワード保護、メンテナンスモード、ファイアウォールのいずれかが妨げになっています。ブラウザでサイトを開いて、そちらで確認してください。
- 自分の訪問が表示されない:「Do not track administrators」がオンになっています。ログアウトした状態でサイトを訪問してください。
- その他:サイトのアドレスを添えて hello@signalhost.io までご連絡ください。
商標について
SignalHost は Algorithmo GmbH の独立した製品であり、WordPress Foundation、WooCommerce、Google、Meta、TikTok とは提携しておらず、これらから承認を受けたものでもありません。Google Analytics、Google Ads、Google Tag Manager は Google LLC の商標です。Meta は Meta Platforms, Inc. の商標です。TikTok は ByteDance Ltd. の商標です。WordPress は WordPress Foundation の商標です。WooCommerce およびここに記載したその他のプラグイン名は、それぞれの所有者の商標です。

