Attribution
AttributionReporting

GA4 Now Shows Your Meta and TikTok Ad Costs — Here's What to Do With That Data

Google Analytics 4 can now automatically pull your Meta and TikTok ad spend into one place. Here's what the feature actually does, how to set it up, and how to use it to make smarter budget decisions.

Hassan Muhammad Younas··9 min read

You've been running ads on Meta and TikTok. You've been checking GA4. And you've been manually reconciling two completely different sets of numbers in a spreadsheet every week.

That's over — or at least it can be.

GA4 added automated cost data import for non-Google ad platforms. Which means your Meta and TikTok ad spend, clicks, and impressions can now flow directly into Google Analytics alongside your Google Ads data. One place. One view. No spreadsheet.

Here's exactly what the feature does, how to turn it on, and — more importantly — how to actually use the data to make decisions.


What Is GA4 Cost Data Import?

GA4 has always shown Google Ads data natively — the two products share the same Google account infrastructure. But if you were running Meta, TikTok, Pinterest, or any other paid channel, you had two options: manually upload CSV cost files every week, or pay for a third-party connector like Supermetrics.

The new Campaign Data Import feature (found in Admin > Data collection and modification > Data Import) adds a third option: automated, authenticated syncing directly from your ad accounts.

Once connected, GA4 pulls your ad spend, clicks, and impressions on an ongoing basis and stitches them together with the session and conversion data it already has. The result: you can calculate ROAS, CPA, and cost per click using GA4's own numbers — not what Meta tells you.

This matters because Meta and GA4 will almost never agree on conversions. More on why that happens in a moment.


What Metrics Actually Come In

The import brings three raw data points per campaign per day:

  • Cost (total ad spend)
  • Clicks (ad clicks reported by the platform)
  • Impressions (ad impressions)

GA4 then derives additional metrics from these, combined with its own session and purchase data:

MetricHow It's Calculated
Cost per click (CPC)Cost ÷ Clicks (platform-reported)
Cost per sessionCost ÷ GA4 sessions matching your UTMs
Cost per conversionCost ÷ GA4 conversions
ROASGA4 revenue ÷ Cost
CTRClicks ÷ Impressions

What doesn't come in: creative performance, audience data, platform-reported conversions, view-through attribution. You're getting spend and reach data only — conversion measurement stays entirely within GA4.


How to Set It Up for Meta Ads

Before you start, check one thing: open your Meta Ads Manager and find any active campaign. Look at the Tracking section and read the URL parameters. You need to know exactly what values you're using for utm_source and utm_medium. If you don't have consistent UTM tagging across all Meta campaigns, fix that first — the entire import depends on it.

Step-by-step setup:

  1. In GA4, go to Admin (bottom left gear icon)
  2. Under Data collection and modification, click Data Import
  3. Click Create data source
  4. Name it (e.g., "Meta Ads") and select type Campaign data
  5. Select Meta as the source and click Connect
  6. Complete the OAuth flow to connect your Meta Business account
  7. Select the specific Business Account you want to import from
  8. Click Save, then configure the UTM mappings:
    • Enter your utm_source value(s) — typically facebook, instagram, or both
    • Enter your utm_medium value — typically cpc, paid, or paidsocial
  9. Save and finish

Timeline: GA4 will backfill up to 24 months of historical cost data. New data syncs automatically. It can take up to 24 hours before data appears in reports.

For TikTok: TikTok automated import follows the same pattern — Data Import > Campaign data > TikTok as source. The UTM mapping step is identical. Ensure all TikTok campaigns are tagged with utm_source=tiktok (or tiktok_ads) and a consistent utm_medium.

If your campaigns aren't consistently UTM-tagged — which is common with TikTok's auto-generated tracking — the manual CSV import option (same Admin panel) lets you upload a spreadsheet export from TikTok Ads Manager instead.


Where to Find the Data After Import

Once data is flowing, look in two places:

Advertising > All Channels: This is the cross-channel overview. You'll see all your traffic sources — Google Ads, Meta, TikTok, organic, email — with cost, revenue, and ROAS side by side. This is the report most store owners have never had without a paid tool.

Advertising > Campaign performance: Breaks down by individual campaign. Useful for comparing specific Meta campaigns against specific Google campaigns on equal terms.

Traffic Acquisition (with Session source/medium as dimension): Your cost data populates here too, when filtered down to specific UTM values. Pair it with engagement metrics (bounce rate, average session duration, pages per session) to see not just what traffic costs but whether that traffic is worth paying for.

If you use Looker Studio, connecting it to your GA4 property will expose all imported cost metrics in custom dashboards.


The Numbers Won't Match Meta's Dashboard — Here's Why

This is the most important thing to understand before you start comparing reports.

Meta Ads Manager will show you more conversions than GA4. Always. By 20–60% on average for Shopify stores.

This is not a bug. It's not a tracking problem. It's a fundamental difference in how the two systems count conversions:

Meta's model: Counts anyone who saw or clicked your ad and then purchased — using a 7-day click, 1-day view window by default. If someone saw your ad on Monday and bought on Friday after coming back through organic search, Meta counts that. Their pixel also catches conversions that happen after the GA4 session expires.

GA4's model: Counts conversions based on the session. The purchase has to happen in the same session where the UTM-tagged traffic arrived, or within GA4's attribution window (30 days for data-driven attribution). If someone came from Meta, left, came back via Google, and then purchased — GA4 attributes that to Google.

Neither is wrong. They're measuring different things.

What the GA4 cost data actually tells you: How your campaigns perform from a session-quality and revenue perspective, using your own first-party data and a consistent attribution methodology across all channels. That cross-channel consistency — using the same rules for Meta, TikTok, Google, and email — is the real value.

For more on why your attribution numbers often don't add up, read our guide on why Shopify traffic shows as Direct in Google Analytics.


Why This Matters More Than Another Dashboard

Every ad platform has its own analytics. Meta shows you Meta performance. TikTok shows you TikTok performance. Google shows you Google performance. And each platform, naturally, presents its own numbers in the most favorable light possible.

The problem is that your customers don't care which platform gets credit. They saw your ad somewhere, came to your store, maybe left, came back, and bought. Each platform claims full credit for that purchase.

GA4 cost data doesn't solve attribution perfectly — nothing does — but it gives you a neutral view built on your own website's session data, using the same methodology for every channel. When your GA4 ROAS for Meta is 1.6x and for Google Shopping it's 3.8x, that comparison is meaningful precisely because both numbers were calculated the same way.

That's something you can actually make budget decisions from.

For context on how to read cross-channel performance data inside GA4, see our breakdown of how to read the Traffic Acquisition report in Google Analytics.


Common Setup Mistakes to Avoid

Inconsistent UTMs are the #1 failure point. If your Meta campaigns use utm_source=Facebook in some ads and utm_source=facebook in others (case matters), or if some campaigns have no UTM tracking at all, the cost data won't attach correctly. Audit your UTM setup before connecting.

Don't overlap with existing manual imports. If you've been uploading Meta cost CSVs manually, you must delete those for any date ranges before the automated import takes over. Duplicate imports double-count your spend and make ROAS look artificially low.

Don't expect real-time data. There's up to a 24-hour delay. Use GA4 cost data for strategic decisions and weekly performance reviews — not for intraday campaign optimization.

One Business Account per data source. If you manage multiple Meta Business Accounts (common for agencies), you need a separate data source in GA4 for each.


What to Do With the Data Once It's Working

The immediate use case: open Advertising > All Channels and look at ROAS across all your paid channels using a single consistent calculation. That number alone is worth the setup time.

The deeper use case: compare cost per session and cost per conversion across channels, then layer in engagement quality from Traffic Acquisition — bounce rate, pages per session, time on site. A channel with high ROAS but terrible engagement metrics may be winning on attribution timing rather than actual customer quality. A channel with lower ROAS but excellent engagement may be building more durable customer relationships.

The decisions that come from that analysis — reallocating budget, pausing underperforming campaigns, scaling what actually works — are the decisions that raw platform dashboards can never give you, because they each show you only their own slice of the picture.

Raw data still needs interpretation. Knowing your Meta ROAS in GA4 is 1.4x tells you the number — it doesn't tell you whether that's good for your category, what's pulling it down, or what to do next. That's exactly what Wardly handles: connecting to your GA4 and surfacing ready-made insights like "Your Meta ROAS dropped 22% this week — here's why and what to look at" directly in your dashboard, with no number-crunching on your end.


Wardly connects to your Google Analytics and gives you an interactive dashboard with ready-made reports — what went wrong, why it happened, and how to fix it.

Wardly

Your Google Analytics Data — Ready-Made Reports, No Digging Required

Wardly connects to your Google Analytics and surfaces what went wrong, why it happened, and how to fix it — all in one interactive dashboard.