
Google and Facebook. Up a tree.
K.I.S.S.I.N.G.
Remember that couple in school who hated each other right up until the minute they fell in love?
Well… it’s not quite love. But Google and Meta are suddenly getting along better than anyone expected.
And that’s good news because you can now import Meta Ads cost data into GA4.
It means you can see your Facebook and Instagram spend right next to your website results. All in one place.
Before this, comparing Meta Ads to Google Analytics was like comparing apples to oranges. Neither one ever matched.
Here’s how to fix that.
Why Facebook Ads and GA4 Numbers Never Match
If you’ve ever looked at your Meta/Facebook Ads results and then checked your Google Analytics 4 report, you’ll know the numbers rarely line up.
Meta tells you one thing.
GA4 tells you another.
And you’re stuck wondering which one to trust.
The answer is simple.
Neither is 100% right.
And that’s normal.
Here’s why:
- Meta counts a conversion if someone sees your ad. They don’t have to click.
- GA4 only sees what gets tracked. Ad blockers, cookie banners and privacy settings all hide some data.
- Each system uses different attribution rules. They don’t speak the same language.
So what do we do?
Pick one tool to compare everything in.
- Look at trends, not exact numbers.
- And bring your Meta Ads cost data into GA4 so everything is measured the same way.
- To get that working, you need to set your UTMs up correctly.
What You Need Before You Start (UTM Setup for Facebook Ads)
Before GA4 can match your Meta Ads cost data to your campaigns, your tracking links need to follow a consistent structure.
Here’s the one I recommend.
Start with your link:
https://whatever-your-link-is.com/
Then add this query string:
?utm_medium=paid&utm_source={{site_source_name}}&utm_campaign=whatever+you+want
Put that together and you get:
https://whatever-your-link-is.com/?utm_medium=paid&utm_source={{site_source_name}}&utm_campaign=whatever+you+want
Replace:
- whatever-your-link-is.com with your actual link
- whatever+you+want with something meaningful for your campaign
And that dynamic bit — {{site_source_name}} — is where Meta automatically inserts the placement.
Here’s what GA4 expects:
- Facebook → fb
- Instagram → ig
- Audience Network → an
- Messenger → msg
I’ll show you where to add these later in the tutorial.
If you want to learn UTMs properly, I have a short course that walks you through it step by step.
Once your links follow this structure, GA4 can connect your Meta spend with your site data.
Now you’re ready.
How to Import Meta Ads Cost Data into GA4 (Step-by-Step Tutorial)
Here’s the full setup.
Follow it once, and GA4 will start pulling your spend directly from Meta.
Open the GA4 Admin Area
From your GA4 dashboard, click the Admin button (bottom left).

Go to Data Import
Under Data collection and modification, choose Data import.

Create a New Data Source
Click the blue Create data source button.

Give it a name such as Meta.
Choose “Campaign Data”
Select Campaign data as your import type.

Select Meta as the Provider
Scroll down and choose Meta from the dropdown.
Click Next.

Connect Your Meta Ads Account
You’ll be prompted to log in.
Pick the ad account you want to connect.
Click Next.
Map Your UTM Parameters Correctly
This is where your UTM structure matters.
GA4 asks what Meta will send in your utm_source field.
Enter:
- fb
- ig
- an
- msg
Leave Threads blank for now as we don’t yet know what this will appear as.
For utm_medium enter:
- paid

Click Next.
Review and Finish
Check the summary screen.
If everything looks right, click Finish.
You’re all done.
Meta will now start sending cost data to GA4.
Where to See Your Meta Cost Data in GA4
Once the connection is active, you’ll see your Meta spend inside GA4.
You’ll find it in:
- Reports → Advertising → Non-Google campaigns
- Any custom report you create that includes your cost data.
Everything appears using the same attribution model, so comparisons are much clearer than jumping between Ads Manager and GA4.
How to Use This New Data (Next Steps for Better Reporting)
Now that your Meta Ads cost data appears in GA4, here’s what you can do with it:
- Compare channels using the same rules
- Look at cost per session, cost per engaged session, or cost per conversion
- Track trends over time
- See whether Meta is helping other channels convert
- Make quicker decisions without switching dashboards
This is where GA4 becomes useful rather than confusing.
FAQ: Common Questions About Meta Ads and GA4
Why don’t Facebook Ads and GA4 numbers match?
They use different attribution rules and GA4 can only track what browser privacy allows.
Do I need UTMs for Meta cost data import?
Yes. Without consistent UTMs, GA4 won’t match spend to results.
Does this work for Instagram too?
Yes. GA4 treats Instagram as “ig” in your UTM source.
How long does cost data take to appear?
It can take as long as 24 hours to 48 hours.
Conclusion
By importing Meta Ads cost data into GA4, you finally get one clear place to compare what you spend with what you get back. No more guessing. No more mismatched numbers. Just cleaner reporting.
And may this strange new friendship between Google and Meta continue to bloom.
Get the PDF Tutorial
Want a PDF version of this guide?
If you’d like to save the steps so you can reference them later, you can download the full tutorial.
Grab it below
(I’ll send the PDF straight to your inbox.)
No time to read it now?
Download the full printable and saveable tutorial here








