FAQ:このユーザーが「(無)」または予期しない値でカウントされているのはなぜですか?

イベントまたはユーザープロパティによってイベントをグループ化する際に、結果の一部が(無)というグループに区分されていることに気づくかもしれません。Amplitudeでは、(無)はnull値を指します。

イベントやユーザープロパティの値がnullのユーザーが存在するのはなぜでしょうか?

この記事では、ユーザーがnullや予期しないプロパティ値を持つ、よくある理由をいくつか取り上げています。

イベントプロパティ

Amplitudeは、イベントベースのアナリティクスプラットフォームであり、すべてのチャートとコホートのクエリはイベントレベルで実行されます。チャートは、イベント発生時にイベントプロパティの値を返します。

イベントプロパティはイベントの構成要素であるため、イベントプロパティの値はイベントレベルで一意になることが考えられます。イベント時にnull値を持つイベントが送信された場合、そのイベントプロパティでグループ化する際に一部のイベントまたはユーザーが(無)バケツに区分されることになります。

次に例を示します。ユーザーAは1月1日に1回と2月1日に1回、メッセージの送信をトリガーしました。オーディエンスのイベントプロパティは1月15日に実装されたため、ユーザーが1月1日にメッセージの送信をトリガーした際には利用できませんでした。オーディエンスプロパティは、デフォルトMentioned_Contactsに等しい値のみを持つことができます。ユーザーAが2月1日にメッセージの送信を実行した際、そのイベントプロパティはオーディエンス=デフォルトとなります。

この情報に基づき、ユーザーAは以下の表でどのようにカウントされるでしょうか?

none_groupby.png

ユーザーAはデフォルトバケツに1回、(無)バケツに1回カウントされます。ユーザーAは、2月1日のイベント時点ではオーディエンス=デフォルト、1月1日のイベント時点では、オーディエンス=(無)でした。

イベントとユーザーは、イベント発生時に送信されたプロパティ値に従って区分されます。

ユーザープロパティ

イベントプロパティと同様に、チャートはイベント発生時にユーザープロパティ値を返します。

ユーザープロパティは別のテーブルに格納され、ここで説明するプロセスに従ってイベントに適用されます。ユーザーのユーザープロパティ値が更新されても、イベントの履歴に紐づけられたユーザープロパティ値は変更されません

カスタムプロパティ

ユーザーのイベントに紐づけられたカスタムユーザープロパティは、イベント発生時に存在するユーザープロパティ値を反映します。

もう一つの例をご紹介します。1月15日にAccount_Typeと呼ばれるユーザープロパティタイプが実装されました。ユーザーAは、アカウントタイプが買い物客の登録ユーザーで、1月1日と2月1日に1回ずつカートに商品を入れるをトリガーしました。

この情報に基づき、ユーザーAは以下の表でどのようにカウントされるでしょうか?

none_account_type.jpeg

Account_Typeというユーザープロパティは1月15日まで実装されていなかったため、1月15日より前にトリガーされたすべてのイベントは、Account_Typeとしてnull値を持つことになります。ユーザーAは(無)バケツに1回、買い物客バケツに1回カウントされます。

結果がユニーク毎に集計される場合、ユーザーは各ユニークバケツ内で重複排除されます。つまり、もしユーザーAが2月1日2月2日にカートに商品を追加をトリガーした場合でも、ユーザーAは上記の買い物客バケツには1回だけカウントされることになります。

このロジックは、非nullのユーザープロパティ値を送信する場合にも適用されます。イベントとユーザーは、イベント発生時に適用されたプロパティ値に従って区分されます。

ユーザーの属性は時間の経過とともに変化する可能性があるため、このロジックが採用されています。例えば、都市はユーザーが様々な都市に移動し、その先々でイベントを発生させるため、時間ごとに変化する属性となります。イベント発生時にユーザーがどこにいたかを理解することは、ユーザーが直近にどこにいたかを理解することよりも価値があると考えられます。

ロケーションプロパティ

ロケーションユーザープロパティ(![amplitude_logo.png](/docs/output/img/jp/amplitude-logo-png.png)都市![amplitude_logo.png](/docs/output/img/jp/amplitude-logo-png.png)DMA![amplitude_logo.png](/docs/output/img/jp/amplitude-logo-png.png)地域![amplitude_logo.png](/docs/output/img/jp/amplitude-logo-png.png)国など)は、GeoIPによって決定されます。Amplitudeは、最も信頼性の高いデジタル地図ソースとして広く受け入れられているMaxMindデータベースを使用して、ユーザーのIPアドレスから位置情報を検索しています。

クライアント側のイベントでは、MaxMindがそのIPアドレスに対してnullを返した場合に、ロケーションプロパティが(無)値となる場合があります。MaxMindは最も信頼できる情報源と考えられていますが、都市/地域の情報の正確性と可用性は国によって異なります(詳細はこちらで確認)。

サーバー側のイベントでは、ロケーションプロパティ値は、GeoIP(利用できない場合は、location_latlocation_longで代用)か、APIコールで明示的に定義されたものによって決定されます。AmplitudeのHTTP APIでは、都市DMA地域のカスタム値をイベントと一緒に送信することができます。これらの値を送信することを選択した場合、AmplitudeはGeoIPを反映するように変更を加えることはありません。必ず4つのフィールドを一緒に更新してください。これらのフィールドのいずれかを設定すると、他のフィールドは自動的にリセットされます(脚注3を参照してください)。

デバイスプロパティ

Amplitudeは、ユーザーのデバイスからdevice_branddevice_manufacturerdevice_modelの文字列を直接取得し、これらの文字列をデバイスタイプのリポジトリにマッピングすることでデバイス![amplitude_logo.png](/docs/output/img/jp/amplitude-logo-png.png)ファミリーと![amplitude_logo.png](/docs/output/img/jp/amplitude-logo-png.png)デバイスタイプを決定しています。

世界的に新しい機種が次々と発売されていますので、まだマッピングされていないデバイスタイプが常にいくつかある可能性があります。このような場合、![amplitude_logo.png](/docs/output/img/jp/amplitude-logo-png.png)デバイスタイプ(無)になります。

デバイスマッピング以外でも、これらのフィールド(platformos_nameos_versiondevice_branddevice_manufacturerdevice_modelcarrier)が一緒に更新されなかった場合に、サーバー側のイベントでデバイス情報がnullになる可能性があります。これらのフィールドのいずれかを設定した場合に、同じイベントの他のプロパティ値が明示的に設定されていない場合、他のプロパティ値はすべて自動的にnullにリセットされます(こちらで脚注2を参照してください)。

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.