Skip to content
accs-net.com

Press Esc to close

Demographics

The demographics dimensions in GA4 describe who your visitors are at an aggregate level β€” age bracket, gender, language, country/city, and inferred interest categories β€” so you can compare engagement and conversion across audience segments without exposing personally identifiable information. Demographics power the “Demographic details” report, audience-builder conditions, and the Demographics card in Acquisition reports. This guide covers what GA4 collects, where the signal comes from, the threshold rules that hide small audiences, BigQuery export caveats, GDPR/CCPA implications, and known data-quality limitations.

What is Demographics Data in Analytics (Age, Gender, Interests)

In analytics, demographics is the user-scoped attribute set that classifies visitors into age brackets (18-24, 25-34, 35-44, 45-54, 55-64, 65+), a binary gender field (male, female, or unknown when no signal exists), and high-level interest categories such as Technophiles, Travel Buffs, Foodies, or Sports Fans. GA4 reports these alongside engagement metrics on the user dimension, so every event a signed-in user generates inherits their modeled demographic profile.

Demographics differ from technographics (browser, OS, device category) and behavioral attributes (sessions, page depth). They answer a single class of question: who is on the site, not how they got there or what they did. Combined with conversion or revenue metrics, demographics let you compare a 25-34 audience’s conversion rate against a 45-54 audience’s, or check whether male and female visitors engage at different rates with a specific landing page.

How GA4 Collects Demographic Data (Google Signals + ML Inference)

GA4 has no way to ask the visitor for their age or gender directly β€” the data comes from two sources, both downstream of Google’s identity graph rather than your site code:

  1. Google Signals β€” when a visitor is signed into a Google account with Ads Personalization turned on, Google attaches that user’s known profile (age bracket, gender, inferred interests) to the GA4 hit at collection time. Google’s official Signals documentation confirms this is the primary source for age, gender, and interest dimensions.
  2. Modeled (machine-learning inferred) data β€” for traffic where signed-in signal is absent, GA4 fills gaps using behavioral patterns and Google’s audience-modeling layer to estimate age/gender probability bands. These rows are labeled internally but appear in the same dimensions.

If Google Signals is disabled at the property level, the demographic dimensions show “unknown” or are blank for the bulk of users. Geographic dimensions (country, city) work independently β€” they come from IP geolocation at the collection endpoint and do not depend on Signals. Language comes from the browser’s navigator.language string and is captured by the data stream automatically.

GA4 demographic dimensions tree diagram showing age brackets, gender, language, country, city, and interest categories with their data sources
The six GA4 demographic dimensions and their sources β€” Age/Gender/Interests from Google Signals, Geo from IP, Language from browser locale

Demographics Reports in GA4: Where to Find Them

Once Google Signals is on and the property has accumulated enough traffic to clear thresholds, demographic data surfaces in several standard reports out of the box:

  • Reports β†’ User β†’ User attributes β†’ Overview β€” six tile cards (Country, City, Gender, Interests, Age, Language) with top values
  • Reports β†’ User β†’ User attributes β†’ Demographic details β€” a full tabular drill-down with primary-dimension dropdown (Country, City, Region, Language, Age, Gender, Interests)
  • Reports β†’ Acquisition β†’ User acquisition β€” add Age or Gender as a secondary dimension to see acquisition channels by audience
  • Explorations β€” drag any demographic dimension into Rows, Columns, or Segments inside Free Form, Funnel, or Path explorations
  • Audience builder (Admin β†’ Audiences) β€” use Age, Gender, or Interest categories as conditions to create remarketing audiences for Google Ads

The “Demographics details” table is the workhorse view. The default primary dimension is Country; switch the dropdown to Age or Gender to slice users, sessions, engaged sessions, average engagement time, and conversions by audience segment.

Available Demographic Dimensions

GA4 ships six demographic dimensions out of the box. Each one has a fixed list of values β€” you cannot mint custom age brackets at the property level (custom user properties are a separate scope and not strictly demographic):

Dimension Source Example values Cardinality
userAgeBracket Google Signals 18-24, 25-34, 35-44, 45-54, 55-64, 65+, unknown 7 buckets
userGender Google Signals male, female, unknown 3 values
language Browser navigator.language en-us, en-gb, de-de, fr-fr, ja ~200 locale codes
country IP geolocation United States, Germany, India ~250 countries
city IP geolocation New York, London, Berlin thousands
brandingInterest / interestAffinityCategory Google Signals (ML) Technophiles, Travel Buffs, Foodies, Sports Fans ~80 affinity categories

Country is the only demographic that works reliably without Signals enabled. Age, Gender, and Interests collapse to “unknown” for the majority of unauthenticated EU traffic, where consent-based tracking suppresses the Signals beacon by default.

Enabling Demographics: Google Signals + Property Settings

Demographic reporting is gated behind a single toggle. To turn it on:

  1. In GA4, go to Admin β†’ Property β†’ Data collection and modification β†’ Data collection
  2. Locate the Google signals data collection section
  3. Toggle it ON and accept the policy acknowledgement
  4. Optionally toggle Granular location and device data collection per region (some EU countries default this OFF after May 2024)
  5. Wait 24-48 hours for the demographics dimensions to begin populating

Enabling Signals also activates cross-device measurement and Google Ads remarketing list eligibility. In your privacy policy, you must disclose to visitors that you collect demographic and interest data via Google Signals and link to Google’s user controls page so visitors can opt out at the Google account level. Pair this with a cookie consent banner that respects the user’s GDPR choice β€” if a visitor denies analytics consent, Consent Mode v2 should suppress the Signals beacon entirely.

Threshold Limits and Data Aggregation (Data Threshold for Small Audiences)

GA4 applies a data threshold to demographic reports: rows where individual users could potentially be identified are withheld. This is not a marketing decision β€” Google enforces it as a privacy guarantee against re-identification of small cohorts. Thresholding works at the report-row level: if Age “55-64” + City “ReykjavΓ­k” + a specific landing page would resolve to fewer users than the cutoff, that row collapses to “(other)” or disappears entirely.

Condition Threshold behaviour
Google Signals enabled, demographic dimensions present Threshold applies β€” rows below ~10 users hidden as “(other)”
Google Signals OFF, no demographic dimensions in report No threshold (raw event counts shown)
Reporting identity = “Device-based” instead of “Blended” Threshold relaxed β€” fewer rows hidden but no Signals data
BigQuery Export No threshold applied at all (see below)
Date range with low traffic (small site, narrow window) Most rows collapse to “(other)” β€” widen the range or aggregate

The threshold is a major source of “missing data” complaints. The fix is structural: either widen the date range to clear the per-row minimum, switch the property’s Reporting Identity to “Device-based” (under Admin β†’ Reporting Identity), or query BigQuery directly where no thresholding applies.

Demographics for Audience Building and Segmentation

The most actionable use of demographics is audience construction. Inside Admin β†’ Audiences β†’ New audience, you can stack demographic conditions to build a target list:

  • Female users 25-34 in the United States β€” three AND conditions, used for retargeting in Google Ads
  • Users with Interest = Technophiles AND Country = Germany β€” narrow product audience for a tech launch
  • Spanish-speaking users (language starts with “es-“) who triggered add_to_cart β€” combines a demographic with a behavioral event for cart abandonment campaigns
  • Age 18-24 OR Age 25-34 with engagement time > 60 seconds β€” younger engaged cohort for content series

Audiences exported to Google Ads inherit the demographic seed but the matched ad audience is reshaped by Google’s lookalike modeling, so the size you see in Ads is rarely identical to the GA4 audience count. Cohort analysis is the sister technique β€” slice by acquisition cohort first, then layer demographics on top to spot retention differences across age groups.

Privacy: GDPR/CCPA Implications of Demographic Tracking

Demographic and interest data is classified as personal data under the EU’s General Data Protection Regulation because it relates to an identifiable user (via the first-party cookie + Google account binding) and falls under “profiling” rules. Three compliance points apply:

  • Consent first. Under GDPR Article 6(1)(a) and the ePrivacy Directive, you cannot fire the Signals beacon without prior, informed, unambiguous opt-in. Use Google Consent Mode v2 with ad_user_data=denied until the visitor accepts the cookie banner.
  • Disclosure in the privacy policy. List Google Signals explicitly as a third-party data processor, link to Google’s privacy policy, and explain what demographic categories you receive and how long you retain them.
  • CCPA “Do Not Sell or Share” right. The California Consumer Privacy Act treats demographic-driven audience sharing with Google Ads as a “sale or share” of personal information. Honor opt-out signals (Global Privacy Control header) by suppressing Signals collection for that user.

The IAB Europe Transparency & Consent Framework v2.2 codifies the consent strings most CMPs (Cookiebot, OneTrust, Iubenda) emit to GA4. Without a TCF-compliant CMP wired into Consent Mode, EU traffic produces almost no demographic data β€” which is the design intent of the regulation.

Demographics in BigQuery Export

The GA4 BigQuery export carries demographic data in two flavours, both inside the daily events_YYYYMMDD table:

  • user_properties β€” repeated record where Google Signals attributes appear as keyed entries (user_age_bracket, user_gender, user_interest)
  • geo β€” a fixed STRUCT with country, region, city, sub_continent, metro populated from IP geolocation

Two crucial caveats compared to the GA4 UI:

  1. No thresholding in BigQuery. Export rows include demographic values for every user where Signals provided a profile, including small-cohort rows the UI would have hidden. This makes BigQuery the only place to compute precise demographic share for niche segments.
  2. Modeled / inferred users may be absent. The UI sometimes blends modeled estimates into Signals-attributed rows for reporting; BigQuery export reflects only what was actually collected, so totals can diverge by 5-15%.

A typical BigQuery query to break sessions by age bracket looks like:

SELECT
  (SELECT value.string_value FROM UNNEST(user_properties)
     WHERE key = 'user_age_bracket') AS age,
  COUNT(DISTINCT user_pseudo_id) AS users
FROM `project.analytics_XXXXX.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20260101' AND '20260131'
GROUP BY age
ORDER BY users DESC;

Combine the result with conversion or revenue events from the same table for an unthresholded version of any GA4 demographics report.

Demographics Data Quality: Bias and Limitations

Demographic data in GA4 is a signal, not ground truth. Five biases regularly distort the picture:

  • Signed-in user bias. Only Google-signed-in users with Ads Personalization on contribute non-modeled demographic data. This subset over-represents Android users, Chrome users, and people who use Gmail β€” they are not a random sample of your visitors.
  • Threshold suppression. Sites with under ~5,000 monthly users routinely see “(other)” dominate the demographics report, making the visible numbers skew to whichever cohort is largest.
  • Modeled inference uncertainty. ML-inferred age/gender bands have a documented confidence interval β€” a “25-34 male” inference can be wrong 20-30% of the time at the individual user level. Aggregates are more reliable than individual labels.
  • EU consent gap. Post-2024 EU traffic with Consent Mode in default-deny mode produces zero Signals data, so any EU-heavy property reports demographics dominated by US/UK/non-EU users even when raw traffic is balanced.
  • Cross-device discontinuity. Without Signals, GA4 cannot stitch a user’s mobile and desktop sessions, so age/gender labels can flip between sessions for the same person. Cross-device tracking and cross-platform tracking require Signals to bridge the identity gap.

Treat demographics as directional. Use them for audience construction and to validate intuition about your user base β€” never as the sole basis for high-stakes targeting or product decisions. Pair every demographic insight with a behavioral confirmation (engagement time, conversion event) before acting.

Frequently Asked Questions

Why is my demographics report empty in GA4?

The two most common causes are Google Signals disabled (Admin β†’ Data collection β†’ toggle ON) or insufficient traffic to clear the data threshold. Check that Signals is enabled, wait 24-48 hours, and widen your date range to at least 28 days. EU-heavy properties with strict Consent Mode also produce empty reports until consent is granted.

What’s the difference between demographic data and user properties in GA4?

Demographics are predefined dimensions (age, gender, interests) populated automatically from Google Signals. User properties are custom user-scoped attributes you set yourself via gtag set user_properties or GTM, such as subscription_tier or account_type. Use demographics for ad-platform compatible audiences; use user properties for app-specific personalization.

How accurate is GA4 age and gender data?

For Google Signals-attributed users, age and gender match the Google account’s stated profile, which is reasonably accurate for adults but unreliable for shared family devices. ML-inferred values have 70-80% individual accuracy at best. Always treat aggregates (cohort-level shares) as more trustworthy than individual user labels.

Does enabling Google Signals require GDPR consent?

Yes. Google Signals processes personal data and triggers profiling under GDPR Article 4(4), so it requires affirmative opt-in consent under Article 6(1)(a). Wire Consent Mode v2 to your CMP so ad_user_data stays denied until the visitor accepts. Failing to do this is a known DPA enforcement target.

Can I see demographics for individual users?

No. GA4 deliberately suppresses any view that would resolve to a single user β€” both via the data threshold in standard reports and via the lack of a User Explorer demographic drill-down. The closest you can get is a small audience (e.g., “Female users 25-34 in Berlin who completed checkout”) and even then you only see aggregate counts, not individual identities.

Why do BigQuery and the GA4 UI show different demographic totals?

The UI applies thresholding (hides low-cardinality rows), blends modeled data into Signals attribution, and rounds for performance. BigQuery export is raw, unthresholded, and includes only actually-collected attributes. Differences of 5-15% on demographic dimensions are normal and expected. For exact numbers, trust BigQuery; for fast slicing, the UI is fine.

Do demographics work for app users the same as web users?

Functionally yes β€” the same age/gender/interest dimensions populate from Google Signals when the user is signed into a Google account on Android (or has signed into a Google service on iOS). Geo dimensions come from device location services rather than IP, which can be more precise. Threshold rules and consent requirements apply identically.

  • Device Category β€” the technographic counterpart to demographics (desktop / mobile / tablet)
  • Cross-Device Tracking β€” depends on Google Signals to stitch user identity
  • Cross-Platform Tracking β€” same Signals graph spans web and mobile app
  • Data Stream β€” where the GA4 property collects events that inherit demographic attributes
  • Cookie and First-Party Cookie β€” the storage layer for the GA4 client identifier
  • GDPR β€” the regulation that gates Signals consent in the EU
  • Cohort Analysis and Cohort β€” slice retention curves before layering demographics
  • Event β€” every event inherits the user’s demographic profile at hit time
  • BigQuery β€” the only unthresholded source for demographic analysis

Tom Martin
Written by

Tom Martin

Web analytics specialist with deep expertise in Google Analytics, Tag Manager, and e-commerce tracking. Helping businesses understand their data without the noise β€” practical guides, honest reviews, and real-world implementation experience.