Clarvivo

Free tool by Clarvivo · no login

Find launched campaigns that never appear in GA4

Upload a campaign list and a matching GA4 Session campaign export. We identify names with no corresponding GA4 traffic, without sending either file to an ad platform.

Campaign list and GA4 acquisition export

Use the same date range. We compare campaign names from your launch or ad export with GA4 Session campaign rows.

This tool answers: Which launched campaigns are missing entirely from GA4?

Enable JavaScript to run the check — the diagnosis itself is free and needs no account.

Why this happens

You launch a campaign, it gets clicks in the ad platform, and in GA4 it doesn't exist. Not low traffic: no row at all under Session campaign. The traffic is either landing under another name, being filed as Direct or (not set), or not reaching GA4 at all.

It's easy to miss because you usually look for the campaigns you expect, and a missing campaign leaves no gap to notice. Only when you compare the full list of what you launched against what GA4 recorded do you see which ones never showed up.

This checker does that comparison. Upload your campaign list and a GA4 Session campaign export for the same period, and it lists the campaigns that are missing.

Next checks

These answer the questions this one tends to raise.

How this check works

So you can trust the result — and your developer can verify it.

  1. Upload your campaign list

    Any CSV with a Campaign, Campaign name or UTM campaign column: an ad-platform export, a launch tracker or your UTM builder sheet.

  2. Upload a GA4 Session campaign export

    From GA4 Traffic acquisition with Session campaign and Sessions columns, for the same dates.

  3. We match names

    Campaign names are normalised for case and spacing before matching, so "Spring_Sale" and "spring_sale" count as the same. Campaigns with no matching GA4 row are listed.

Common causes and fixes

utm_campaign doesn't match the campaign name
The ad platform name and the utm_campaign value are often different. GA4 reports utm_campaign. Make the naming consistent, or compare against your UTM values.
Auto-tagged campaigns appear under a different name
Google Ads auto-tagging reports Google Ads campaign names when GA4 and Google Ads are linked. If they aren't linked, auto-tagged traffic may show as (not set).
UTMs stripped before GA4 loads
A redirect or consent reload drops the parameters, and the session is recorded without a campaign. Run the UTM Loss Detector on the campaign URL.
The GA4 tag doesn't fire on the landing page
If the landing page has no GA4 tag, or it's blocked by consent, there's no session to attribute.

Frequently asked questions

Is matching case-sensitive?
No. Names are normalised so that capitalisation and extra spaces don't cause false misses. GA4 itself is case-sensitive, so inconsistent casing will split your reports there.
Why would a campaign appear in GA4 as (not set)?
Usually because the session had no campaign information, for example auto-tagged traffic without a Google Ads link, or UTMs lost before GA4 loaded.
What date range should I use?
The same range for both files, covering the period the campaigns were live.
Does it read my GA4 account?
No. It only uses the CSV exports you upload.
What should I check for a missing campaign?
Open one of its ad URLs and run it through the UTM Loss Detector to see where the parameters go.

Catch a campaign before it becomes Direct traffic.

Clarvivo makes acquisition breaks visible next to the revenue they prevent you from attributing.

Validate campaign measurement

What this tool reads, and what it keeps