トラッキングの紐付けが発生しない登録フォームを作成するには?
Synergy!LEAD ではフォームの登録時にブラウザの Cookie 情報からトラッキング用の情報を取り出して登録されたリードと紐づけを行います。
そのため、同じブラウザでアクセスしたページの情報は、そのリードのキャンペーン履歴に表示されます。
通常であればこれで問題はないのですが、使い方によってフォームの登録情報とトラッキングの履歴を紐づけしたくない場合があります。
例えば、登録フォームを使って自社の顧客情報を登録しようとすると複数のリード情報を同じパソコンで登録することになり、登録されたリードはすべて同じトラッキング履歴が紐づいてしまいます。
これでは正確なトラッキングができません。
この問題を解決するには、トラッキングに関する Cookie を削除する処理をおこないます。
設定箇所によって記述方法が異なりますので、ご利用の環境に合わせて以下のコードをご利用ください。
JavaScript の記述に関する内容についてはサポート対象外のため、削除処理の一例としてのご案内となります点、ご了承ください。
なお、本コードはフォーム以外にトラッキングタグやクリックフィードバックで作成される Cookie も削除対象としています。
Googleタグマネージャー(GTM)を利用する場合
GTM で「ウィンドウの読み込み」トリガーを用いてカスタムHTMLとして差し込む場合の記述です。
<script>
// 削除対象のトラッキング用Cookie名を配列で指定
var cookiesToDelete = [
'GSID',
'GSIDN',
'visitorid',
's-visitorid',
'__s_lead_vid',
'xxxx', // ※実際のAPIクライアントIDに書き換えてください
's-xxxx' // ※実際のs-APIクライアントIDに書き換えてください
];
// 現在のホスト名を取得してドットで分割(例: "xxxx.f.msgs.jp" -> ["xxxx", "f", "msgs", "jp"])
var hostname = location.hostname;
var domainParts = hostname.split('.');
for (var i = 0; i < cookiesToDelete.length; i++) {
var cookieName = cookiesToDelete[i];
var expireStr = "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; secure";
// 1. フォームドメイン指定(.msgs.jp)での削除
document.cookie = cookieName + expireStr + "; domain=.msgs.jp";
// 2. 独自ドメイン(現在のフォームURL)および親ドメインでの削除
document.cookie = cookieName + expireStr; // ドメイン指定なし(現在のフォームドメイン)
for (var j = 0; j < domainParts.length - 1; j++) {
var currentDomain = "." + domainParts.slice(j).join('.');
document.cookie = cookieName + expireStr + "; domain=" + currentDomain; // 親ドメインでの削除
}
}
</script>
フォームに直接設定する場合
Synergy!LEAD のフォームのヘッダー設定で [ オリジナルHTML ] を選択し「ヘッダーHTML」に記載する場合や、「入力画面のメッセージ」に記載する場合は、画面の読み込みが完了したあとに Cookie の削除処理を実行させる必要があります。
以下のように window.addEventListener('load', function() { ... }); で囲うことで、他の処理と競合することなく安全に実行できます。
<script>
window.addEventListener('load', function() {
// 削除対象のトラッキング用Cookie名を配列で指定
var cookiesToDelete = [
'GSID',
'GSIDN',
'visitorid',
's-visitorid',
'__s_lead_vid',
'xxxx', // ※実際のAPIクライアントIDに書き換えてください
's-xxxx' // ※実際のs-APIクライアントIDに書き換えてください
];
// 現在のホスト名を取得してドットで分割(例: "xxxx.f.msgs.jp" -> ["xxxx", "f", "msgs", "jp"])
var hostname = location.hostname;
var domainParts = hostname.split('.');
for (var i = 0; i < cookiesToDelete.length; i++) {
var cookieName = cookiesToDelete[i];
var expireStr = "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; secure";
// 1. フォームドメイン指定(.msgs.jp)での削除
document.cookie = cookieName + expireStr + "; domain=.msgs.jp";
// 2. 独自ドメイン(現在のフォームURL)および親ドメインでの削除
document.cookie = cookieName + expireStr; // ドメイン指定なし(現在のフォームドメイン)
for (var j = 0; j < domainParts.length - 1; j++) {
var currentDomain = "." + domainParts.slice(j).join('.');
document.cookie = cookieName + expireStr + "; domain=" + currentDomain; // 親ドメインでの削除
}
}
});
</script>
- 「xxxx」の部分は、 Synergy!LEAD の「セットアップ」画面に表示される「APIクライアントID」(3〜4文字のアルファベット)を入力してください。
