このページでは

ユニークユーザーの追跡

Amplitudeは、匿名セッション、サインイン、複数のデバイスにわたって3つの識別子(デバイスID、ユーザーID、Amplitude ID)を1つのプロファイルに組み合わせることで、ユニークユーザーをカウントします。 ユーザーが認証されたらできるだけ早く安定したユーザーIDを送信してください。これにより、同じデバイス上の匿名イベントが1つのプロファイルに統合され、アクティブユーザー数を正確に保つことができます。

Amplitudeがユニークユーザーを識別する方法

3つのIDは次のように機能します。

  • **デバイスID:**モバイルアプリケーションの場合、Amplitudeはベンダー識別子(IDFV)を取得するか、デバイスIDのランダムな英数字文字列を生成します。 ウェブアプリケーションの場合、AmplitudeはデフォルトでデバイスIDをランダムに生成されたユニバーサルユニーク識別子(UUID)に設定します。 デバイスIDは、ユーザーがブラウザのCookieをクリアするか、非公開モードでブラウズしない限り保持されます。
  • **ユーザーID:**ユーザーIDを設定します。多くの製品は、ユーザー名または内部の一意の識別子をユーザーIDとして使用しています。ユーザーIDには安定した値を使用してください。匿名ユーザーにユーザー ID を割り当てないでください。 匿名ユーザーは引き続きAmplitude IDとデバイスIDを所有しているため、Amplitudeは後でそれらを同じユーザーとして認識する可能性があります。
  • **Amplitude ID:**AmplitudeはデバイスID、ユーザーID、またはその両方を受信した後、Amplitude IDを生成し、それを収集した識別子と関連付けます。AmplitudeはAmplitude IDを生成するために1つの識別子しか必要としません。 AmplitudeはユーザーIDを優先しています。これは、複数のユニークユーザーが同じデバイスを共有できるためです。

Amplitudeが別のプロジェクトで既にユーザーIDに関連付けられている既知のデバイスIDを検出した場合、Amplitudeはポートフォリオアドオンを持っていなくても、すべてのプロジェクトでデバイスIDがそのユーザーIDに関連付けられていると仮定します。 詳細については、「ポートフォリオ」を参照してください。

複数のプロジェクトが1つの組織内に存在する場合、すべてのプロジェクトでユーザーIDと同じ変数を使用する必要があります。同じユーザー ID 変数を使用することで、トラッキングの不一致を防ぐことができます。 たとえば、あるプロジェクトがユーザーIDとしてメールアドレスを使用し、別のプロジェクトが電話番号を使用する場合、Amplitudeはこれらの識別子を同じAmplitudeユーザープロフィールに統合しません。MTU課金を利用している場合、複数のユーザーに対して課金が発生する可能性があります。

広告識別子をデバイスIDとして使用

広告主識別子(iOS用IDFA)と広告識別子(Android用AdID)をデバイスIDとして使用するようにAmplitudeを設定できます。詳細については、該当するSDKインストールガイドを参照してください。広告識別子を使用すると、デバイスIDはインストール全体で永続化されます。

iOSユーザーはいつでも自分のデバイスでIDFAをリセットできます。iOS10以降、ユーザーが広告トラッキングを制限した場合、iOSはIDFAをすべてゼロとして返します。Amplitudeの場合、デバイスIDはIDFVまたはランダムに生成された文字列のいずれかに設定されます。

Androidユーザーはいつでもデバイス上のAdIDをリセットできます。

クロスドメイン追跡を設定する

2つのドメインにわたって匿名の行動を追跡できます。例えば:

  • サイト1:https://www.landingpage.com
  • サイト2:https://www.productpage.com

サイト1から開始してサイト2に移動した匿名ユーザーを追跡するには、サイト1のデバイスIDとセッションIDの両方をURLパラメータとしてサイト2に渡します。デバイスIDのみを渡すと匿名IDは保持されますが、セッションの継続性は維持されません。ドメイン境界を越えて分割されたセッションは、トラフィックTarget分析などのセッションベースのメトリックを歪める可能性があります。

Browser SDK 2(@amplitude/analytics-browser v2.8.0以降)の場合:

  1. サイト1で、amplitude.getDeviceId()からデバイスIDを、amplitude.getSessionId()からセッションIDを取得します。
  2. ユーザーがナビゲートするときに両方の値をURLパラメータとしてサイト2に渡します。たとえば、https://www.productpage.com?ampDeviceId=DEVICE_ID&ampSessionId=SESSION_IDです。
  3. amplitude.init('YOUR_API_KEY')を使用して、サイト2でAmplitude SDKを初期化します。SDK は URL から ampDeviceIdampSessionIdを自動的に読み取ります。

カスタム時間ベースのセッション定義はセッションベースのレポートを補完できますが、ドメイン間で真のSDKセッション継続性を実現するためにampSessionIdを受け渡すことに代わるものではありません。実装の詳細については、Browser SDK 2ドキュメントの「Cross-domain tracking」を参照してください。

AmplitudeがAmplitude IDを割り当てる方法

以下のシナリオは、AmplitudeがデバイスIDとユーザーIDを使用して新しいAmplitude IDを生成するか、既存のAmplitude IDを適用する方法を示しています。

ユーザーIDが存在しません

プロダクトがユーザーIDを割り当てていない場合、Amplitudeは特定のデバイスIDを初めて認識したときにAmplitude IDを生成します。

このセットには3人のユニークなユーザーがいます。

各デバイスからの最初のイベントは、新しいAmplitude IDを取得します。同じデバイスからの以降のイベントでは、既存のAmplitude IDが再利用されます。 この例では、デバイスAはAmplitude ID 1を使用し、デバイスBはAmplitude ID 2を使用し、デバイスCはAmplitude ID 3を使用しています。

ユーザーIDは匿名イベントに紐付けられます

プロダクトがユーザーIDを割り当てている場合、AmplitudeはユーザーIDを持つイベントを受信するまで、そのデバイス上で発生した以前の匿名イベントが単一ユーザーに属しているものとみなします。その後、Amplitudeは同じAmplitude IDを匿名イベントと識別されたイベントに適用します。

このセットには1人のユニークなユーザーがいます。

Amplitudeは、最初の2つのイベントをデバイスGに匿名で記録し、それらにAmplitude ID 4を割り当てます。3番目のイベントは、ユーザーIDを含むデバイスGからの最初のイベントです。 Amplitudeはジョンに匿名イベントと同じAmplitude IDを割り当てるため、Amplitudeは1人のユニークユーザーをカウントします。

複数のデバイスIDで同一のユーザーID、匿名イベント_なし_

Amplitudeは、Amplitude IDを割り当てる際に、ユーザーIDをデバイスIDよりも優先します。

このセットには1人のユニークなユーザーがいます。

ユーザー(Zack)がデバイス「K」にイベントを送信し、Amplitudeで「Amplitude ID 5」が割り当てられました。その後、Amplitudeでは、どのデバイスでもZackのユーザーIDが表示されると、デバイスIDに関係なく、「Amplitude ID 5」がイベントに割り当てられます。

同一デバイス上の複数のユーザーID

当該デバイスにユーザーIDが1つでも表示され、その後Amplitudeが匿名イベントを受信した場合、Amplitudeでは、最後の既知ユーザーが匿名イベントを送信したと仮定し、そのユーザーのAmplitude IDをイベントに割り当てます。

このセットには2人のユニークなユーザーがいます。

デバイス「R」で、Janeが最初のイベントをログ記録し、Amplitudeで「Amplitude ID 6」が割り当てられました。Amplitudeが次に受信したイベントは匿名でした。その場合、Janeが最後の既知ユーザーとなるため、Janeがログアウトしていても「Amplitude ID 6」が割り当てられます。

MaryはデバイスRで3番目のイベントを送信し、AmplitudeはAmplitude ID 7を割り当てます。Amplitudeは次の2つのイベントを匿名で受信し、それらにAmplitude ID 7を割り当てます。Amplitudeは、Maryが最後の既知のユーザーであったため、これらのイベントを送信したと仮定します。

ユーザーを明示的にログアウトしたり、匿名ユーザーとしてイベントを記録したりする場合は、ユーザーIDを「null」に設定し、デバイスIDを新たに再生成します。手順については、iOSまたはAndroid SDKのドキュメントに従ってください。

複数のデバイスで同じユーザーIDを使用している場合の、匿名イベント

デイビッドはデバイスYでイベントを記録し、AmplitudeはAmplitude ID 8を割り当てます。

次に、匿名ユーザーがデバイス「Z」でイベントを記録します。この場合、デバイスにユーザーが関連付けられていないため、Amplitudeで「Amplitude ID 9」が割り当てられます。

その後、DavidはデバイスZでプロダクトにログインします。Amplitude ID 8はDavidに属しているため、サインインイベントはAmplitude ID 8になります。

最後に、AmplitudeはデバイスZ上でイベントを匿名で記録します。この匿名イベントにはAmplitude ID 8が割り当てられます。Davidは最後の既知のユーザーだったため、Amplitudeはこのイベントを彼に紐付けます。

このシナリオでは、デバイスに関連付けられているユーザー ID は 1 つだけですが、デバイス Z 上の匿名イベントには 2 つの異なる Amplitude ID があります。 AmplitudeはAmplitude ID 8と9を単一のユーザー:Davidとして解釈します。Amplitudeで「Amplitude ID 8」と「Amplitude ID 9」の関連性が検出されると、AmplitudeではIDがマージされるため、ユーザー数は「1」とカウントされます。 このマージは、Amplitude ID が 9 のイベントにユーザー ID が存在しなかった場合にのみ発生します。

Redshift を使用している場合、データは変更されず、生データ内の匿名イベントには引き続き Amplitude ID 9 が保持されます。 詳細については、「マージされたユーザー」を参照してください。

マージされたユーザー

ユーザーのマージは、Amplitudeが匿名ユーザー(唯一のIDがデバイスIDであるユーザーなど)を、Amplitude IDを持つ認識済みユーザーであると判断した場合に発生します。

たとえば、ユーザーが新しいデバイスを取得し、サインインする前にプロダクトにイベントを匿名で記録した場合などです。Amplitudeにとって、これらの匿名イベントは新しいユーザーからのもののように見えるため、Amplitudeはそれらを新しいAmplitude IDにマッピングします。

ユーザーが既存のアカウントにログインすると、Amplitudeはその後のすべてのイベントをそのユーザーの既存のAmplitude IDにマッピングします。 個別のAmplitude IDは2つの問題を引き起こします。

  • Amplitudeはアクティブユーザー数と新規ユーザー数でユーザー数を2回カウントします。
  • Amplitudeは、ユーザーが匿名である間に受信したイベントを真のAmplitude IDとユーザーの実際のユーザーIDに帰属させることはありません。

Amplitudeは、Amplitude IDのリストをマージされたAmplitude IDの内部マッピングと相互参照することにより、重複するAmplitude IDを解決します。 マージされたAmplitude IDは同じユーザーに属します。 Amplitudeでは、ダッシュボード上でクエリが行われると、マージされたユーザーのマッピングが適用されます。ユーザーのマージされたIDの一覧とマージ時刻は、ユーザーのユーザーアクティビティページで確認できます。

重要な注意事項

  • AmplitudeはユーザーIDをマージできません。 既存のユーザー用に新しいユーザーIDを作成した場合、Amplitudeはそれらを異なるユニークユーザーとして認識します。
  • データベースには未加工のイベントログが含まれており、マージされたユーザーのテーブルが含まれていないため、マージされたユーザーのマッピングはAmazon Redshiftの未加工データには適用されません。ユーザーマッピングをマージしていない場合、AmplitudeはDAU数の平均変化率を約5%と観測しており、ウェブデータの変化率は平均を上回っています。

イベント ID、デバイス ID、およびユーザーのマージ

Amplitudeがユーザーをマージした後も、イベントIDのカウントはデバイスごとに継続されます:

ユーザーがプロダクトデータを消去した場合(例えばアプリを削除して再インストールした場合)、イベントIDは1にリセットされます。ユーザーがアプリを削除して再インストールした場合、Amplitudeは通常、新しいデバイスIDも生成し、これが新しいマージをトリガーします。

Amplitudeでユーザーがマージされると、元のユーザープロパティ値が新しいユーザープロパティ値に上書きされるため、マージされたユーザーは、Start Versionや初期UTMパラメータなど、変える必要のないユーザープロパティ値まで喪失してしまう可能性があります。 マージされたユーザーがユーザープロパティ値に影響を与える場合は、Amplitude サポートまでお問い合わせください。

これは役に立ちましたか?