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