Skip to content
See guides

Campaign Builder · Measure

Campaign URL Builder

The destination URL is the page you promised. Path, offer codes, then UTMs (tags on a link). Mixing those jobs in one messy string is how landing pages 404 and reports lie.

The tool

Try it here

Use this to lock the landing URL before you tag it. Then send the result through the UTM builder - or attach UTMs here if they are already named.

Destination first

Optional UTMs

Destination URL

Need sanitised tags only? Use the UTM builder.

Why it helps

Why you need a Campaign URL Builder

A campaign URL is not the same job as a UTM. The URL is where they land. The UTM is how you attribute. If you only build UTMs on the homepage, you paid for a bounce.

Extra query params (ref, offer, lang) often belong to the product, not to Google. Keep them stable. Put attribution in utm_*.

Trailing slashes, http vs https, www vs apex: four URLs, four rows. Or a redirect that drops query strings if someone misconfigured the server.

Destination URL then UTM suffix ORDER - PAGE FIRST, TAGS LAST https://origin /demopath offer=product param utm_*attribution The page must work if someone strips the UTMs. Offer codes that the app must read belong in product params. https, canonical host, real path. Then tags. Test the redirect once - some http-https hops drop the query string. Do not put UTMs in the path. They will not parse.
Lock the landing URL. Then label it. Homepage-plus-UTM is how you pay for a bounce.

When

When to use it

  • You have a path (/demo, /webinar, /in/pricing) and you are not sure the live URL is canonical.
  • You need an offer or referral code on the URL that is not a UTM.
  • You are handing a destination to a media buyer who should not invent the path.

How

How to use it

  1. 1Enter the origin: https://acme.com - with https.
  2. 2Enter the path: /demo. Leading slash. No hash unless you mean it (hashes are not sent to the server).
  3. 3Optional product params: offer=q3, lang=en. Not utm_*.
  4. 4If the campaign name is ready, attach source, medium, campaign here, or copy the destination into the UTM builder for the sanitizer and chips.
  5. 5Copy. Open the preview if you can. Confirm the page matches the brief.

Example

Example: demo page plus offer code plus UTM

Landing is /demo. Product wants offer=live-demo. Attribution is google/cpc with the locked campaign name.

You put in

Origin
https://acme.com
Path
/demo
Product params
offer=live-demo
UTM campaign
google-in-demo-exact-2026q3

You get

https://acme.com/demo?offer=live-demo&utm_source=google&utm_medium=cpc&utm_campaign=google-in-demo-exact-2026q3

The page can read offer=live-demo for the hero. GA4 still gets a clean campaign. If you had stuffed live-demo into utm_campaign, the product and the report would share one brittle string.

Result

What this changes for you

Ads point at the demo page, not the homepage. Offer codes survive. UTMs stay a suffix, not a rewrite of the path.

Common mistakes

  • http:// on a site that redirects to https and drops query params. Test it once.
  • UTMs in the path (/demo/utm_source=google). They will not parse.
  • A #section link as the only destination. Ads crawlers and some apps ignore the hash.
  • Different URLs for the same page (slash vs no slash) without a canonical redirect.

FAQ

Campaign URL Builder FAQ

How is a campaign URL builder different from a UTM builder?

This builds the destination: origin, path, product query. The UTM builder specialises in clean attribution tags. Use both. Destination first, tags second.

Should every campaign URL include UTMs?

Paid, email, partners: yes. Organic site navigation: no. Internal UTMs reset the session.

Do offer codes belong in utm_content?

Only if the code is for reporting variants. If the page must read it, use a product param (offer=) so a missing UTM does not break the page.

What if the landing page is a PDF?

You can still tag the URL. Prefer an HTML page with the PDF behind a CTA so you can measure the click and keep the same offer on the page.