How MTK Attribution categorizes
No guesswork, no black box — these are the exact values the engine looks for when it assigns every visit a channel and source. If a lead is ever categorized in a way you don't expect, this page tells you precisely why.
How channel & source are classified
channel and source are computed, not read from a single parameter. Classification runs once per session, on that session's first page load, from that page's URL parameters and referrer. The engine walks the rules below in order and the first match wins — these are the exact values it looks for. All comparisons are case-insensitive.
A gclid, gbraid, wbraid, or msclkid URL parameter is present — or utm_medium is exactly cpc or paid_search.
Source: Microsoft Ads if msclkid (or a bing/bingads/microsoft utm_source); Google Ads when untagged or for google/googleads/adwords; any other utm_sourceper the source-format setting below. Paid-search sources always carry “Ads” in normalized mode so they can't be confused with organic.
utm_medium is exactly paid_social (changeable per license via the paidSocialMedium config).
Source: utm_source (per the source-format setting below); else Facebook.
A ttclid URL parameter is present (and no rule above matched).
Source: Always TikTok.
utm_medium is exactly email.
Source: utm_source (per the source-format setting below); else Email.
Any utm_source with none of the paid signals above. Channel is Referral when utm_medium is exactly referral, otherwise Campaign.
Source: utm_source (per the source-format setting below).
No UTMs; the referrer hostname matches a search-engine domain (list below). Exception: a Google referrer with a fresh _gcl_aw cookie upgrades to Paid Search / Google Ads — an ad click whose gclid was lost in transit and recovered out of the cookie (see the cookie-rescue row below).
Source: From the referrer — see the source-name table below.
No UTMs; the referrer hostname matches a social domain (list below) — or an fbclid URL parameter is present alongside any referrer. Exception: a Facebook/Instagram referrer with a fresh _fbc cookie and no fbclid in the URL upgrades to Paid Social / Facebook — the cookie is only evidence of a paid click when the URL parameter went missing. Meta puts fbclid on every outbound link, organic posts included, and the Pixel writes _fbc from whichever one it sees, so a _fbc sitting next to an fbclid is just that click echoed back. Untagged Meta ads are indistinguishable from organic Facebook here — utm_medium=paid_social on ad URLs is what separates them.
Source: From the referrer — see the source-name table below.
No UTMs; any other referrer. A referrer from the site's own hostname never counts — internal navigation (idle-timeout session renewals, consent-delayed tag loads) is ignored for classification entirely.
Source: The referrer's hostname with www. stripped, e.g. partnersite.com.
An fbclid URL parameter with no referrer at all (some in-app browsers strip it).
Source: Always Facebook.
No click IDs, no UTMs, no (external) referrer — but a fresh platform cookie exists: _gcl_aw (Google) or _fbc (Meta) created within the session window. The ad click just happened; its URL signal was lost (consent redirect, URL rewrite, tag firing mid-session). The click ID is recovered out of the cookie into the touch. A stale cookie never classifies — those cookies live ~90 days, and a returning visitor is Direct.
Source: Google Ads (from _gcl_aw) or Facebook (from _fbc).
Nothing identifying — no click IDs, no UTMs, no referrer, no fresh platform cookies.
Source: Always Direct.
Built-in search-engine domains
A referrer from any of these classifies as Organic Search. Extendable per license via the searchDomains config.
google.bing.yahoo.duckduckgo.ecosia.Built-in social domains
A referrer from any of these classifies as Organic Social. Extendable per license via the socialDomains config.
facebook.fb.instagram.linkedin.twitter.x.comyoutube.reddit.pinterest.tiktok.t.coSource names from referrers
When a rule derives source from the referrer, these hostname matches produce these names. Any referrer not listed reports its own hostname (minus www.) as the source — e.g. a visit from Ecosia is Organic Search / ecosia.org.
google.bing.yahoo.duckduckgo.facebook.fb.instagram.linkedin.twitter.x.comt.coyoutube.reddit.pinterest.tiktok.How domains are matched
Matching runs against the referrer's hostname only — never its path or query string. Entries ending in a dot (google.) match that label anywhere in the host (google.com, news.google.de). Entries with an inner dot (x.com) match that exact domain or a subdomain of it — so x.com and www.x.com qualify, while wix.comdoes not. Custom entries with no dot at all match anywhere in the host. A referrer from the site's own hostname is ignored for classification entirely.
How utm_source becomes the source value
In normalized mode (the default), typed utm_source values are cleaned to canonical platform names — so paid, organic, and click-ID traffic from one platform share one spelling, and Meta's {{site_source_name}} values arrive readable. Values not in the table are title-cased. In verbatim mode (per-license toggle) typed values pass through byte-for-byte — engine-derived fallbacks (untagged clicks, referrers, cookie rescues) stay curated in both modes.
fbigmsganyoutubelinkedintiktokduckduckgotwitterxgooglegoogleadsadwordsbingbingadsmicrosoftThe (paid)rows apply within Paid Search classification — where sources always carry “Ads” so a source pivot can't mix paid and organic Google or Bing traffic.
See also: What MTK Attribution captures · Recommended UTM parameters · Data source reference