本記事では、SPIRAL(ver.1)の クリックカウント と Google Analytics 4(GA4) を組み合わせて、
「メールでアンケートURLを送ったときに 誰がクリックしたか、
フォームを開いたが未回答か」などを把握し、
リマインド・フォーム改善・ナーチャリングに繋げるための設定手順例をまとめます。
ポイントは、
GA4へメールアドレス等の個人情報を送らず、
URLパラメータに レコードID のみを付与して SPIRAL 側で突合することです。
この記事でできるようになること
・ フォームの 入力→確認→完了 の閲覧状況を GA4 で把握(仮想ページビュー)
・ 「クリックしたのに未回答」などの層を抽出して再送(運用例)
注意点(重要)
・ GA4 に メールアドレス/氏名 等の個人情報(PII)を送らない設計にしてください。
全体像(データの流れ)
2. クリック→LP/フォームに遷移(URLに
_pb_uidなどの識別子を付与)
3. GA4でフォームの閲覧/完了を計測(仮想PV、二重計測防止)
4. SPIRAL側で
pb_uid(トークン)をDBと突合し、
未回答者を抽出・再送
事前準備
本手順では以下が前提です。
・ GA4のプロパティ作成済み(計測IDを確認できる)
・ GTM を利用する場合はコンテナ作成済み(Web)
Step 1:クリックカウント(ver.1)の設定
参考:クリックカウント(ver.1サポート)
クリック回数をカウントしたいリンクは、
メール文面中に クリックカウントURL(差替えキーワード) を挿入します。
1-1. メール本文にクリックカウントURLを差し込む
・ 例:アンケートフォームへのリンク(本来のURL)の代わりに、
差替えキーワードから生成されるURLを貼り付けます。
1-2. DBにクリック回数を保存したい場合(任意)
クリック回数を顧客レコードに持たせたい場合は、DBにクリックカウントフィールドを追加します。
ただし、
DBに保存しなくても配信ログ/クリックレポートでログ取得は可能なため、
要件に応じて選択してください。
Step 2:GA4の二重計測防止(必須)
参考:ver.1フォームにGAタグを挿入したい
SPIRALのフォームではURLが書き換わる/仮想遷移が発生するケースがあり、
GA4の設定によってはページビューが二重計測されることがあります。
1. 管理 > データストリーム > 対象ストリームを選択
2. 「拡張計測機能」がオンであることを確認
3. 歯車 > ページビュー数「詳細設定を表示」
4. 「ブラウザの履歴イベントに基づくページの変更」 のチェックを外す
5. 保存
Step 3:GTMで仮想ページビュー(フォーム各画面を見える化)
フォームが「入力/確認/完了」など複数ページで構成されるため、GTMで ページタイトル(title) をキーに仮想URLを割り当て、
GA4へ
page_viewを送る方法が扱いやすいです。
3-1. フォーム各ページの<title>を決める
SPIRAL ver.1 は 1つのフォームにつき複数ページが作成されます。各ページの
<title>を決めて、
区別できるようにします。
入力ページと入力エラーが同一ページの場合も、
表示条件タグを利用してタイトルを分けられます。
/* 入力ページのソース例:入力と入力エラーでtitleを分ける */
<!--SMP:DISP:REG:START-->
<title>お問い合わせフォーム(入力)</title>
<!--SMP:DISP:REG:END-->
<!--SMP:DISP:ERR:START-->
<title>お問い合わせフォーム(入力エラー)</title>
<!--SMP:DISP:ERR:END-->
3-2. GTMでdocument.titleを変数化
・ 変数タイプ:JavaScript変数
・ グローバル変数名:
document.title
3-3. ルックアップテーブル(title→仮想URL)を作成
フォームのタイトルごとに、
GA4上で集計しやすい仮想URLを返すようにします。
・ 入力変数:上で作成した title 変数
・ 例)「お問い合わせフォーム(入力)」→
/contact/entry
・ デフォルト値:Page Path
3-4. GA4イベント(page_view)を送る
・ イベント名:
page_view
・ イベントパラメータ:
page_location= ルックアップテーブル(仮想URL)
・ トリガー:仮想URLごとのページビュー(または正規表現でまとめる)
3-5. 既存GA4設定タグから重複を除外
サイト全体を計測するGA4設定タグ(GA4設定)を使っている場合、
仮想PV用のトリガーを「除外」に追加して二重計測を避けます。
Step 4:_pb_uid
を引き継いでGA4に送る(入力→確認→完了で同じIDを持つ)
ver.1のフォームは、入力画面URLにだけ _pb_uidが付与され、確認/完了のURLには付与されないケースがあります。
そのため、
GTMで 入力画面で
_pb_uidを取得し、
Cookie(またはStorage)に保存して、
確認/完了で送るGA4イベントにも
pb_uidとして付与します。
4-1. GTM変数:クエリ文字列 _pb_uid
を取得
・ 変数タイプ:URL
・ コンポーネント:クエリ
・ クエリキー:
_pb_uid
・ 例:変数名
QS_pb_uid
4-2. GTMタグ:pb_uid
をCookieに保存
重要:Cookie保存のような副作用のある処理は、GTMの「変数」ではなく カスタムHTMLタグ で行います。
<script>
(function () {
var pb = {{QS_pb_uid}};
if (!pb) return;
var maxAge = 60 * 30; // 30分
document.cookie =
"pb_uid=" + encodeURIComponent(pb) +
"; path=/; max-age=" + maxAge + "; SameSite=Lax";
})();
</script>
・ 入力画面だけに絞る場合は、トリガーの条件に「Page Path」が
/entryを含む、または「Page URL」がフォームの入力画面URLに一致する条件を設定します。
・ Cookieが書けない環境の場合は、sessionStorageで保持する方式に切り替えます。
4-3. GTM変数:Cookieから pb_uid
を読む
・ Cookie名:
pb_uid
・ 例:変数名
CK_pb_uid
4-4. GA4イベントに pb_uid
をイベントパラメータとして付与
page_view、または任意の完了イベント(例:
form_complete)
・ イベントパラメータ:
pb_uid=
{{CK_pb_uid}}・ (デバッグ用)必要に応じて
debug_mode=
true
4-5. 確認方法(GTM/GA4)
CK_pb_uidが入力→確認→完了で同じ値になっていること
・ GA4のDebugViewで、イベント(例:
page_view/
form_complete)のパラメータに
pb_uidが入っていること
・ GA4のリアルタイムにイベントが出ること(標準レポート/探索は反映に時間がかかる場合があります)
4-6. GA4:pb_uid
を探索で使う(カスタムディメンション)
2. 範囲(スコープ):イベント
3. イベントパラメータ:
pb_uid
4. 保存
※ 探索(Explore)に反映されるまで 数時間〜最大24時間程度 かかることがあります。
Step 5:PIIなしで「誰が」を突合する(URLパラメータ設計)
「誰が未回答か」を追うには、リンク先URLに識別子を付与し、SPIRAL側で突合します。
GA4には個人情報を送らず、推測されにくいトークン(pb_uid) を推奨します。
例:メール本文に載せるURL(LPまたはフォーム)
https://example.com/survey?_pb_uid=XXXXXXXX
例:GA4側はpb_uidで行動分析(PIIは送らない)
- page_view / form_start / form_complete などのイベントに pb_uid を付与
例:SPIRAL側は pb_uid → 顧客レコード を突合して
- 未回答者抽出
- 再送
- スコアリング
Step 6:GA4で「誰がどこまで答えたか」を確認する
カスタムディメンションpb_uidを登録した後、GA4の 探索(Explore) 機能を使って、
「どのユーザーがどのステップまで進んだか」を可視化できます。
6-1. 探索レポートの作成手順
2. ディメンションに以下を追加:
・
pb_uid(カスタムディメンション)
・
ページロケーションまたは
ページパス
3. 指標に
イベント数を追加
4. 行に
pb_uid、列に
ページロケーションを配置
5. フィルタで対象フォームのURLに絞り込み(例:
/contact/を含む)
6-2. ファネルデータ探索で離脱ポイントを可視化
「入力→確認→完了」の各ステップの通過率を見たい場合は、
ファネルデータ探索 が便利です。
2. ステップを設定:
・ステップ1:
page_viewかつ
page_locationに
/contact/entryを含む
・ステップ2:
page_viewかつ
page_locationに
/contact/confirmを含む
・ステップ3:
page_viewかつ
page_locationに
/contact/completeを含む
3. 内訳に
pb_uidを追加すると、個別ユーザーの離脱状況が見える
6-3. 「クリックしたが未完了」のユーザーを抽出する
GA4の探索で セグメント を活用し、
「入力ページは見たが完了ページに到達していない」ユーザーを抽出します。
2. 条件1(含める):
page_locationに
/contact/entryを含む
3. 条件2(除外):
page_locationに
/contact/completeを含む
4. このセグメントを適用し、
pb_uidを行に配置
5. 表示された
pb_uidの一覧をエクスポート(CSV)
6-4. SPIRAL側で突合してリマインド対象を特定
GA4からエクスポートしたpb_uidの一覧を、
SPIRAL側のDBと突合して「誰が未回答か」を特定します。
2. SPIRALのDB(顧客マスタ等)で
pb_uid(トークン)と紐づくレコードを検索
3. 該当レコードに「リマインド対象」フラグを立てる、または抽出ルールを作成
4. 抽出ルールを配信先に指定してリマインドメールを送信
ユースケース別の活用例
ユースケース1:アンケート回収率の向上
・ 「まだ回答いただけていないようです」とリマインドメールを送信
・ 回収率の推移をGA4のファネルで週次モニタリング
ユースケース2:フォーム離脱ポイントの改善
・ 「確認→完了」の離脱率が高い場合:確認画面の表示内容、送信ボタンの視認性を改善
・ 特定の
pb_uidが繰り返し入力画面で離脱している場合:個別フォローを検討
ユースケース3:セグメント別の反応分析
pb_uidを紐づけ
・ GA4のデータと突合し、「どの属性の顧客が完了率が高いか」を分析
・ 完了率の低いセグメントには別のアプローチ(電話フォロー等)を検討
ユースケース4:キャンペーン効果測定
utm_campaignパラメータも付与
・ GA4で「キャンペーン別の完了率」を比較
・ 件名やCTAの違いによる効果差を定量的に把握
Step 7:動作確認(チェックポイント)
2. クリックレポート/配信ログでクリックログが増えること
3. GA4のリアルタイムでフォームページビュー(仮想URL)が取れること
4. 入力→確認→完了のPV/イベントが想定通り増えること
5. 未回答(クリックあり・完了なし)の層が抽出できる設計になっていること
よくある失敗と対処
・ 仮想PVが取れない:GTMの変数(document.title)とルックアップの一致を確認
・ クリックはあるのに回答が増えない:フォームUX(必須項目/エラー/導線)を改善、リマインド運用を追加
まとめ
クリックカウントとGA4を組み合わせることで、メール施策を「クリック率」だけで終わらせず、
フォームの離脱点・完了率まで踏み込んだ改善ができます。
また、URLにレコードID/トークンのみを付与する設計により、
個人情報をGA4へ送らずに「誰が未回答か」をSPIRAL側で突合できます。