GA4 Shows 8,000 Users — Google Ads Shows Zero. Here’s the Threshold.

May 4, 2026
by Cherry Rose

GA4 audiences below approximately 100 active users in the last 30 days won’t populate in Google Ads remarketing for the Display Network. The Search, YouTube and Gmail threshold is 1,000. Most SMB WooCommerce stores never reach either line for the narrow behavioural audiences that make remarketing worthwhile (viewed-product-X-but-didn’t-buy, cart abandoners on a single SKU, Tuesday-evening visitors). The audience reads thousands in GA4 because GA4 counts everyone who fits the rule. Google Ads reads zero because Google Ads filters for active, eligible users in the last 30 days — a much smaller set.

The Threshold Mechanic Most Stores Never Hear About

The number is published. It just isn’t surfaced anywhere you’d notice during audience creation.

Google Ads requires roughly 100 active users in the last 30 days before a remarketing audience will serve on the Display Network. The threshold rises to 1,000 active users for Search, YouTube and Gmail. Active is the load-bearing word — the count isn’t the total list size, it’s how many of those users have been active across Google’s properties recently enough for Google to consider them eligible. A list of 8,000 GA4 users built over six months can have only 60 of them eligible by Google Ads’ active-user definition.

This is where the dashboard gap originates. GA4 reports the rule’s match count. Google Ads reports the eligibility-filtered subset. The two numbers are measuring different things.

Why Most WooCommerce Stores Sit Below the Line

Run the volume math. A store doing $30K-$50K monthly revenue typically gets 8,000-15,000 monthly sessions. After product page filtering, post-view filtering, exclusion of converters, and the 30-day active-user cut, a “viewed Product X but didn’t buy” audience routinely lands at 30-80 active users. Below 100. Audience never populates for Display.

The narrower the behavioural definition, the worse the math gets. Stores that follow remarketing best practice — segment narrowly, exclude converters, focus high-intent — are the stores most likely to fall below the line. The audiences that do populate are usually the broad ones (all visitors, all product viewers) that have the lowest signal density and the worst remarketing ROAS.

That’s the structural trap. Narrow audiences that are signal-rich are below threshold. Broad audiences that clear threshold are signal-poor. The advice “just broaden your audience” defeats the purpose of building behavioural audiences in the first place.

You may be interested in: GA4 Predictive Audiences Need 1,000 Buyers in 28 Days — Which Means 90% of WooCommerce Stores Are Locked Out.

Three Other Reasons Audiences Show Empty

The threshold is the dominant cause for SMB stores, but three other mechanics will produce the same “thousands in GA4 / zero in Google Ads” symptom and they are easier to fix.

Google Signals Is Off

Google Signals activates cross-device, cross-session tracking using signed-in Google account data. With it on, GA4 reports one audience size and Google Ads sees a population close to it. Disable Google Signals and the same audience can show as empty in Google Ads even when GA4 still reports thousands of users — Google Ads is filtering on the cross-device-eligible subset and the cookied-browser-only subset doesn’t make the cut. Check GA4 Admin → Data Settings → Data Collection. If Google Signals is off and you have user consent for it, turning it back on is usually the fastest fix.

Consent Mode v2 Has Shrunk the Eligible Pool

Stores in the EEA running Consent Mode v2 send modeled data for users who reject cookies, and modeled users don’t enter remarketing audiences. EU consent rejection rates run 40-70% in most studies. That’s potentially 40-70% of your EU traffic missing from the audience pool before the threshold check even runs. A store that looks healthy on aggregate GA4 numbers can be sub-threshold on the EU portion of the same audience.

The 540-Day Inactivity Auto-Close

Google Ads automatically sets audience lists to Closed status if they’re not used in targeting for 540 consecutive days. The list stops accumulating users. This catches stores that built a remarketing list in 2023, never actually attached it to a campaign, and now wonder why the list shows zero in 2026. Re-activating a Closed list takes a fresh population — the historical users do not return.

Stack a 48-72 hour propagation delay on top for newly created audiences and the troubleshooting tree gets thick fast.

The Architectural Fix: Customer Match

Diagnostics will only get you so far. If your store sits structurally below the active-user threshold on the audiences that matter, no Google Signals toggle changes that.

The fix is to bypass the GA4 audience export entirely. Google Ads Customer Match takes a hashed list of customer emails and phones, matches them to logged-in Google accounts, and serves remarketing without the active-user threshold or the Google Signals dependency. The match-rate cut-off is different and considerably lower for SMB volumes. The audience populates as fast as the upload completes — typically same-day, not 48-72 hours.

For a WooCommerce store, the practical Customer Match audiences are also more directly tied to revenue: past customers (the highest-converting remarketing pool you have), cart abandoners with email, high-LTV cohorts, recent buyers (for cross-sell and upsell), and lapsed buyers (for win-back). All of those are queryable straight from your WooCommerce database. None of them depend on whether 100 active users browsed the site in the last 30 days.

You may be interested in: WooCommerce to Google Ads Customer Match: The Smart Bidding Audience Signal Most Stores Never Send.

Here’s How You Actually Do This

Customer Match is straightforward when the data feed runs server-side. Transmute Engine™ is a dedicated Node.js server that runs first-party on your subdomain (e.g. data.yourstore.com) — not a WordPress plugin. The inPIPE plugin captures WooCommerce customer events and sends them via authenticated API to your Transmute Engine server, which hashes the email/phone (SHA256) per Google’s specification and pushes the segmented Customer Match list to Google Ads on a schedule. One pipeline, threshold-free, hashed before it leaves your server.

Key Takeaways

  • The active-user threshold is the dominant cause of “GA4 shows users / Google Ads shows zero” for SMB WooCommerce stores. 100 for Display, 1,000 for Search/YouTube/Gmail.
  • Narrow behavioural audiences fall below the line first. The audiences with the highest signal density are the audiences with the smallest active-user count.
  • Google Signals being off, Consent Mode v2 shrinkage, and 540-day auto-close are the three other common causes — easier to fix but lower-frequency than the threshold itself.
  • Broadening the audience defeats the purpose. The fix isn’t a wider rule, it’s a different audience source.
  • Customer Match bypasses the threshold entirely — server-side first-party email lists built from your WooCommerce database have no active-user minimum and populate same-day.

Frequently Asked Questions

What is the minimum audience size for Google Ads remarketing?

Approximately 100 active users in the last 30 days for the Display Network, and 1,000 for Search, YouTube and Gmail. The numbers are Google’s published thresholds. Below those lines a list is technically active in your account but won’t actually serve impressions, which is why the audience can show thousands of users in GA4 and zero (or empty) in Google Ads. Active is the keyword — total list size doesn’t help if recent activity is below the line.

Does Google Signals affect my GA4 audience size in Google Ads?

Yes — directly. Google Signals is the GA4 setting that activates cross-device, cross-session tracking using signed-in Google account data. With it on, GA4 reports one audience size and Google Ads sees a population close to it. Disable Google Signals and the same audience can show as empty in Google Ads even when GA4 still reports thousands of users — Google Ads is filtering on the cross-device-eligible subset and the cookied-browser-only subset doesn’t make the cut.

How do I make my GA4 audience populate in Google Ads?

First, confirm the audience is above the threshold (100 Display / 1,000 Search). Second, confirm Google Signals is on in GA4 admin. Third, give it 48-72 hours after the link is established. If the audience still won’t populate, the cause is structural — your store’s traffic and consent rates are putting the active-user count below Google’s line. The architectural fix at that point is Customer Match, which uses your hashed customer email list and has no active-user threshold.

What is Customer Match and how does it bypass the threshold?

Customer Match is Google Ads’ first-party audience type — you upload hashed customer emails and phones from your WooCommerce database, and Google matches them to logged-in Google accounts. It doesn’t use the GA4 audience export pipeline at all, so the 100/1,000 active-user threshold doesn’t apply. The match-rate threshold is different and lower, and the audience populates as fast as the upload completes. For SMB WooCommerce stores, this is the difference between a remarketing campaign that runs and one that sits empty.

Why does my Display campaign show as not serving even though my audience exists?

Three common causes, in order of likelihood for SMB stores: the audience is below the 100-active-user threshold (most common), Google Signals is off in GA4 (second), or the audience list has been Closed because it wasn’t used in targeting for 540 consecutive days (third). The Audience Manager in Google Ads will show the size as empty for the first two and as Closed for the third. Re-activating a Closed list takes a fresh recipient match — the historical users do not return.

Audit your existing GA4 audiences in Google Ads Audience Manager — list each one, note the GA4 size against the Google Ads size, flag any showing zero or significantly smaller. Talk to us about a server-side Customer Match pipeline if your narrow audiences keep falling below threshold.

Share this post
Related posts