GTM(Googleタグマネージャー)連携
このページでは、予約フォームの各ステップで Smart Booking が自動的に送信する dataLayer イベントを使って、Googleタグマネージャー(GTM)経由で GA4 や Google広告のコンバージョン計測を行う方法を解説します。
Smart Booking が行うのは
window.dataLayer.pushの実行のみ です。GTM コンテナタグ(gtm.js)のサイトへの埋め込みは別途必要です。
仕組みの概要
予約フォームの各ステップ(店舗選択 → 担当者選択 → 日付・時間選択 → フォーム入力 → 確認 → 完了)に到達するたびに、Smart Booking が window.dataLayer に決まった形のオブジェクトを 1 件ずつ追加します。GTM 側で カスタムイベントトリガー を設定すれば、これをきっかけに GA4 や Google広告のタグを発火できます。
dataLayer への追加は GTM が設置されていない環境でも常に行われますが、未消費のまま無害に残るだけなのでパフォーマンスへの影響はありません。Smart Booking 側に有効・無効スイッチは設けていません。
前提条件
- WordPressサイトに GTM コンテナタグ が埋め込まれていること
- サイト全体への埋め込みは、テーマの
header.phpを直接編集するか、「Google Tag Manager」「Site Kit by Google」などのプラグインで行ってください。 - Smart Booking はコンテナタグの埋め込みは行いません。
- サイト全体への埋め込みは、テーマの
- GTM 側で GA4 設定タグや Google広告タグなど、発火させたいタグが用意されていること
送信されるイベント一覧
| ステップ | event 名 | booking_step 値 | 送信タイミング |
|---|---|---|---|
| 店舗選択 | smart_booking_step |
store_select |
店舗選択画面の表示時 |
| 担当者選択 | smart_booking_step |
staff_select |
担当者選択画面の表示時 |
| 日付選択 | smart_booking_step |
date_select |
カレンダー表示時 |
| 時間選択 | smart_booking_step |
time_select |
時間枠リスト表示時 |
| フォーム入力 | smart_booking_step |
form_input |
入力フォーム表示時 |
| 確認画面 | smart_booking_step |
confirm |
確認画面表示時 |
| 完了画面 | smart_booking_complete |
complete |
予約完了画面表示時(コンバージョン地点) |
設定で店舗選択ステップを OFF にしている場合は
store_selectイベントは送信されません。担当者選択ステップを OFF にしている場合も同様にstaff_selectは送信されず、その次のステップ(日付選択)から計測が始まります。 現実装ではフォーム上で「日付・時間選択」と「フォーム入力」が 1 画面に統合されているため、date_select/time_select/form_inputの 3 イベントは画面遷移後にほぼ同時に積まれます。GTM 側で「ステップごとに 1 回だけ」発火させたい場合はイベント名とbooking_stepの組み合わせをトリガー条件に明記してください。
dataLayer に積まれるオブジェクトの例
ブラウザの開発者ツール(DevTools)の Console タブで window.dataLayer を入力すると、現在までにプッシュされた配列を確認できます。完了画面まで到達した直後の例:
> window.dataLayer
[
{ event: 'smart_booking_step', booking_step: 'store_select' },
{ event: 'smart_booking_step', booking_step: 'staff_select' },
{ event: 'smart_booking_step', booking_step: 'date_select' },
{ event: 'smart_booking_step', booking_step: 'time_select' },
{ event: 'smart_booking_step', booking_step: 'form_input' },
{ event: 'smart_booking_step', booking_step: 'confirm' },
{ event: 'smart_booking_complete', booking_step: 'complete' }
]
GTM 側の設定手順
1. データレイヤー変数を作成(任意だが推奨)
GTM 管理画面 →「変数」→「ユーザー定義変数」→「新規」→ データレイヤーの変数 を選び、次の通り作成します。
- 変数名:
DLV - booking_step - データレイヤーの変数名:
booking_step
これで GA4 タグやトリガー条件で予約ステップ名を参照できるようになります。
2. カスタムイベントトリガーを作成
コンバージョン計測用トリガー(完了画面)
GTM 管理画面 →「トリガー」→「新規」→ カスタムイベント を選び、次の通り作成します。
- トリガー名:
Smart Booking - 予約完了 - イベント名:
smart_booking_complete - 配信トリガー: すべてのカスタムイベント
このトリガーを GA4 イベントタグや Google広告コンバージョンタグに紐付けます。
ステップ別ファネル計測用トリガー(任意)
ステップ離脱率を可視化したい場合は、ステップごとにトリガーを作成します。
- トリガー名:
Smart Booking - 日付選択到達 - イベント名:
smart_booking_step - 配信トリガー: 一部のカスタムイベント
- 条件:
DLV - booking_step等しいdate_select
同じ要領で store_select / staff_select / time_select / form_input / confirm のトリガーを作成できます。
3. GA4 イベントタグを作成
GTM 管理画面 →「タグ」→「新規」→ GA4 イベント を選びます。
- 設定タグ: 既存の GA4 設定タグ(
G-XXXXXXX) - イベント名:
booking_complete(GA4 上での名前。任意) - イベントパラメータ:
booking_step={{DLV - booking_step}} - トリガー: 手順 2 で作成した
Smart Booking - 予約完了
4. Google広告コンバージョンタグを設定する場合
「タグ」→「新規」→ Google広告のコンバージョントラッキング を選び、コンバージョン ID とコンバージョンラベルを入力してください。トリガーは同じく Smart Booking - 予約完了 を指定します。
動作確認
- GTM 管理画面の右上「プレビュー」をクリックし、Tag Assistant を開きます。
- 自分の WordPressサイトの URL を入力して接続します。
- プレビュー用ウィンドウで Smart Booking の予約フォームから実際に予約を入れます。
- Tag Assistant の左ペインに、ステップごとに
smart_booking_step(またはsmart_booking_complete)のイベントが出現することを確認します。 - 完了画面で目的のタグ(GA4 / Google広告)が「Tags Fired」に表示されれば設定完了です。
ファネル分析の例(GA4)
ステップごとにイベントを送っているため、GA4 の「探索 → ファネルデータ探索」で離脱率を可視化できます。
例:
- ステップ1: イベント
smart_booking_stepかつbooking_step=store_select - ステップ2: イベント
smart_booking_stepかつbooking_step=date_select - ステップ3: イベント
smart_booking_stepかつbooking_step=form_input - ステップ4: イベント
smart_booking_stepかつbooking_step=confirm - ステップ5: イベント
smart_booking_complete
これで「日付選択までは 80% が到達するが、フォーム入力で 30% が離脱する」といった改善ポイントが見えるようになります。
トラブルシューティング
| 症状 | 主な原因 |
|---|---|
| イベントが Tag Assistant に出てこない | GTM コンテナタグがサイトに埋め込まれていない |
dataLayer に何も入らない |
予約フォームの React アプリがマウントされる前に開発者ツールを開いている。フォーム表示後にもう一度 window.dataLayer を確認してください |
| 完了画面でも Google広告タグが発火しない | トリガーのイベント名が smart_booking_complete ではなく smart_booking_step のままになっている |
| ステップごとに同じタグが何度も発火する | トリガーで booking_step 条件を絞っていない。GA4 設定タグなど 1 度だけ発火させたいタグは「初期化のみ」に設定するのが安全です |
次のステップ
GTM 経由のコンバージョン計測まで設定できたら、サイトを公開してお客さまからの予約を受け付けてみましょう。 日々の予約状況の確認は 予約の管理 で行います。