ユニークユーザーを追跡する

"多くのAmplitude分析はユニークユーザーの正確なトラッキングに依存します。これは多くの場合、思うより複雑です。プロダクトの性質により、ユーザーは自分の意思でログインまたはログアウトし、匿名でブラウジングし、複数のデバイスを使用していることがあります。

ユニークユーザーの正確なカウントを割り出すため、Amplitudeは、デバイスID、ユーザーIDおよびAmplitude IDの組み合わせを使用した解決法を採用しています。この記事では、そのプロセスの仕組みとこれらの各プロパティが持つ役割についてご説明します。

Amplitudeでユニークユーザーを特定する

上記の通り、Amplitudeは、デバイスID、ユーザーIDおよびAmplitude IDという3つの異なるIDのシステムを使用してユーザーをトラックします。

  • デバイスID: AmplitudeはIDFVを引き出すか、またはデバイスIDに英数字の文字列をランダム生成します。この文字列はブラウザーのクッキーまたはモバイルデバイスにローカル保存されます。ウェブベースのアプリケーションでは、Amplitudeはデフォルトでランダム生成されたUUIDにデバイスIDを設定します。ユーザーがブラウザのクッキーを消去するか、プライベートモードでブラウジングしていない限り、デバイスIDは永続します。
    • Amplitude JavaScript SDKのバージョン6.1.0以前は、生成されたデバイスIDは「R」の文字で終わっていました。
  • ユーザーID: この識別子はユーザーにより設定されます。多くのプロダクトはユーザー名または内部の固有識別子を使用してユーザーをトラックします。ユーザーIDは、変更しないもの、または変更する可能性が低いものを設定する必要があります。ユーザーIDが変わると、Amplitudeはそれが現在存在するユーザーを表しているかを知ることができず、別のユーザーを表していると仮定します。
    匿名ユーザー
    。 これらのユーザーはAmplitude IDとデバイスIDを持っています。異なるユーザーIDが同じユーザーに属するものであるとAmplitudeが認識すると、ユーザーは統合されます。

ユーザーIDを設定するには、SDKドキュメンテーションに概要を示したsetUserIdメソッドを使用します。

  • Amplitude ID: デバイスIDとユーザーIDを収集した後、AmplitudeはAmplitude IDを生成し、このユーザーに既に収集したユーザーIDとデバイスIDに関連付けます。AmplitudeはAmplitude IDの生成にユーザーIDまたはデバイスIDのいずれか一つのみを必要としますが、多くのユニークユーザーが同じデバイスを共有している可能性があるため、ユーザーIDの方が適しています。

様々なシナリオでAmplitudeがAmplitude IDをどのように生成するかを詳細にご説明します。

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

Amplitudeに広告主用の識別子(IDFA for iOS)と広告識別子(AdID for Android)をデバイスIDに使用するように指示することができます。詳細は、関連するSDKインスタレーションガイドをご覧ください。これにより、デバイスIDがインストール全体で保持されます。

iOSユーザーはデバイス上でIDFAをいつでもリセットできます。iOS 10では、ユーザーが広告のトラッキングを制限している場合、これによりすべて0からなるIDFAが生成されます。Amplitudeは代わりにデバイスIDをIDFVまたはランダム生成された文字列として設定します。

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

注意: AppleによるiOS 14のIDFAの変更について疑問がある場合は、こちらの記事をご覧ください。

クロスドメイントラッキングをセットアップする

2つの異なるドメイン間での匿名の動作をトラックできます。例えば、次の2つのドメインがあると想定してください:

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

サイト1で開始しサイト2にナビゲートする匿名ユーザーをトラックするには、サイト1からのデバイスIDをパラメータとしてサイト2に渡す必要があります。この後、渡されたデバイスIDでSDKを再初期化する必要があります。

  1. サイト1で、amplitude.options.deviceIdからデバイスIDを取得します。
  2. URLパラメータまたは第三者のクッキー経由でデバイスIDをサイト2に渡します。
  3. サイト2では、amplitude.init('YOUR\_API\_KEY', null, {deviceId:'$DEVICE_ID'})でAmplitude SDKを初期化します。

AmplitudeでAmplitude IDを割り当てる

このセクションでは、ユニークユーザーをトラックする際にAmplitudeが遭遇する一般的な状況についていくつか見ていきます。各状況について、AmplitudeがデバイスIDまたはユーザーIDを使用して、どのように新規のAmplitude IDを生成するか、または代わりに使用可能な既存のAmplitude IDの有無をどう判断するのかをご説明します。

ユーザーIDが割り当てられていない

プロダクトがユーザーIDを割り当てない場合、Amplitudeが特定のデバイスIDを初めて確認すると、Amplitude IDが生成されます。

デバイスID ユーザーID Amplitude ID
A null 1
B null 2
B null 2
C null 3
A null 1
C null 3

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

ここでは、最初のイベントはデバイスAから発生しています。このデバイスの記録はないため、Amplitudeは新規のAmplitude ID「1」を割り当てました。

2つ目のイベントはデバイスBから発生しています。このデバイスの記録はないため、Amplitudeは新規のAmplitude ID「2」を割り当てました。

3つ目のイベントもデバイスBから発生しています。このデバイスの記録は既にAmplitudeにあるため、Amplitude ID「2」が割り当てられました。同じロジックがデバイスCにも当てはまります。

匿名イベントの後にユーザーIDを割り当てる

プロダクトがユーザーIDを割り当てる場合、ユーザーIDが使用されるまで、Amplitudeはそのデバイスで匿名で記録された過去のすべてのイベントが単一のユーザーのものであると仮定します。これらの両方のケースにAmplitude IDが使用されます。

デバイスID ユーザーID Amplitude ID
G null 4
G null 4
G John 4

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

ここでは、最初の2つのイベントがデバイスGで匿名で記録され、Amplitude ID「4」が割り当てられています。3つ目のイベントはデバイスGから受け取った、ユーザーIDを含む最初のイベントです。AmplitudeはそのユーザーIDに同じAmplitude IDを匿名のイベントとして割り当てます。これにより、これら3つのすべてのイベントをJohnというユーザーが行ったということができます。

複数のデバイスID上の同じユーザーID(匿名のイベントなし

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

デバイスID ユーザーID Amplitude ID
K Zack 5
L Zack 5

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

ZackというユーザーがデバイスKでイベントを発動し、Amplitude ID「5」が割り当てられました。ZackのユーザーIDが任意のデバイスで表示される度に、AmplitudeはデバイスIDに関わりなく自動的にAmplitude ID「5」を割り当てます。

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

少なくとも1つのユーザーIDが既にデバイスに関連付けられていることが確認された後にそのイベントが匿名で送信された場合、Amplitudeはその匿名のイベントが最後の既知のユーザーにより発動されたとみなして、そのユーザーのAmplitude IDを割り当てます。

デバイスID ユーザーID Amplitude ID
R Jane 6
R null 6
R Mary 7
R null 7
R null 7

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

ここでは、JaneがデバイスRで最初のイベントを発動し、Amplitude ID「6」が割り当てられました。次のイベントは匿名で送信されましたが(たぶんJaneがログアウトした)、Janeが最後の既知のユーザーであるため、Amplitude ID「6」が割り当てられました。

3つ目のイベントはMaryがデバイスRで発動し、Amplitude ID「7」が割り当てられました。次の2つのイベントは匿名で発動され、AmplitudeはAmplitude ID「7」を割り当てました。Maryは最後の既知のユーザーであるため、これら2つのイベントを発動したとみなされました。

ユーザーを明示的にログアウトするか、またはイベントを匿名で記録したい場合は、ユーザーIDをnullに設定し、新規のデバイスIDを再度生成する必要があります。その方法は、iOSまたはAndroid SDKドキュメンテーションの手順に従ってください。

複数のデバイス上の同じユーザーID(匿名のイベントあり)

デバイスID ユーザーID Amplitude ID
Y David 8
Z null 9
Z David 8
Z null 8

ここでは、DavidがデバイスYでイベントを発動し、Amplitude ID「8」が割り当てられました。

次に、匿名ユーザーがデバイスZでイベントを発動しました。このデバイスに関連付けられているユーザーは存在しないため、Amplitude ID「9」が割り当てられました。

次にDavidがデバイスZでプロダクトにログインしました。このイベントにはAmplitude ID「8」が割り当てられました。Amplitude ID「8」はDavidのAmplitude IDであるためです。

最後に、デバイスZでイベントが匿名で発動しました。このイベントにはAmplitude ID「8」が割り当てられました。Davidは最後の既知のユーザーであるため、イベントがDavidが発動したとみなされました。

このシナリオでは、デバイスZに1つのユーザーIDのみが関連付けられているにも関わらず、デバイスZの匿名のイベントには2つのAmplitude IDが割り当てられています。AmplitudeはAmplitude ID「8」と「9」がいずれも単一のユーザー(David)を参照していると解釈しています。 この場合、Amplitudeはこれら2つのIDを統合するため、1人のユーザーのみがカウントされます。この統合は、Amplitude ID「9」が割り当てられたイベントにユーザーIDが割り当てられていない場合にのみ起こります。

**注意:**Redshiftを使用している場合、データは不変であるため、匿名のイベントの生データはAmplitude ID「9」を含んでいます。詳しくは、下記の統合されたユーザーのセクションをご覧ください。

統合されたユーザー

匿名ユーザー(デバイスIDのみを持つ)が実際はAmplitude IDを持つ識別されたユーザーであるとAmplitudeが判断した場合、統合されたユーザーの問題が起こります。

例えば、ユーザーが新しいデバイスを入手した場合、ユーザーはサインインする前にイベントをプロダクトに匿名で記録します。Amplitudeはこれらの匿名のイベントが新規ユーザーから発動されたものとみなすため、これらのイベントは新しいAmplitude IDにマップされます。

一方、ユーザーが既存のアカウントにログインすると、後続のすべてのイベントはそのユーザーの既存のAmplitude IDにマップされます。 このため次のような問題が起こります:

  • ユーザーがアクティブユーザーと新規ユーザーとして2回カウントされる。
  • ユーザーが匿名で受け取ったイベントは「失われ」、これらのイベントに正しいAmplitude IDとユーザーの実際のユーザーIDが割り当てられない。

Amplitudeは、Amplitude IDのリストを「統合された」Amplitude ID(Amplitudeが同じユーザーから発動されたとみなしたAmplitude ID)の内部マッピングと相互参照して、この問題を解決します。これはダッシュボードでクエリする場合に発生します。ユーザーの統合IDはユーザーのユーザーアクティビティのページに統合時間と一緒に表示されます。

重要な注意:

  • ユーザーIDは統合できません。 既存のユーザーに新規のユーザーIDを作成する場合、Amplitudeは異なるユニークユーザーとして認識します。
  • 統合されたユーザーの解決方法はAmazonRedshiftの生データには適用できません。データベースに生イベントログはありますが、統合されたユーザーのテーブルがないためです。この統合されたユーザーのロジックが適用されない場合、ユーザーのDAU数に平均で約5%の変化が見られ、ウェブデータの変化は平均以上でした。統合されたユーザーはSnowflakeのQueryアドオンで使用できます。

イベントID、デバイスID、ユーザーの統合

ユーザーが統合された場合、イベントIDのカウントがデバイス単位で継続します。

デバイスID ユーザーID Amplitude ID イベントID
A null 8 1
A David 8 2
A David 8 3
B null 9 1
B David 8 2
B David 8 3

プロダクトデータが完全に消去された場合(ユーザーがアプリを削除したりアンインストールした場合など)、イベントIDは「1」にリセットされます。ユーザーがアプリを削除またはアンインストールすると、Amplitudeは通常は新規のデバイスIDを生成し、続いて新規の統合がトリガーされます。

ユーザーが統合されると、新しいユーザープロパティの値で元のユーザープロパティの値が上書きされるため、変更することが想定されていなかったユーザープロパティの値(「開始バージョン」、「初期UTMパラメータなど)が「失われる」ことがあります。有料会員で上記の問題の影響がある方は、弊社サポートチームまでお問い合わせください。

"

Need help? Contact Support

Visit Amplitude.com

Have a look at the Amplitude Blog

Learn more at Amplitude Academy

© 2025 Amplitude, Inc. All rights reserved. Amplitude is a registered trademark of Amplitude, Inc.