Free tool · no sign-up
Build a UTM link to a website, Google Play or the App Store. Before you publish it, you will see which GA4 channel the traffic lands in and whether it ends up in Unassigned.
Your last 10 copied links will show up here.
Links are built in your browser. The history is stored on this device only.
How to use it
The full URL with https://. If it already has parameters or a # anchor, the builder puts the UTMs in the right place and the anchor keeps working.
Or click a preset such as “Meta Ads + macros” or “Newsletter”. Pay the most attention to the medium field, because it decides the GA4 channel.
A green channel means you are good to go. Unassigned or a warning under the link? Fix it before the link goes into an ad or to print. Once it is published, you cannot change it.
Parameters
GA4 needs three parameters: source, medium and campaign. Add the others when you want to tell apart ad versions or the places where the same link appears.
| Parameter | Required | What it is for | Example |
|---|---|---|---|
| utm_source | yes | where the traffic comes from: site, newsletter, partner | linkedin |
| utm_medium | yes | type of traffic; it decides the GA4 channel | paid_social |
| utm_campaign | yes | purpose of the link: promotion, webinar, newsletter issue | 2026-10_ga4-webinar |
| utm_id | recommended | campaign ID; links traffic to cost data imported into GA4 | 12034 |
| utm_term | no | keyword or ad audience | it-decision-makers |
| utm_content | no | creative version or link placement; useful for A/B tests | cta-top |
| utm_source_platform | no | the platform that sent the traffic | mailchimp |
| utm_creative_format, utm_marketing_tactic | no | creative format and tactic; GA4 accepts them but does not report them at the moment | video, remarketing |
GA4 channels
GA4 checks the default channel group rules one by one and stops at the first match. It first checks whether the medium means paid traffic, then which site list the source belongs to. That is why facebook + cpm lands in Paid Social, not Display.
| utm_source | utm_medium | GA4 channel | Why |
|---|---|---|---|
| paid_social | Paid Social | social site + paid medium (paid…) | |
| cpm | Paid Social | the Paid Social rule is checked before Display | |
| news-portal | display | Display | medium display, banner or cpm |
| news-portal | cpc | Paid Other | paid medium, but the portal is not on the search or social lists |
| newsletter | medium or source email | ||
| youtube | social | Organic Social | the social medium beats the video rule |
| youtube | video | Organic Video | video site or a medium containing “video” |
| organic | Organic Search | good for the link in your Google Business Profile | |
| industry-portal | referral | Referral | medium referral, app or link |
| flyer | qr | Unassigned | GA4 has no offline channel; create a custom channel group |
| post | Organic Social | only the facebook source saved it; with another source it would be Unassigned |
The builder applies a simplified version of the rules from Google’s “[GA4] Default channel group” documentation: the site lists cover the most popular sources. Custom channel groups in GA4 may assign traffic differently.
Mobile apps
A UTM link to an app store works differently from a link to a website. On Android, GA4 attributes the install to your campaign. On iOS, it does not.
The builder adds the UTMs to the referrer parameter of the Google Play link. The store passes it to the app on first launch (Install Referrer), and the Firebase / GA4 SDK attributes the first_open event to your campaign.
You will see the result in the GA4 User acquisition report.
The App Store does not pass UTMs to the app, so GA4 never learns the install source. A campaign link with the pt and ct parameters shows app page views and downloads in App Store Connect.
For full iOS install attribution you need AdAttributionKit / SKAdNetwork or an MMP tool.
A Universal Link (iOS) or App Link (Android) with UTMs opens the app for people who have it. For the campaign to reach GA4, the app has to pass the parameters to Firebase; on iOS that is done with the campaign_details event.
Build this kind of link in the Website tab.
Common mistakes
FAQ
No, as long as you tag external links: in social media, emails and ads. The problem starts when UTM links point between pages of your own website, because Google may index them as separate URLs. WordPress with an SEO plugin usually adds a canonical tag without parameters, which limits the issue.
No. Turn on auto-tagging (the gclid parameter) and link Google Ads to GA4. GA4 then gets the campaign, ad group and keyword without manual UTMs.
Yes. GA4 shows LinkedIn, linkedin and Linkedin as three different sources. Agree on one rule in your team: lowercase only, words joined with a hyphen. The builder converts to lowercase by default.
Most often because of a medium that is not in the GA4 default channel rules, for example post, qr, newsletter or fb_banner. Use a medium from the list: social, paid_social, email, cpc, display, referral, affiliate. For QR codes and print, create a custom channel group in GA4, such as “Offline / QR”.
The App Store does not pass UTMs to the app, so GA4 cannot see the install source from the App Store. Use an App Store campaign link with the pt and ct parameters (iOS tab), and you will find the data in App Store Connect. For people who already have the app, use a deep link with UTMs.
The parameters are in the page URL, so the GA4 tag can read them. With Consent Mode v2 in advanced mode, GA4 receives cookieless pings and fills the gaps with modelling. In basic mode, the GA4 tag does not fire without consent, so that visit does not appear in reports.
Set one scheme for the whole company, for example utm_source=email-signature, utm_medium=email, utm_campaign=signature, with the department name in utm_content: sales, customer-service, management. GA4 then shows how much traffic and how many leads everyday email brings. Never put first names, surnames or email addresses in UTMs, because Google Analytics policies forbid sending personal data.
Links are built in your browser and are not sent to any server. Your browser keeps a history of the last 10 links locally on your device. You can clear it with one click.
I will check GA4, GTM and Consent Mode on your website and show you where you lose lead source data. You get a list of fixes, ordered from the ones that bring the most.
Ta strona jest dostępna również po polsku.
Przejdź do wersji polskiej