Recommended UTM parameters
MTK Attribution works without any UTMs — click IDs and referrers classify most traffic on their own. But the templates below fill in what those signals can't: which campaign, which keyword, which creative, which placement. Set them once at the account level and every captured field lights up.
The values the engine keys on
Channel classification reacts to exact utm_medium values (case-insensitive):
cpcorpaid_search→ Paid Searchpaid_social→ Paid Socialemail→ Emailreferral(with a utm_source) → Referral- anything else with a
utm_source→ Campaign
utm_source becomes the source value — normalized to canonical platform names by default (googleads → Google Ads, ig → Instagram; see the alias table), or byte-for-byte with the per-license verbatim toggle. Beyond the six standard params (source, medium, campaign, term, content, placement), the tag also freezes these URL params into every touch by default: matchtype, network, device, campaignid, adgroupid — mappable in your field map as e.g. first.adgroupid / last.adgroupid.
Google Ads
Set as the tracking template at account level (Admin → Account settings → Tracking) so it applies everywhere:
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_term={keyword}&utm_content={creative}&utm_placement={network}&adgroupid={adgroupid}&matchtype={matchtype}&device={device}{campaignid}passes the numeric ID — Google has no campaign-name ValueTrack macro. Match IDs to names in your reporting, or maintain per-campaign static names instead.- Don't use
{adposition}— Google deprecated it and it now returns an empty value. {network}returnsg(Google Search),s(search partners), ord(Display).- The
gclidis appended by autotagging automatically — even with no template at all, Google clicks classify as Paid Search.
Meta (Facebook & Instagram)
Paste into the ad's URL parameters field (Ads Manager → ad level → Tracking). No {lpurl} — Meta appends these to your link:
utm_source={{site_source_name}}&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}&utm_placement={{placement}}utm_medium=paid_socialis what classifies the visit as Paid Social. Don't usecpchere — that value means Paid Search.{{site_source_name}}resolves tofb,ig,msg, oran— which app drove the click. In the default normalized mode the source field reads Facebook / Instagram / Messenger / Audience Network, matching what organic traffic from those platforms reports. (Verbatim mode passesfb/igthrough as-is.)- Meta's dynamic parameters use double curly braces and resolve to names, not IDs. Google-style
{keyword}macros do not work on Meta — they pass through as literal text. - Name-based values freeze when the ad is published; renaming a campaign later doesn't update them.
Microsoft Ads (Bing)
Account-level tracking template. Microsoft's {Campaign} macro passes the campaign name:
{lpurl}?utm_source=bing&utm_medium=cpc&utm_campaign={Campaign}&utm_term={keyword}&utm_content={AdId}Even without a template, autotagging's msclkid alone classifies the visit as Paid Search / Bing.
LinkedIn, TikTok & email
LinkedInhas no dynamic URL macros — set static UTMs per campaign on each ad's destination URL:
utm_source=linkedin&utm_medium=paid_social&utm_campaign=YOUR_CAMPAIGN_NAME
TikTok clicks carry a ttclidthat classifies them as Paid Social / TikTok automatically; add static UTMs (or TikTok's __CAMPAIGN_NAME__-style macros) for campaign detail:
utm_source=tiktok&utm_medium=paid_social&utm_campaign=__CAMPAIGN_NAME__
Email links should carry utm_medium=email plus a utm_source (e.g. newsletter) and utm_campaign per send.
Full classification logic — every exact value, in evaluation order — lives in the developer docs.