ユーザーデータとは?
KARTEに送信されたイベントは、リアルタイムに集計され、サマリー(Summary:要約)されます。
サマリーされる方法は、フィールドの値の データ型
によって異なり、例えば、データ型
が数値の場合は「合計値」や「平均値」、「最大値」が計算され、データ型
が文字列の場合は「最も頻度が高い値」などの統計値を計算しています
イベント一つ一つは独立していますが、サマリーが行われることで、イベントが発生した瞬間に、過去に発生した同名のイベントの「最新の状態」を把握することができます。
データ型について
イベントフィールドのデータ型については、下記の記事をご覧ください。
解析される統計値の計算パターン
データ型によって違う統計値の計算パターンは以下のとおりです。
※一つ前の値に関して、値をa -> b -> bと送信した場合、最新の値はbとなり、一つ前の値はaとなります
特殊なデータの扱い
基本データ型の配列
- イベントのフィールド値として基本データ型(文字列、数値など)の配列で送ることも可能です
- ただし、複数のデータ型の値を同一の配列で送ることは、サポートされていません
(例)文字列の配列
krt('send', 'test', {
str_array: ['a', 'b', 'c']
});
(例)数値の配列
krt('send', 'test', {
num_array: [1, 5, 7]
});
基本データ型の配列値を連携したフィールドの特殊な性質
- 基本データ型の配列を連携したフィールドでは、ユーザーデータの「最新の値」を指定すると最新の配列値の全ての要素が参照されます
- 例: testイベントのstr_arrayフィールドに
['a', 'b', 'c']
を連携した場合、その最新の値は'c'
ではなく['a', 'b', 'c']
になる
- 例: testイベントのstr_arrayフィールドに
- 基本データ型の配列を連携したフィールドに対するセグメント条件等で、「最新の値」に対する条件を指定した場合、最新の配列値の要素のうち1つでも条件を満たすなら、「条件に合致している」という判定になります
- 例: testイベントのnum_arrayフィールドに
['1', '5', '7']
を連携した場合、「最新の値が1に等しい」
という条件を指定すると、1
が条件を満たすので、「条件に合致している」という判定になる「最新の値が2以上 AND 最新の値が4以下」
という条件を指定すると、5
や7
が前者の条件を、1
が後者の条件を満たすので、「条件に合致している」という判定になる
- 例: testイベントのnum_arrayフィールドに
オブジェクト
- フィールドにオブジェクトを連携した場合、「基本のデータ型」に合致する値が格納されたPath全体がフィールド名とみなされます
- つまり、ネストが深いオブジェクトであっても、KARTEのユーザーデータ上は一階層にまとめられます
(例)オブジェクト
krt('send', 'test', {
str_object: { foo: 'bar' }
});
オブジェクトの配列
- オブジェクトの配列が連携された場合、配列の要素となる各オブジェクトが別々に連携されたような扱いになります
(例)オブジェクトの配列
krt('send', 'test', {
obj_array: [ { foo: 'bar' }, { foo: 'baz' } ]
});
注意点
- あるフィールドで連携される値のデータ型が途中で変わった場合、そのユーザーに対して過去に当該フィールドで連携された値に基づく統計値は、全てリセットされてしまいます
- タグの実装に注意し、同一フィールドで複数のデータ型が連携されないようにしてください