Amplitudeでは、プロパティとはユーザーとユーザーがトリガーするイベントに関する追加のコンテキストを提供する属性のことです。Amplitudeには2種類のプロパティがあります:
- ユーザープロパティ: ユーザープロパティは個々のユーザーの属性です。一般的なユーザープロパティには、デバイスの種類、場所、ユーザーID、ユーザーの有料と無償の区分などが含まれます。属性は、性質と更新頻度に基づいて、現在または過去の値を反映している場合があります。
- イベントプロパティ: イベントプロパティは特定のイベントの属性です。イベントプロパティに含まれる値は、イベントがトリガーされた時点の値です。例えば、
JoinCommunity
というイベントはType
のイベントプロパティを持っている可能性があります。これはそのイベントの発生時に参加したコミュニティの種類を示します。
この記事では、ユーザープロパティとイベントプロパティの動作、これらのプロパティをAmplitudeがどのように更新して適用するか、Amplitudeプロジェクトでプロパティを非表示にする方法についてご説明します。
ユーザープロパティ
上記の通り、ユーザープロパティはそれが関連付けられているユーザーに関する有益な詳細情報を説明する属性です。Amplitudeはすべてのイベントでユーザープロパティを送信します。
AmplitudeのSDKはデフォルトで次のユーザープロパティをトラックします:
- プラットフォーム
- デバイスの種類
- デバイスファミリー
- 国
- 市区町村
- 地域
- 開始バージョン
- バージョン
- 通信事業者
- OS
- 言語
- ライブラリ
- IPアドレス
各プロパティの定義はこちらで確認いただけます。
注意: デフォルトのプロパティに対して自動トラッキングを無効にしたい場合、JavaScript、AndroidまたはiOS SDKの構成から行うことができます。これにより、まだデータが送信されていない新規作成されたプロジェクトでAmplitudeがデフォルトのプロパティをトラックしないようにすることができます。
カスタムユーザープロパティをセットアップすることもできます。ユーザーとユーザーが使用するデバイスに固有の特徴や特性を選択するようにします。さもないと、ユーザープロパティから収集されるデータがそれほど役に立たないことがあります。カスタムユーザープロパティの良い例としては、ゲーム内のリフェラルソース、プランの種類、友人の数、現在のレベルなどがあります。
Amplitudeのロゴを探して、デフォルトのAmplitudeユーザープロパティとカスタムユーザープロパティを区別できます。ロゴが記載されているプロパティはデフォルトのユーザープロパティです。カスタムユーザープロパティの名前はそのロゴが前に付いていません。
Amplitudeの顧客は通常はデフォルトのプロパティ以外に最大20のカスタムユーザープロパティを実装します。
Amplitudeによりユーザープロパティを更新する
ユーザーがAmplitudeにより取得されたイベントを発動するときに、各ユーザープロパティの現在値が含まれますが、これらの値は時間の経過とともに変化する可能性があります。例えば、ユーザーがニューヨークからダラスに転居する、または無料ユーザーから有料ユーザーに変更するな場合があります。これが起こる場合、Amplitudeはユーザープロパティを更新し、その時点からユーザーが送信するイベントに新しい値を適用します。ユーザープロパティの値の更新は過去に遡って適用されません。古くなった値は履歴データで管理されます。つまり、プロパティの値は常にイベント発生時の値を反映しています。
例えば、下の画像で、このユーザーは午前10時12分にコミュニティに参加しています。 Communities_Joined
プロパティの値が448になりました。
このユーザーは約1週間前の9月21日午後7時54分にもコミュニティに参加しています。そのイベントを選択すると、 Communities_Joined
プロパティに447と表示されます。これは Join Community
イベント発生時の値です。
ユーザーの個々のイベントストリームの各イベントに表示されているユーザープロパティはイベント発生時のユーザープロパティの値を取得します。 この情報はIdentify call経由で送信される最新のイベントに由来します。
注意: すべてのイベントでカスタムユーザープロパティを送信する必要はありません。ユーザープロパティが設定されると、その値は永続し、Amplitudeはその値が変更されるまで後続のすべてのイベントにこの値を適用します。ユーザープロパティはIdentify APIから後で更新できるため、イベントにカスタムユーザープロパティを適用し忘れても心配ありません。ただし、後でAmplitudeでこのイベントをクエリした場合、更新後のユーザープロパティはこのイベントに表示されず、その時点以降のイベントにのみ適用されます。
新旧のユーザープロパティの値が重複するとき
ユーザープロパティの値が変更されるとき、Amplitudeのチャートに新旧両方のユーザープロパティのカテゴリにユーザーを表示できます。この重複はプロパティ値が変更された特定の日付にのみ適用されます。
例えば次のように機能します。7月1日にユーザーがゲームアプリ(この時点でバージョン1.8)にログインし、いくつかゲームをプレイします。後日、ユーザーがアプリを最新のバージョン2.0にアップグレードし、さらにいくつかゲームをプレイしました。アクティブユーザーの日次チャートをバージョン別にセグメント化して、バージョン1.0と2.0を比較する場合、そのユーザーはその日の両方のセグメントに表示されます。一方、7月2日以降、このユーザーはユーザーがさらに新しいバージョンにアップグレードするまで、バージョン2.0のセグメントに表示されます。
ユーザーセグメントをチャートに適用した場合も同じことが起こります。イベント発生時にユーザープロパティに値がない場合、Amplitudeは (none)
という値を表示します。最初のPlaySong
イベントのユーザーの値が isPaying
= (none)
で、次のPlaySong
イベントの値がisPaying
= True
の場合、ユーザーは両方のバケツに表示されます。そのユーザーのユーザーアクティビティのページを見ると、そのプロパティの最新の値のみがユーザーのプロフィール上のセクションに表示されていることが確認できます。
Amplitudeでユーザープロパティをイベントに適用する
ユーザープロパティは次の3つの方法でイベントに適用できます:
- イベントが送信される 前にユーザープロパティを更新する: プロパティの値がユーザープロパティテーブルで更新され、Amplitudeに送信される次のイベントに適用されます。 更新したプロパティの値が正しくイベントに適用されるようにするため、これはユーザープロパティの更新に推奨および期待される方法です。
- イベントが送信された後にユーザープロパティを更新する: イベントがAmplitudeに送信された後、プロパティの値がユーザープロパティテーブルで更新されます。更新された値は別のイベントが送信されるまでUIに反映されません。
- イベント後にIdentify callが送信された場合、更新された値はそのイベントに反映されません。更新後の値はユーザーのプロフィールの上に反映されますが、Identify callの後に別のイベントが送信されるまでチャート結果に表示されません。
- イベントと一緒にユーザープロパティを送信する: AmplitudeのHTTP API経由で送信されたイベントで、サーバー側のコールにユーザープロパティを含めることができます。更新されたユーザープロパティの値はイベントがAmplitudeで受け取られるとすぐにUIに反映されます。イベントが取り込まれた後、ユーザープロパティテーブルも更新されます。ユーザープロパティテーブルの値が再度更新されるまで、以後のイベントには更新後のユーザープロパティの値が含まれます。
新しいユーザープロパティの値がUIに反映されるようにするためには、イベントは更新をフォローするか、更新と一緒に送信される必要があります。ユーザープロパティはIdentify API経由で更新できます。 Identify APIを使用する前にこれに関するドキュメンテーションをよくお読みの上、理解してください。
イベントプロパティ
イベントプロパティは、ユーザーが発動するイベントの属性で、開発者はこれをAmplitudeに送信します。各イベントにはそれ自身のイベントプロパティのセットがあります。これらのプロパティの性質は、プロダクトの種類と開発者が解析に最も関心がある特定の情報の両方によって決まります。例えば、 Swipe
がトラックするイベントである場合、 Direction
というイベントプロパティには Left
または Right
の値が入ります。
イベントプロパティの例としては、説明、カテゴリー、種類、時間、レベル、完了率(%)、カウント、ソース、ステータス、数、ライブ、認証済み、エラー数、ランク、アクション、モードなどがあります。イベントプロパティは、トラックするイベントの数を削減したり、イベントの分析を改善したりするために使用します。
プロパティを非表示にする
古いプロパティやバグが多いプロパティをプロジェクトのデータ管理のページで非表示にできます。 イベントプロパティまたはユーザープロパティを非表示にすると、プラットフォームUI上で非表示になりますが削除されることはありません。非表示にしたプロパティはいつでも再表示できます。