— イベントの送信方法について理解する

Usage

イベントの種類

KARTE では目的に応じて view identify track の3つのイベント送信メソッドを提供しています。

画面の表示イベントを送信する

ある画面の表示(閲覧)したことをイベントとして送信する場合は、view メソッドを利用します。

第1引数には、画面を一意に識別するための識別子(view_name)を指定します。
第2引数には、画面名(タイトル)を指定します。

このメソッドを利用して送信するイベントは view イベントと呼ばれます。

🚧

viewイベントの注意点

viewイベントへのview_nameの付与は必須です。付与されない場合KARTEにviewイベントは送信されません。

Tracker.view("signup", "会員登録")
Tracker.view("signup", "会員登録");

なお画面の表示イベントの送信は、track メソッドの第1引数にviewを指定して行うことも可能です。
下記コードは、上記コードと同等の意味合いとなります。

Tracker.track("view", mapOf(
  "view_name" to "signup",
  "title" to "会員登録"
))
Map<String, Object> values = new HashMap<>();
values.put("view_name", "signup");
values.put("title", "会員登録");
Tracker.track("view", values);

view メソッドの仕様については、リファレンス をご覧ください。

👍

Viewメソッドの実装位置

onResume() に実装することを推奨します。

ユーザーの情報を送信する

ユーザーに紐付く情報(ユーザーIDや名前、年齢等)を送信する場合は、identify メソッドを利用します。

第1引数には、ユーザーのIDを指定します。
第2引数には、ユーザーに紐付ける情報を指定します。

このメソッドを利用して送信するイベントは identify イベントと呼ばれます。

🚧

identifyイベントの注意点

identifyイベントへのuser_idの付与は必須です。付与されない場合KARTEにidentifyイベントは送信されません。
user_idの確定前にユーザーに紐づく情報を送信する場合 attributeイベント を使用してください。
なお、 attributeイベント には個人情報を含めないよう十分にご注意ください。
詳細は個人情報関連イベントの特別な仕様についてを参照ください。

Tracker.identify("ユーザーID", mapOf(
  "name" to "カルテ太郎"
))
Map<String, Object> values = new HashMap<>();
values.put("name", "カルテ太郎");
Tracker.identify("ユーザーID", values);

なお identify イベントの送信は、track メソッドの第1引数にidentifyを指定して行うことも可能です。
下記コードは、上記コードと同等の意味合いとなります。

Tracker.track("identify", mapOf(
  "user_id" to "ユーザID",
  "name" to "カルテ太郎"
))
Map<String, Object> values = new HashMap<>();
values.put("user_id", "ユーザID");
values.put("name", "カルテ太郎");
Tracker.track("identify", values);

identify メソッドの仕様については、リファレンス をご覧ください。

任意の行動イベントを送信する

画面の表示やユーザー情報以外の行動情報について送信する場合は、track メソッドを利用します。

第1引数には、行動を表すイベント名を指定します。
第2引数には、行動に紐付く情報を任意で指定します。

このメソッドを利用して送信するイベントはカスタムイベントと呼ばれます。

Tracker.track("favorite", mapOf(
  "id" to "P00003",
  "name" to "ミネラルウォーター(500ml)",
  "price" to 100
))
Map<String, Object> values = new HashMap<>();
values.put("id", "P00003");
values.put("name", "ミネラルウォーター(500ml)");
values.put("price", 100);
Tracker.track("favorite", values);

track メソッドの仕様については、リファレンス をご覧ください。

📘

イベント名の制限と予約済みのイベント名

イベント名には制限があります。
詳細については、 イベント名の制限 をご覧ください。

また一部のイベント名は予約されており、KARTE上で特別な扱いを受けます。
詳細については、定義済みイベント をご覧ください。

イベントに付与可能な値の型

各イベントの送信メソッドには、任意で Map を渡すことが可能です。
これによりイベントに様々なフィールドを紐付けて送信することが可能になります。

なお Map の Key および Value には制限があります。

Keyとして利用可能な型

String 型の値のみ利用可能です。

📘

フィールド名の制限

フィールド名には制限があります。
詳細については、フィールド名の制限 をご覧ください。

Valueとして利用可能な型

下記表に記載の型のみ利用可能です。
なお日付型は内部的に浮動小数点型に変換された上で送信されます。

種別
文字列String
整数Byte Short Int Long
浮動小数点数Double Float
真偽値Boolean
日付Date
辞書Map
配列List

※ その他のオブジェクトを利用してもエラー等にはなりませんが、内部的に Object.toString メソッドを呼び出し String 型に変換します。