How do I track Facebook ads in GA4?
Tag every ad's URL with UTM parameters, and GA4 will attribute the traffic and its conversions by source, medium and campaign. Use Meta's dynamic tokens in the ad's URL parameters field, for example utm_source=facebook, utm_medium=paid, utm_campaign={{campaign.name}}, utm_content={{ad.name}}, so tags stay accurate automatically. Expect GA4 to report fewer conversions than Meta does; they measure with different attribution models and neither is simply wrong.
Last updated 2026-08-11
The UTM setup that makes GA4 work
GA4 classifies sessions from the UTM parameters on the landing URL, so untagged Meta traffic scatters into generic referral and direct buckets where it cannot be analysed. Fix source and medium as constants, lowercase, and map the variable parameters onto Meta's dynamic tokens: utm_campaign={{campaign.name}}, utm_term={{adset.name}}, utm_content={{ad.name}}. Tokens resolve at delivery, so renames and duplications never desynchronise the tags, and combined with a token-based naming convention they carry your whole structure into GA4's dimensions. Enter the string in the ad's dedicated URL parameters field rather than appending it to the link by hand, then click a real ad preview and verify the landing URL arrived intact.
Consistency is the entire game
GA4 groups by exact string, so facebook and Facebook are different sources, paid and cpc are different mediums, and every variant fragments your reporting into rows that must be mentally re-joined forever. Write the scheme down once, apply it identically on every ad, and audit periodically for drift, especially after duplications, since a duplicated ad silently carries its source ad's parameters into a new campaign. Also match GA4's channel-grouping expectations when choosing medium values so paid social lands in the right default channel group. At batch scale the reliable version is templated: a launcher applying one UTM template across every ad in a batch removes the per-ad chance to typo the scheme.
Why GA4 and Meta will never agree
The two systems answer different questions. Meta credits itself for conversions its models attribute to ad exposure, including view-through conversions where no click occurred, within its configured windows. GA4 credits the traffic source of the session, typically on a last-click basis across all channels. A user who saw an ad, then bought from a branded search tomorrow, is Meta's conversion and GA4's organic search conversion, and both descriptions are internally consistent. Add iOS signal loss, ad blockers, cookie restrictions and modelled data on both sides, and a persistent gap, with GA4 lower, is the expected steady state, not a bug to eliminate.
Use each number for what it is good at
Meta's reporting sees its own delivery in full detail, making it the right instrument for relative decisions inside the platform: which creative, which ad set, which audience wins against which. GA4 sees every channel on one consistent yardstick, making it the instrument for cross-channel comparison and for what happens after the click: engagement, funnel progression, revenue by source. The mistake is promoting either to sole arbiter, cutting spend because GA4 undercounts Meta against a channel it flatters, or trusting platform-attributed revenue as incremental. Fix the model per question: in-platform choices from Meta, budget allocation from GA4 plus blended economics, and total spend sanity-checked against actual revenue.
Close the loop on the site side
UTMs label the visit; GA4 still needs conversions defined to attribute anything to it. Mark the events that matter as key events, and for ecommerce implement purchase events with values so revenue by source works. Check cross-domain tracking if checkout hops domains, or sessions restart mid-funnel and paid traffic loses its attribution at the worst moment. Watch for landing pages or redirects that strip query parameters, a quiet UTM killer. And confirm the events themselves fire reliably, since an attribution question cannot be debugged on top of a broken measurement layer. Most Meta-versus-GA4 confusion dissolves into one of these plumbing faults on inspection.
A workable weekly reading
In GA4, session source and medium filtered to your Meta values shows paid social sessions, engagement and key events; campaign, term and content dimensions then reproduce your campaign, ad set and ad structure, which is where token-resolved names pay off. Read trends and comparisons rather than absolutes: whether Meta-sourced conversion rate is stable, which campaigns bring engaged sessions versus bounces, how paid social's assisted role looks in the advertising reports. Keep a small set of saved explorations rather than rebuilding views ad hoc, and resist re-litigating the Meta gap weekly; it will be there, it will be roughly proportional, and its stability is itself the health signal.
GA4's interface, channel definitions and attribution settings change over time, and privacy features on both sides keep shifting what is measurable. The durable parts are the UTM discipline and the use-each-tool-for-its-question posture; specific report paths may not match your GA4 this quarter.