Why does GA4 say my LinkedIn and Meta campaigns are missing cost data, and how do I import it?
TofuAnswer by the Tofu team · checked
Because GA4 doesn't pull LinkedIn or Meta costs on its own. Its campaign data import validation report, added August 10, 2026, lists your UTM-tagged paid campaigns from other platforms and marks those with no imported cost, clicks or impressions as "No campaign data." To fix it, import the costs. Meta has a direct connector in GA4's Data import settings. LinkedIn doesn't, so you upload a daily Campaign Manager export as a CSV or through Google Sheets, BigQuery or SFTP. Since July 28, 2026, every import that includes cost needs a currency.
Ask Tofu next
Pick a question and Tofu Ads Agent answers it in chat.
- Set up a daily LinkedIn cost import into GA4 from Google Sheets
- Which UTM values should my LinkedIn and Meta ads use so GA4 can match their costs?
- Which of my LinkedIn campaigns are missing UTM parameters?
- Can I import Microsoft Ads costs into GA4 too?
- Compare cost per lead for LinkedIn and Meta once GA4 has their costs
As of November 2026.
What is the campaign data import validation report?
It's a GA4 report Google added on August 10, 2026. Google says it "helps you pinpoint campaigns that lack useful campaign performance data, like cost, clicks, and impressions." Open Reports, then under Data Import select Campaign data import validation report. If it isn't in your menu, an Editor or higher can add it back.
The report is session scoped. By default it shows only paid manual campaigns, "excluding all google sources and search mediums." Remove that filter to see all traffic. Each row gets an import join status:
| Status | What it means |
|---|---|
| Joined | Your imported campaign data matched GA4 sessions |
| No campaign data | Nothing was imported for this row, or the import didn't join |
| No Analytics data | Imported rows matched no GA4 sessions, so GA4 reports them on their own |
It also shows a coverage rate: the share of rows with GA4 data that have joined campaign data. This is a different warning from GA4's "missing URL parameters" diagnostic for Google Ads clicks, which this page covers.
Why do my LinkedIn and Meta campaigns show "No campaign data"?
Usually for one of these reasons:
- You haven't imported their costs. GA4 only shows cost for LinkedIn and Meta after a campaign data import.
- The import didn't join. GA4 joins imported rows to sessions on utm_source, utm_medium and date, and the values must match exactly. Google's own example: "Facebook" and "facebook" aren't exact matches.
- One platform uses several values. If Meta traffic arrives as fb/cpc, Meta/cpc and facebook/paid, Google says the automated connectors can't handle it. Use a CSV, Google Sheets or BigQuery import instead, or clean up your tags.
- The import is new. Data can take up to 24 hours to show in reports.
- You typed a placeholder into the import. GA4's import settings don't accept dynamic values like {{campaign.name}}. The ad platform has to fill them in on the click URL.
How do I import Meta costs?
GA4 has a direct Meta connector. You need at least the Editor role in GA4, and a Meta business and ad account.
- In Admin, under Data collection and modification, click Data import.
- Click Create import source, name it, select Campaign data, choose Meta as the import source and click Next.
- Click Connect and sign in to Meta.
- Select the Meta business and ad account. Enter the utm_source values your ads use in the Facebook, Instagram, Audience Network, Messenger and Threads source fields (the same value in all five if you use one), then your utm_medium.
- Review the fields and click Finish.
The connector tries to pull 24 months of history, so delete any older Meta cost imports first to avoid duplicates. Imports take up to 30 minutes and up to 24 hours to show. You can't change the ad account, source or medium later; you delete the connector and create a new one. Google says it converts Meta costs to keep currencies aligned, even if your property currency changes. To tag Meta ads properly first, see how to add UTM parameters to Meta ads.
How do I import LinkedIn costs?
GA4's direct connectors are Meta, Pinterest, Reddit, Snap and TikTok. LinkedIn isn't one, and Google's Sheets add-on only connects Meta and TikTok. So you export and upload:
- Export daily data from Campaign Manager. LinkedIn's steps: click Advertise, confirm the Time range, click Export, choose a Report Type, set Time breakdown to Daily, then click Export. Google suggests 12 months, with date, campaign name or ID, amount spent, clicks and impressions.
- Shape the file for GA4. Required columns: utm_source, utm_medium and date (YYYY-MM-DD). Recommended: utm_id and utm_campaign. Add cost, clicks or impressions (at least one), and a currency code if you include cost. Every row needs a source and medium, so fill in the exact values your LinkedIn ads use, such as linkedin and paid.
- Upload it. In Data import, create a Campaign data import source and pick CSV, or connect Google Sheets, BigQuery, SFTP, Amazon S3 or another supported source. Map the fields and click Finish.
Connected sources can refresh daily. Google recommends uploading fresh data for the same campaigns every day, because ad costs change as campaigns run. GA4 uses the latest values. With Google Sheets, only the first sheet is read, and you need Editor access to the file. If you'd rather not export by hand, a reporting connector can write LinkedIn spend into Sheets or BigQuery on a schedule; see cheaper alternatives to Supermetrics.
Why does GA4 now ask for a currency?
Since July 28, 2026, campaign data import requires a currency whenever you upload cost. Google says this keeps reporting accurate "even if you decide to make changes to your property's currency settings." You can set it two ways when you map fields:
- Map from data source: pick a column with an ISO 4217 code, such as USD or EUR.
- Hardcode currency: pick Static value and choose one currency for the whole import.
Imports created before the change keep reporting as if their cost is in your property's currency. For a LinkedIn file, use the currency your LinkedIn ad account bills in.
How should I tag LinkedIn and Meta ads so costs join?
- One utm_source and one utm_medium per platform. For Meta, Google also accepts one source per Meta publisher platform, such as Facebook and Instagram, as long as the connector fields match.
- Add utm_id and utm_campaign so costs split by campaign. The import's campaign ID and name must match what the URL carries.
- On LinkedIn, use dynamic parameters. LinkedIn lets you add dynamic URL parameters at account or campaign level. Dynamic keys go in capitals inside double curly brackets, such as utm_id={{CAMPAIGN_ID}} and utm_campaign={{CAMPAIGN_NAME}}. LinkedIn says these won't replace parameters already in an ad's destination URL, so check older ads.
- Keep names consistent. Google warns that "SpringSale" and "Spring_Sale" show up as two campaigns.
Where do imported costs show up, and what are the limits?
Google says imported data appears in Reports > Acquisition > Non Google campaign, and in the Advertising workspace under Planning > All channels. The data import details page shows "% imported" and "Match rate" for each import.
Cost data joins at report time. That means you can't use it in audiences or in Exploration segments, and deleting the import source removes it from reports.
| Limit | Value |
|---|---|
| Size of one import source | 1 GB |
| Uploads | 120 per property per day |
| Campaign data storage | 1 GB across all import sources |
| History a direct connector pulls | 24 months |
| History the match rate counts | The most recent 2 years |
Will this make GA4 match LinkedIn and Meta?
For cost, mostly yes, because GA4 shows the cost you import even when some rows don't join. Clicks, sessions and conversions will still differ, since each platform counts them its own way. For the Meta side of that gap, see why Meta Ads Manager and GA4 results don't match.
Sources (10)
- What's new in Google Analytics (Analytics Help), checked November 4, 2026
- Campaign data import validation report (Analytics Help), checked November 4, 2026
- Import campaign data (Analytics Help), checked November 4, 2026
- Connect Meta to Google Analytics (Analytics Help), checked November 4, 2026
- Gather campaign data from your advertising platforms to import into Google Analytics (Analytics Help), checked November 4, 2026
- About the Campaign Data Import for Google Sheets add-on (Analytics Help), checked November 4, 2026
- Connect an import source (Analytics Help), checked November 4, 2026
- About Data Import (Analytics Help), checked November 4, 2026
- Export Reports in Campaign Manager (LinkedIn Help), checked November 4, 2026
- URL tracking parameters in Campaign Manager (LinkedIn Help), checked November 4, 2026