Landing Page URL Builder

Facebook Ads + GA4

Facebook clicks show as direct in GA4?

If Meta reports clicks but GA4 shows direct traffic, isolate one ad URL first. The issue is usually in the landing URL, redirect path, GA4 tag, consent state, or checkout handoff before it is a full attribution problem.

Facebook ad click moving through UTM parameters, redirects, and GA4 Realtime checks

Direct traffic

GA4 sees the visit, but source or medium does not stay as Meta, Facebook, paid social, or the campaign label you expected.

First suspect

The final landing page URL lost UTMs through a redirect, short link, app link, locale rule, or duplicated query string.

Second suspect

If no visit appears at all, check GA4 tag firing, property, consent state, blockers, and the exact page template.

Use one control URL

Start with a static URL. Do not debug Meta macros until one plain click appears correctly in GA4 Realtime.

https://example.com/products/sample?utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_sale&utm_content=video_ad_01

Debugging sequence

  1. Copy the exact destination URL from the Facebook or Instagram ad setup.
  2. Open it in a clean browser session and confirm the landing page loads.
  3. Check whether utm_source, utm_medium, and utm_campaign remain in the address bar after redirects.
  4. Open GA4 Realtime, click the same URL again, and look for source, medium, campaign, page path, and event sequence.
  5. If GA4 shows direct, inspect redirect rules, short links, app links, duplicate UTMs, and tag timing.
  6. If the landing visit works but purchase source is direct, move to checkout and purchase event QA.

Where direct traffic can come from

Layer Symptom Next check
Ad URL No UTM source, medium, or campaign in the final destination. Build one static Meta URL and retest.
Redirect UTMs are present before click but gone after the page loads. Check short links, app redirects, trailing slash rules, and locale redirects.
GA4 tag The page loads, but GA4 sees no campaign or no visit. Check property, web stream, duplicate tags, consent, and blockers.
Checkout Landing visit is correct, but order or purchase source looks direct. Check checkout domain, payment return, purchase event, and session continuity.

What to send for a cleanup audit

A useful first review does not need your Facebook password, Shopify admin login, GA4 login, or browser cookies.

Facebook or Meta final URL:
Page that loads after clicking:
What GA4 Realtime shows:
Does the address bar still contain UTMs:
Store platform:
Does the issue happen before checkout or after purchase:
Recent redirect, theme, consent, app, or tracking changes:

Facebook FAQ

Questions before you change every ad

Why do Facebook clicks show as direct in GA4?

Facebook clicks can show as direct when the landing URL has no UTMs, a redirect removes the query string, the GA4 tag fires after parameters disappear, consent blocks analytics storage, or the user returns later from a direct visit before purchase.

Is this a Meta Ads problem or a GA4 problem?

Test one static tagged Facebook URL in GA4 Realtime. If the visit appears as direct, inspect UTMs and redirects. If no visit appears, inspect the GA4 tag, property, consent state, and landing page template.

What should I send for a Facebook GA4 tracking audit?

Send the exact ad landing page URL, the page that loads after the click, what GA4 Realtime shows, whether the address bar still contains UTMs, your store platform, and any recent redirect, theme, consent, or tracking changes.

Send one Facebook URL before spending more

One real URL plus the GA4 Realtime symptom is enough to separate a URL problem from a tag, redirect, or checkout problem.

Request $99 audit