100% In Browser
Your tagged URL appears here.

Tidy values lower cases everything and swaps spaces for underscores, which is what keeps one campaign from splitting into four rows in a report. Macros are never touched.

What each UTM parameter is for

ParameterRequiredWhat it answers
utm_sourceYesWhich property sent the visit. google, facebook, newsletter.
utm_mediumYesWhat kind of marketing it was. This is the field that decides the channel group.
utm_campaignRecommendedWhich campaign or promotion it belongs to.
utm_contentOptionalWhich creative or placement, so two ads in one ad set stay separable.
utm_termOptionalThe keyword on paid search.
utm_idOptionalThe campaign ID, used to join sessions to cost data imported into GA4.

The utm_medium values that map to a channel

GA4 does not guess. It reads utm_medium against a fixed list, and anything outside that list lands in Unassigned no matter how carefully the rest of the link was built. facebook_ads, paidsocial and ppc_google are the three that break campaigns most often.

ChannelUseNot
Paid searchcpc, ppc, paidgoogle_ads, search
Paid socialpaid_social, social_paidfacebook_ads, paidsocial
Organic socialsocialinstagram
Displaydisplay, banner, cpmprogrammatic
Emailemailmailchimp, edm
Affiliateaffiliatepartner

Platform macros stay literal

A macro is a placeholder the ad platform swaps for a real value at click time. It has to reach the platform exactly as written, so this builder never percent encodes one, and never flags its capital letters as a casing mistake.

PlatformSyntaxExample
Google AdsValueTrack in braces{keyword}, {campaignid}, {creative}
Microsoft AdsBraces, mixed case{CampaignId}, {AdGroupId}
MetaDouble braces{{campaign.name}}, {{ad.name}}
TikTokDouble underscores__CAMPAIGN_NAME__, __CID_NAME__
Display & Video 360Dollar and braces${CAMPAIGN_ID}, ${CREATIVE_ID}
Campaign Manager 360Percent and bang%ecid!, %epid!

What the checker looks for

Further reading

UTM parameters explained for paid media covers what each field is for and a naming convention worth adopting. Why GA4 shows unassigned traffic explains the one field that decides whether a campaign appears in reporting at all. Ad platform URL macros lists the placeholder syntax for Google Ads, Meta, TikTok, DV360 and Campaign Manager 360, and why encoding one breaks it.

Related tools

Once the click URL is settled, put it into the creative with the clickTag generator, or inject it straight into a zipped banner with the HTML5 clickTag editor. Before the campaign ships, run the finished creatives through the HTML5 banner validator and check the video cuts against the safe zone checker.