タグの設置場所
ログインの最新状況を把握できるように、ログイン状態が変わる、ログイン直後や、ログアウト直後のページでタグを出力してください。
補足説明
- 一定時間経過後に自動ログアウトするような仕様のサイトでは、サイト離脱後、再来訪時にログインステータスが変わっている可能性があります。その場合には、最新のログイン状態が把握できるように、再来訪時のランディングページでタグを出力してください。
データ項目
フィールド名(Key) | 概要 | 値(Value)のサンプル | 型 | セグメント条件での使用 |
---|---|---|---|---|
isLoggedIn | ログインしている:true | true | ブーリアン | ○ |
バリデーション仕様(全タグ共通)
以下に該当する場合、エラーとなり全てのプロパティが送信されません。
フィールド名(Key)が不適切な場合
- データ項目定義に存在しないフィールド名がある
値(Value)が不適切な場合
文字列(「ISO8601拡張形式」、「ISO8601拡張形式、日付のみ」を含む)/数値/論理型のデータ型が異なる(エラーの例: totalAmount: "1" ※数値型を期待しているが、文字列が出力されている)
なお以下のケースでは Sprocket がキャスト処理を行うことによりデータが送信されます。(救済措置)文字列型の項目に数値型が入力された場合
文字列型にキャストしてデータが送られます。
※ ただし、値(Value)が空文字列の場合は、フィールド名(Key)が無いものとして扱うためデータは送られません。数値型の項目に文字列型が入力された場合
数値型にキャストした後、文字列型に戻して値が一致する場合のみ、数値型でデータが送られます。
※ ただし、値(Value)が空文字列の場合は、キャスト処理が行われずエラーとなるため、データは送られません。ブーリアンの項目に文字列型が入力された場合
文字列で「true」、「false」と一致する場合は、ブーリアンとして解釈し、データが送られます。
文字列(ISO8601拡張形式)
の形式エラー
文字列(ISO8601拡張形式、日付のみ)
の形式エラー(エラーの例:birthday: '2019-01-01T12:00:00+09:00'
※時刻が含まれている)値に null が含まれる
文字列長が64文字より大きい(ただし、
ユーザー属性タグ
のuserId
を除く。)
JavaScript サンプル(ログイン時)
<script type="text/javascript">
(function() {
var props = { isLoggedIn: true }
console.log('Sprocket: Login props:\n' + JSON.stringify(props, null, ' '));
SPSDK.record('login', props);
})();
</script>
JavaScript サンプル(ログアウト時)
<script type="text/javascript">
(function() {
var props = { isLoggedIn: false }
console.log('Sprocket: Login props:\n' + JSON.stringify(props, null, ' '));
SPSDK.record('login', props);
})();
</script>
注意事項
- 必ず Sprocket タグの読込みより後にデータ連携タグが実行されるように実装してください。
Sprocketタグの読み込みが完了していない状態でデータ連携を実行した場合、データが送信されません。タグマネージャなどで非同期にSprocketタグを読み込んでいる場合は特にご注意ください。
データ連携タグの実行順が保証できない場合
Sprocketタグが読み込まれてからデータ連携を実行する処理を組み込んでください。コード例は下記です。
JavaScript サンプル(ログイン時)
<script type="text/javascript">
(function() {
var count = 0;
setTimeout(function wait() {
if (++count > 10) return;
if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
var props = { isLoggedIn: true }
console.log('Sprocket: Login props:\n' + JSON.stringify(props, null, ' '));
SPSDK.record('login', props);
}, 500);
})();
</script>
JavaScript サンプル(ログアウト時)
<script type="text/javascript">
(function() {
var count = 0;
setTimeout(function wait() {
if (++count > 10) return;
if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
var props = { isLoggedIn: false }
console.log('Sprocket: Login props:\n' + JSON.stringify(props, null, ' '));
SPSDK.record('login', props);
}, 500);
})();
</script>
Updated 4 months ago