ユーザー紐付けの仕組みを理解する

ユーザー紐付けをした場合に、KARTEで計測されたユーザーのユーザーデータがどのように書き換えられるかを説明します。

データ紐付け処理の概要

  • データ紐付けは、KARTE側に存在しているユーザーに対してのみ行われます
  • データ紐付けは、紐付けテーブルの紐付け設定に指定した「紐付け対象のフィールド」が連携されているユーザーに対してのみ行われます
  • データ紐付けによって書き換えられるユーザーデータは、各フィールドの「すべての期間」の「最新の値」のみです
    • 「1つ前の値」や「直近30件」などが紐付けテーブル側の値によって更新されることはありません

データ紐付けの例

具体的な例で、データ紐付けの流れを理解しましょう。

タグで取得済みのイベント

以下のイベントを、タグで取得済みであるとします。

identify(ユーザー情報)イベント

  • user_idプロパティ
  • nameプロパティ
{
    identify: {
        user_id: "1234"
    }
}

some_eventイベント

  • some_valueプロパティ
{
    some_event: {
        some_value:"TAG_VALUE"
    }
}

このときのユーザーデータは、以下のようになっているものとします

  • identify
    • user_id
      • 最新の値: "1234"
  • some_event
    • some_value
      • 最新の値: "TAG_VALUE"
      • 直近30件: ["TAG_VALUE"]
      • ...

紐付けテーブルの値

紐付けテーブルに以下のようなデータが入っているとします。

user_idsome_valuenew_value
"1234""TABLE_VALUE""NEW_VALUE"

紐付けテーブルの紐付け設定

紐付けテーブルの紐付け設定は、以下とします。

紐付け設定上書き設定紐付けテーブルのフィールドユーザー側のフィールドユーザー側の紐付先イベント
ONONuser_ididentify (ユーザータグ) の
user_id (ユーザー ID)
some_event

紐付け後のユーザーデータ(上書き設定がONの場合)

「上書き設定」がONだった場合、データ紐付けによってsome_eventのユーザーデータが上書きされ以下のようになります。

  • identify
    • user_id
      • 最新の値: "1234"
  • some_event
    • some_value
      • 最新の値: "TABLE_VALUE"
      • 直近30件: ["TAG_VALUE"]
      • ...
    • new_value
      • 最新の値: "NEW_VALUE"

具体的には、以下の部分が紐付けによって変化しています。

  • new_valueフィールドが新規追加されている
  • some_valueフィールドの「最新の値」が、紐付けテーブルの値で上書きされている

紐付け後のユーザーデータ(上書き設定がOFFの場合)

仮に、「上書き設定」がOFFだった場合は、以下のようにsome_valueの「最新の値」が上書きされなくなります。

  • identify
    • user_id
      • 最新の値: "1234"
  • some_event
    • some_value
      • 最新の値: "TAG_VALUE"
      • 直近30件: ["TAG_VALUE"]
      • ...
    • new_value
      • 最新の値: "NEW_VALUE"

その後で紐付け自体をOFFにした場合のユーザーデータ

紐付けテーブルの紐付けを無効にしたり紐付けテーブル自体を削除したりした場合、ユーザーデータは元に戻ります。

  • identify
    • user_id
      • 最新の値: "1234"
  • some_event
    • some_value
      • 最新の値: "TAG_VALUE"
      • 直近30件: ["TAG_VALUE"]
      • ...

つまり、紐付けテーブルによるユーザーデータの上書きはあくまでも一時的なものであり、イベントによって生成された既存のユーザーデータ自体を破壊することはありません。

データ紐付け処理の詳細フロー

正しく紐付け設定が行われていた場合、ユーザーデータが上書きされるまでのフローは以下の通りです。

12241224
  1. あるユーザーに対して、任意のイベントが発生します
  2. そのユーザーの「紐付け対象のフィールド」の「最新の値」が参照されます
  3. その値を元に、そのユーザーに紐付けるべきレコードが紐付けテーブルから検索されます
  4. キーが一致したレコードがあれば、そのレコードの内容をユーザーデータに紐付ける処理に移ります
  5. 「データの追加先」で設定したイベントのユーザーデータを拡張する形で、レコードの内容が付加されます
    • 紐付けテーブルのレコードの各カラムについて、カラム名と同じ名前のイベントプロパティに値を設定しようと試みます
      • 過去にそのイベントプロパティが連携されていない場合
        • そのイベントプロパティの「すべての期間」>「最新の値」に、紐付けテーブル側の値を格納する
      • 過去にそのイベントプロパティが連携されていた場合
        • 上書き設定がONの場合
          • そのイベントプロパティの「すべての期間」>「最新の値」に、紐付けテーブル側の値を格納する
        • 上書き設定がOFFの場合
          • そのイベントプロパティについては、何もしない