前提
以下のような接客サービスを配信します。
- 訪問ユーザーがcookieAを保有している場合、接客サービスAを配信する。
- 訪問ユーザーがcookieAを保有していない場合、何も配信しない。
1.スクリプト
// getCookie関数を呼び出す
// #{cookie_name}:key=value のkey
var cookie = getCookie('#{cookie_name}');
// ユーザーがcookieAを保有している場合
// #{cookieA}:key=value のvalue
if (cookie == "#{cookieA}") {
if (typeof tracker !== 'undefined' && tracker) {
// 保有している場合のイベント送信
krt('send', '#{event_name}', {
cookie_name: cookie
});
}
// ユーザーがcookieAを保有していない場合
}else{
// 保有していない場合のイベント送信
krt('send', '#{event_name}', {
cookie_name: ""
});
}
// cookieの保有有無を調べる関数
function getCookie(key) {
if (!document.cookie) return null;
var arr = document.cookie.split('; ');
var c = arr.find(function(c) {
return c.split('=')[0] === key;
});
if (!c) return null;
return decodeURIComponent(c.split('=')[1]);
}
上記のスクリプトを、配信対象ページを訪れた全ユーザーに対して送信する。
2.本命の接客サービス
通常はセグメントに「配信対象ユーザー」を指定し、配信トリガーに「配信条件」を指定すると思います。
今回で言えば、前者が「cookieAを保有しているユーザー」で、後者が「ページXを閲覧している」となります。
しかし、今回の配信条件は単純に「ページXを閲覧している」ではなく「cookieAを持った状態でページXを閲覧している」です。
例
接客サービスは【配信トリガーに合致したタイミング】で【そのユーザーが該当するセグメント】によって配信判断がされます。
たとえば以下のような接客サービスがあったとします。
- 40秒以上ページに滞在したユーザーに接客サービスBを配信する。
これを次のように設定した場合、接客サービスは期待したタイミングで配信されません。
セグメント:40秒以上ページに滞在している
配信トリガー:対象ページを閲覧している
しかし、次のように設定を変更すると、期待したタイミングで接客サービスが配信されます。
セグメント:対象ページを閲覧している
配信トリガー:40秒ページに滞在している
上の場合は【対象ページを閲覧開始したタイミング】で【40秒以上ページに滞在している】必要があります。
閲覧開始=0秒なので、ユーザーはこの条件を満たすことができません。
下にすると【40秒ページに滞在したタイミング】で【対象ページを閲覧中】であれば、40秒経過後もセグメントから外れていないので、接客サービスを配信できるようになります。
まとめ
今回の場合は次のようになります。
配信されない例
セグメント:cookieAを持っている
配信トリガー:対象ページを閲覧している
※リロードはしない想定
配信される例
セグメント:対象ページを閲覧している
配信トリガー:cookieAを持っている
このように設定することで、訪問ユーザーがcookieAを保有している場合に接客サービスAを配信することができます。
注意点
同一ページで以下のような接客サービスCを配信しているとします。
セグメント:50代以上のユーザー
配信トリガー:対象ページを閲覧している
訪問ユーザーがcookieAを保有している50代以上のユーザで、「接客サービスAの配信優先度が100」「接客サービスCの配信優先度が1」だったとします。
この場合、配信優先度を比較するとA>Cではありますが、配信トリガーは「cookieAを持っている(というイベントが送信された)」よりも先に「対象ページを閲覧している」が発生します。
そのため、配信優先度に従ってA→Cの順に表示したい場合は、設定方法を工夫する必要があります。