施策を考えた上で、その施策を実施するために必要なイベントを定義しましょう。
イベント実装前にイベント定義書を正しく作成することで企画運用担当とSDK実装担当との齟齬がなくなり、本番配信後に特定のイベントが足りないことで施策ができなかったという事態を防げます。
イベントとは
イベントとはユーザーのサイト上の行動一つひとつのことを表し、接客サービス配信時に必要となるセグメント・配信のトリガー・ゴールに利用されます。
イベントの目的と構成については下記の通りです。
イベントの中にフィールドを複数追加することができ、各フィールドのデータ型が選択可能です。
一般的に使用されるフィールドには推奨のデータ型があります。
ECサイトでのイベント実装例となります。
実装可能なイベントの種別として、viewイベント、identifyイベント、任意のイベント名が指定可能なcustomイベントの3種類が存在します。
送信されたイベントはリアルタイムに解析されます。
- viewイベント:各ページに必ず実装しましょう。それにより、ユーザーがどのようにアプリ内で行動しているか可視化することが可能となります。
- identifyイベント:ユーザー属性情報を送信するためのイベントとなります。会員登録やログイン/ログアウト時はもちろん、起動時にidentifyイベントを送信することで、最新のユーザー情報に保つことが可能となります。
- customイベント:viewイベントとidentifyイベント以外のイベントの総称です。view, identify以外のユーザー行動をトラッキングするためのもので、任意のイベント名で任意のフィールドを送信可能です。customイベントは自由に追加することが出来ます。
- customイベント例1: 会員登録時に"signup"というイベント名で、signup日時を送信
- customイベント例2: お気に入り登録時に"favorite"というイベント名で、登録されたコンテンツのIDを送信
viewイベントはユーザーの行動を追えるだけでなく、施策をする際のトリガーやゴールにもなるため、必ず全ページ実装しましょう
identifyでuser_idを送ることでKARTE上でビジターからメンバーになり、web/appどちらでもログインしている場合にユーザーの行動が統合されます。必ず同じuser_idを送信しましょう
イベントで送信可能なフィールドのデータ型
使用可能なデータ型については下記をご確認ください。
※ イベントの発生日時はデフォルトで送られています。追加で日付型を送信したい場合は、キー名の末尾が_dateで終わるフィールド名を設定してください。
記述の例 | 例 | 設定時の注意事項 |
---|---|---|
文字列型 | “KARTE”, “00001” | - 正規表現が使用可能 |
数値型 | 1, 100, 0.1 | - 「以上/以下」の設定が可能 |
Date型※Date型をご利用の場合は、フィールド名の末尾に”_date”を付加してください。 | Date() | - 絶対時間/相対時間の設定が可能 |
Bool型 | true, false | |
配列 | [“hoge”, “fuga”] | - 配列内でAND条件を行う場合、配列内にある全てが対象となります。そのため、XXブランド且つYY円以上がある場合等はできかねます |
オブジェクト | {a: 100, b: 200} |
一度KARTEに送信したイベントは管理画面上から編集/削除することはできません。値を削除したい場合には再度同イベントを送ることで別に値に上書きすることは可能ですが、データ自体はユーザーデータに残ります
Tips: 送信されるフィールドの型をどのように決めるべきか
- KARTEではイベントのフィールド毎に統計データを生成していますが、生成される統計データはフィールドの型に依存して異なる内容となります。
- この統計データに応じて、セグメントとしてどのような条件を指定可能かが変わってきます。
- 例1: 数値型のデータでは、セグメントの条件として数値の完全一致や大小比較が指定可能です。
- 例2: 文字列型のデータでは、セグメントの条件として単一、もしくは複数の文字列セットへの完全一致や、正規表現を利用したマッチングが指定可能です。
- 個数や金額等を表現している数値型のフィールドについては、そのまま数値型として送信することで、値の大小比較を条件としたセグメントを作成可能です。
- ID等の値は実装によっては数値型として定義される場合もありますが、複数のIDへの完全一致といった条件でセグメントを作成したい場合には、数値型の値を文字列型に変換して送信してください。
SDKが標準で送るイベント
SDKを実装することで送信されるデフォルトのイベントがあり、下記項目については別途実装は必要ありません。
No. | 計測イベント | イベント名 | 送信タイミング |
---|---|---|---|
1 | インストール | native_app_install | – 初回起動時(アプリの再インストール時も発行される) |
2 | アップデート | native_app_update | – アプリアップデート後の起動時 |
3 | アプリ起動 | native_app_open | – アプリ起動時 |
4 | アプリクラッシュ | native_app_crashed | – アプリクラッシュ時(クラッシュログも送られる) |
5 | 接客配信 | message_open | – アプリ内メッセージを表示した時 |
6 | 接客クリック | message_click | – アプリ内メッセージ内のリンク(aタグ)をクリックした時 – プッシュ通知メッセージを開封した時 |
7 | プッシュ送信に必要なユーザー情報 | plugin_native_app_identify | – アプリ起動時(FCMが組み込まれてる場合のみ発生。FCMトークンが送られる) |
8 | フォアグラウンド | native_app_foreground | – プロセスが終了した状態で、アプリ起動時にnative_app_openと一緒に発生 – アプリフォアグラウンド遷移時- 電源ボタンタップからの起動時 – ホームボタン2回タップした画面から復帰した時 (iOS) – アプリ切り替えボタンタップした画面から復帰した時 (Android) |
9 | バックグラウンド | native_app_background | – アプリバックグラウンド遷移時 – 電源ボタンタップ(終了)時 – ホームボタン2回タップした画面遷移時 (iOS) – アプリ切り替えボタンタップした画面遷移時 (Android) – 初期画面で戻るボタンタップ時 (Android) |
※native_app_openは、backgroundでアプリが動いている場合は、foregroundに戻ったことを検知できないためアプリがkillされてから起動したときに発生します。
※アプリをSDKが入った状態にアップデートした(SDKが入っていない状態から入った状態に切り替わった)場合には、native_app_updateではなくnative_app_installが発生します。
※SDKリリース直後はすべてのユーザーの初回起動時にnative_app_installが送られるため、初回起動時をトリガーにした接客サービスはSDKリリース後1ヶ月程度の時間を置いて配信ください。
※なお、SDKのバージョンが最新でない場合は一部標準イベントは送られませんので詳細はリリースノートをご確認ください。iOS/Android
上記の他に、app_infoが発生し、OSのターゲティング等に使用可能です。
(共通)
No. | 項目 | 例 |
---|---|---|
1 | version_name | 1 |
2 | version_code | 1 |
3 | karte_sdk_version | 1.2.8 |
4 | os | Android |
5 | device | SCV33 |
6 | os_version | 7 |
7 | model | SCV33 |
(iOS)
No. | 項目 | 例 |
---|---|---|
1 | bundle_id | io.karte.tracker.sample |
2 | idfv | xxxxxxxxxxxxxxxxxxxxxxx |
(Android)
No. | 項目 | 例 |
---|---|---|
1 | package_name | io.karte.android.tracker_sample |
2 | brand | KDDI |
3 | product | SCV33_jp_kdi |
※広告ID(IDFA/AAID)の送信も可能ですが、デフォルトではOFF(送信しない)設定になっています。詳しくはこちらをご参照ください。
viewイベント
閲覧イベントとも呼ばれ、webでは計測タグで計測が行われます。
アプリでは全ページに実装することで、ユーザーがどのページを閲覧したか、どのような行動を知っているか可視化することができます。
webviewの計測については、viewイベントの実装ではなく計測タグを設定していただきます。詳細はこちらをご参照ください。 iOS/ Android
下記必須項目となります。
No. | フィールド名 | 値 | 備考 |
---|---|---|---|
1 | view_name | ”top" | ページの種類ID名 |
2 | title | "トップページ" | 管理画面上で表示されるページ名 |
- 価格や詳細情報を送信したい場合は、別途[item_detail]等のイベントを実装しましょう
- 各ページで送信するフィールドを揃えることでKARTE管理画面上でセグメントを作る時の設定が簡単になります
identifyイベント
ユーザー情報を送信するためのイベントになります。
会員登録時、ログイン時に送付する以外に、起動時に常に送ることを推奨します。
クロスプラットフォームでのユーザーの紐づけは、user_id
で行います。つまり、ウェブでもアプリでもuser_id
をKARTEに送る必要があります。(※user_id
は、ハッシュ化したものなどでも可能です。ウェブ・アプリで共通のIDをお送り頂ければ、紐付けることができます。)
下記、注意が必要なフィールドとなります。
フィールド名 | 概要 | 例 | 型 |
---|---|---|---|
user_id | ユーザーを識別するユニークなIDです。複数ブラウザ、端末間でユーザーを同一認識する事が出来ます。ユーザーIDを意味する値をidentifyイベントで送信する場合は、必ずuser_idという名称で、システム上でユニークなID(1人のユーザーに対して与えられ、システム上で重複しない)を文字列形式で送信してください。visitorの場合には、user_idを送付しないようご注意ください。複数人のユーザーが1人のメンバーに紐付き、正常にユーザーを認識できなくなります。 | “000”, “taro.karte@example.com” | 文字列 |
name | ユーザーの氏名です。管理画面上やアクション時に、名前を参照することが出来ます。 | “佐藤茂” | 文字列 |
メールアドレスです。アクションとしてメールを利用する場合には必須です。 | “sato_shigeru@plaid.co.jp” | 文字列 | |
subscription | メールマガジン登録の可否です。falseの場合、アクションでメールを設定しても送信されません。アクションとしてメールを利用する場合には必須です。 | TRUE | BOOL |
birth_month | 誕生月です。数値での指定も可能ですが、同一サイト内で型は揃える必要があります。「以上/以下」というルールを指定をしたい場合は数値、正規表現でルールを指定したい場合は文字列型を推奨します。 | 8, “08”, “AUG” | 文字列、もしくは数値 |
phone_subscribe | SMS配信の可否です。falseの場合、アクションでSMSを設定しても送信されません。アクションとしてSMSを利用する場合には必須です。 | TRUE | BOOL |
customイベント
customイベントは任意に作成することが可能となり、その際イベント名の定義も必要となります。イベント名は半角小文字英字・半角数字・_(アンダースコア)が使用できますが、日本語は不可となります。
イベント名 | 計測対象 | 送信タイミング |
---|---|---|
XXX_click | 特定のクリックイベントを計測したい場合 | クリック時 |
buy | 購入を計測するためのイベント(主にECサイトで利用想定) 購入金額はrevenue, 個別商品はitemsというフィールドを追加ください | 購入完了時 |
signup | 会員登録を計測するためのイベント | 会員登録完了時 |
cart | カートへの追加を計測するためのイベント(カート落ちユーザーへの施策で利用) | カートに商品を追加した時 |
イベントの計測方法
イベントの送り方には主に3つの方法があります。イベント定義書作成時に各イベントをどの方法で計測するかイメージしましょう
SDK経由で計測する
- ユーザーの行動に合わせてイベントをKARTEに送信します
- 実際の実装方法はこちら
webviewを計測する
サーバーサイドAPIで計測する
- アプリ内にユーザーに送信する情報がない場合にはサーバーサイドAPIで直接KARTEにイベントを送信することが出来ます
- サーバーサイドAPIからのイベントをトリガーにしてポップアップの配信はできかねます
- リクエスト制限がありますのでご注意ください
- 使用する場合にはサービスアカウントの設定が必要となります。