GA4でユーザー属性を設定したのに反映されない、データが表示されないという問題は、タグの設定ミスやデータの遅延、スキーマの不一致など複数の原因が考えられます。この記事では、ユーザー属性が機能しない主な原因と、確認すべき設定ポイント、実務的な解決手順を解説します。読み終わったときには、GA4のユーザー属性の設定状況を正確に診断でき、問題を特定して対処できるようになります。
GA4のユーザー属性とは
GA4のユーザー属性(User Properties)は、ユーザーの特性情報を記録する機能です。顧客の会員ID、性別、購入履歴、興味関心など、ユーザーに関連する独自の情報を収集できます。これらのデータを基にセグメント分析やオーディエンス作成を行えるため、データ分析の精度向上に不可欠な設定です。
ユーザー属性が正しく機能しない場合、セグメント分析ができなくなり、ユーザー理解が困難になります。設定エラーの原因は多岐にわたるため、段階的な確認が重要です。
ユーザー属性が設定されない主な原因
ユーザー属性の設定がうまくいかない場合、以下の原因が考えられます。
タグの発火遅延
GA4のトラッキングコードが正しく機能していても、データ送信には時間がかかります。ユーザー属性の場合、タグ発火から GA4 に データが反映されるまで 24 時間程度の遅延が生じることがあります。設定直後にレポートでデータが表示されなくても、24時間経過後に確認すると反映されていることが多いです。
イベント送信時の属性設定タイミング
ユーザー属性は「イベント送信のときに一緒に送信される」仕様になっています。属性値を設定しただけではデータが送信されず、実際のイベント(ページビュー、クリック、フォーム送信など)が発火するタイミングで初めてサーバーに送信されます。イベントが発火していない環境では、属性設定がいくらあってもデータが記録されないのです。
スキーマの未登録
GA4の管理画面でユーザー属性として認識されるには、あらかじめ「カスタム定義」でスキーマを登録する必要があります。スキーマに登録されていない属性は、レポートやセグメントで選択肢として表示されません。GTM や タグから送信していても、GA4側で認識されていないため、データが活用できないということになります。
属性値の形式が不正
ユーザー属性に設定する値には形式の制限があります。特定の文字数制限や形式ルールに違反している場合、属性が拒否されることがあります。また、null値や空文字列が送信されると、属性値として記録されません。
GTMの設定エラー
GTMを通じてユーザー属性を送信する場合、変数の参照ミスやタグのトリガー設定の誤りが原因になることがあります。タグが発火していても、正しい変数から値を取得できていなければ、空の属性が送信されることになります。
ユーザー属性が機能しているか確認する方法
まずは、設定が実際に機能しているかを正確に診断することが重要です。
リアルタイムレポートで確認
GA4の管理画面で「レポート」→「リアルタイムレポート」を開き、ユーザーがアクティブな状態で確認します。リアルタイムレポートには、イベント情報とカスタムイベント属性が表示されます。ここでユーザー属性が見えれば、ユーザー属性が送信されているサインです。見えなければ、タグの発火または属性の送信に問題がある可能性が高いです。
DebugViewで詳細を確認
GA4の「管理」→「DebugView」を使うと、イベント送信の詳細情報を確認できます。DebugViewはリアルタイムレポートより詳しい情報を表示し、イベントパラメータやユーザープロパティの送信状況を確認できます。属性値が正しい値で送信されているか、null値になっていないかなどを確認しましょう。
スキーマ登録状況を確認
GA4の管理画面で「カスタム定義」を開き、該当のユーザー属性がスキーマに登録されているかを確認します。登録されていない場合、設定したい属性のタイプ(テキスト、数値など)を選択してスキーマに追加します。このステップを完了しないと、ユーザー属性はレポートやセグメントで選択肢として表示されません。
セグメントで属性値の記録確認
セグメント作成時に、該当のユーザー属性を条件に指定し、実際にユーザーがヒットするか試してみます。セグメントに1人以上のユーザーが該当すれば、属性値が記録されていることが確認できます。
ユーザー属性設定の実務的な解決手順
問題を特定したあとは、以下の順序で解決を進めます。
ステップ1:スキーマの登録を確認・追加
GA4管理画面で「カスタム定義」を開き、使用したい属性名がリストに存在するか確認します。存在しなければ、「カスタムユーザープロパティを作成」をクリックして新規登録します。属性名(例:user_id、member_tier)、タイプ(テキスト、数値など)を入力して保存してください。
ステップ2:GTMまたはサイトコードの確認
GTMを使用している場合、ユーザー属性を送信するタグを確認します。タグのイベント送信時に、「user_properties」というパラメータで属性をセットしているか、その属性名とスキーマ名が一致しているか検証してください。GTMの変数参照や条件トリガーが正しく設定されているかも合わせて確認します。
サイト上のコードで直接送信している場合は、gtag.js のコマンドで正しく属性を送信しているか検証します。例えば、gtag('set', {'user_properties': {'user_id': '12345'}})の形式で送信していることを確認してください。
ステップ3:イベント発火状況の検証
ユーザー属性は、イベント送信のときに属性値も一緒に送信される仕様です。ページビューやカスタムイベントがきちんと発火しているか、DebugViewまたはリアルタイムレポートで確認します。イベントが発火していないと、属性値も送信されません。
ステップ4:24時間の待機後に再確認
設定が正しければ、ユーザー属性のデータは 24 時間以内に GA4 に反映されます。テスト送信後、24時間経過してからレポートやセグメントで属性が表示されるか確認してください。
実務担当者が見落としやすいポイント
ユーザー属性設定時は、以下の点を特に注意してください。
スキーマ登録とタグ送信の属性名の大文字小文字を統一:GA4では属性名の大文字小文字を区別します。スキーマで「User_ID」と登録したのに、タグでは「user_id」で送信していると、別の属性として扱われてしまいます。
属性値が null や空文字列になっていないか確認:条件付きでユーザー属性を送信する場合、条件を満たさないときに属性値が送信されないようにしてください。null値で送信されると、属性は記録されません。
イベント単位での属性設定の誤解:ユーザー属性は「ユーザー単位」で記録され、1回送信されると以降のセッションでも保持されます。イベント単位で毎回同じ値を送信し続けると、データが重複記録されるわけではありませんが、定期的な更新が必要な属性の場合は定期的に再送信する必要があります。
セッション属性との混同を避ける:GA4ではユーザー属性だけでなく、イベント属性やセッション属性も存在します。ユーザー単位で記録したいデータは、必ずユーザー属性として送信してください。
よくある質問
ユーザー属性を設定してからデータが表示されるまで、どのくらい時間がかかりますか?
通常、イベント送信後 24 時間以内に GA4 のレポートに反映されます。DebugViewでは即座に確認できますが、「分析」タブのレポートに表示されるまで時間がかかる仕様です。
ユーザー属性の値を更新した場合、過去のデータも更新されますか?
いいえ。ユーザー属性の値を更新すると、以降のイベント送信時にはその新しい値が記録されます。過去データは更新されません。
ユーザー属性として送信できる値に上限はありますか?
ユーザーあたりのユーザー属性の数は最大100個です。また、属性値の文字数は最大 36 文字という制限があります。
GTMでユーザー属性を送信するとき、データ層変数とカスタム変数のどちらを使うべきですか?
データレイヤー変数が優先されます。確実に値が渡される場合はデータレイヤー変数を、ページ構造上不可能な場合はカスタムJavaScript変数を使用してください。
ユーザー属性がレポートで選択肢として表示されないのはなぜですか?
スキーマに登録されていない可能性があります。「カスタム定義」から属性をスキーマに追加してください。
参考情報
Google Analytics 4 のユーザー属性機能に関する公式情報は、以下を参照してください。
参考:Google Analytics 4 でユーザー プロパティを設定する
GTM でのユーザー属性送信に関する詳細は、以下を参照してください。
参考:Google タグ マネージャーでのユーザー プロパティの実装
まとめ
GA4のユーザー属性が設定されない原因は、スキーマ未登録、タグの送信遅延、イベント未発火、属性名の形式エラー、GTMの設定ミスなど複数あります。問題を解決するには、まずDebugViewやリアルタイムレポートで属性が実際に送信されているか確認し、スキーマ登録とタグ設定を検証することが重要です。属性名の大文字小文字統一や null 値チェック、イベント発火タイミングの確認など、実務的な注意点も多いため、段階的に設定を検証してください。24時間の遅延を考慮しつつ、設定後の確認を確実に行えば、GA4のユーザー属性機能を正確に活用できます。
