Tag Docket

Free tool

UTM checker: fix your links before GA4 sees them

Paste your tagged links, one per line. The UTM checker validates each one and shows what GA4 will get wrong, and how to fix it. Free, with no account.

Up to 500 links per check. Nothing you paste is stored.

Already in GA4? See what it split

Choose your GA4 export, or paste the table, and see which sources, mediums and campaigns GA4 is counting more than once because they were typed differently. The file is read in your browser and never uploaded.

How to export it from GA4
  1. Open Reports → Acquisition → Traffic acquisition.
  2. Change the table’s first column to Session source / medium, and pick a date range, such as the last 90 days.
  3. Click Share this report → Download file → Download CSV, then choose that file below.

Copying the table works too, but only copies the rows on screen, so raise Rows per page first. To check campaigns as well, add Session campaign as a secondary dimension.

Up to 5,000 rows. Read in your browser; nothing is uploaded.

Check the links on any page, in one click

The free Chrome extension runs the same check on every tagged link on the page you’re on, and outlines the problem links on the page itself. No account, and nothing leaves your browser.

What it checks

Every rule is one GA4 applies to every property, whatever your naming convention.

  • Capital letters

    GA4 counts “Facebook” and “facebook” as two sources. Platform macros such as __CAMPAIGN_NAME__ are left alone.

  • The same value in two cases

    Across the links you paste, “Email” in one and “email” in another split one source into two.

  • Spaces

    A space arrives as “+” or “%20” depending on who built the link, so one value becomes two.

  • Missing source, medium or campaign

    Without both utm_source and utm_medium, GA4 ignores the tag. Without utm_campaign, the campaign can’t be told apart.

  • Tags after the #

    GA4 doesn’t read anything after the #, so tags placed there are lost.

  • Parameter names

    UTM_Source isn’t utm_source. A parameter written twice is flagged too, since which one counts can’t be relied on.

  • Broken platform macros

    A macro whose { } braces were URL-encoded is never filled in, and the literal text reaches GA4.

  • Length

    Several ad platforms cap a URL at 2,048 characters and cut it off past that without saying so.

Questions

Do I need an account?
No. The checker is free and needs no account or email address. Paste up to 500 links at a time.
Do you keep the links I check?
No. The links are checked and the result is sent back. Nothing about them is stored. To limit how often anyone can check, requests are counted per IP address, in memory, for an hour.
Does it know my agency’s naming rules?
No. It checks the rules that hold for every GA4 property, such as case, spaces and missing fields. Checking links against a client’s approved values is what Tag Docket itself does: every link is built from those values on the server, and every value is lowercased.
Can it check the data already in GA4?
Yes. Download the Traffic acquisition report by session source / medium and choose the file, or paste the table. It finds the sources, mediums and campaigns GA4 is counting more than once because they were typed differently, such as “Facebook”, “facebook” and “fb”, and how many sessions each spelling took. The file is read in your browser and never uploaded.
It says “Too many checks for now”.
The checker limits how many checks one address can run in an hour. Wait an hour, or paste more links into each check: one check takes up to 500.

Fix links before they ship, not after.

Start a free trial, no card needed. Your team signs in with an email link, no passwords.