How a session gets classified
Every session gets exactly onetraffic_source value, decided once on the first event
and carried through the whole session, including the conversion. TrackPlay checks seven
signals in a fixed order and stops at the first one that answers. A later, weaker signal
never overrides an earlier, stronger one.
A declared channel and a delivery network are not competing signals, they refine each
other. A
gclid proves the click came from Google Ads and nothing more. The {network}
parameter proves it was delivered on YouTube specifically. Both facts can be true at
once: a campaign labeled youtube can still show ad_network = video_partners,
meaning it ran on a Google video-partner site, not on youtube.com itself. TrackPlay
keeps both rather than collapsing them into one.Direct is a fact, Unknown is a gap
Once a session clears the classifier with no referrer, no UTM, no click id, no affiliate id, and no share link, TrackPlay checks whether it actually captured attribution data for that session at all. If it did, and every signal came back genuinely empty, the session is labeled Direct. That is a real claim: this viewer typed your URL, used a bookmark, or opened a message with no tracking parameters. If the session carries no attribution data to check in the first place, the label is Unknown, never Direct. TrackPlay does not guess.Why the referrer is often empty, and that is normal
Why the referrer is often empty, and that is normal
Affiliate hoplink redirect chains and in-app browsers on Facebook and TikTok drop
document.referrer on the vast majority of clicks that pass through them. An empty
referrer on affiliate-driven traffic is expected, not a tracking failure.A referrer equal to your own domain is not counted as a referral
A referrer equal to your own domain is not counted as a referral
If the reported referrer is the same domain as the page the video is embedded on,
TrackPlay treats that as internal navigation, not an acquisition source, and falls
through to the next signal instead of reporting a referral from yourself.
Tagging your email links
Email is the one channel where the browser will not tell TrackPlay the truth on its own, so it is worth two minutes of setup. Addutm_medium=email to every link you send. That is the whole requirement:
email, e-mail, mail, and newsletter are all accepted. Add utm_source and
utm_campaign if you want the broadcast broken out by name in the UTM Source and UTM
Campaign tabs:
Why the referrer is not enough on its own
TrackPlay does recognize webmail referrers, and a click from Gmail, Outlook, Yahoo Mail, Proton Mail, Zoho, AOL, Superhuman, or a self-hosted Roundcube orwebmail. host is
classified as email even with no tag. That check deliberately runs before the
search-engine check, because mail.google.com would otherwise match Google and your
newsletter would be credited to organic search.
But it only covers people reading email in a browser tab. Two large groups send no
referrer at all:
Desktop mail apps send nothing
Desktop mail apps send nothing
Outlook for Windows and Mac, Apple Mail, and Thunderbird hand the link to the
operating system, which opens the browser with no referrer. The session looks Direct.
Phone mail apps usually send nothing
Phone mail apps usually send nothing
The Gmail and Outlook apps and Apple Mail on iOS open links in an in-app browser or
the system browser. In most cases no referrer survives, so those sessions also look
Direct.
Gmail in a browser is the awkward one
Gmail in a browser is the awkward one
Gmail routes clicks through a Google redirect. When a referrer does arrive it is a
Google host, which is indistinguishable from search unless the classifier checks the
mail hosts first. TrackPlay does. Other analytics tools frequently do not, which is
why email traffic so often shows up as Google in them.
Click id parameters captured
These platform click ids are recognized at step 3 of the classifier. Each one also identifies the ad platform for the Ad Platform column, independent of which specific surface delivered the click.sccid is Snapchat’s own ScCid parameter, matched case-insensitively. irclickid,
cjevent, ps_xid, and gsxid all identify traffic as affiliate-sourced rather than
naming a specific ad platform, since they come from affiliate networks (Impact, CJ,
PartnerStack) rather than paid platforms.
The tables
Sources opens with a tabbed breakdown, then four ranked reports. All five read the same economics for every row: sessions, play rate, average watch time, conversions, conversion rate, revenue, and four money columns.Traffic Sources and Top Pages are not the same report asking the same question
twice. The referring-domain report is empty on almost all of this traffic, because
hoplink chains and in-app browsers strip the referrer before it ever reaches TrackPlay.
Top Pages groups by the page your player actually loaded on instead, which is populated
on effectively every session, so it is the report that answers “which of my pages
converts” when Top Referring Domains cannot.
Ad Platform, Ad Network, and Ad Channel are three different questions
The Traffic Source dimension is always populated. The other three platform dimensions answer narrower questions and stay empty until you set them up:Revenue columns
Every table is ranked by revenue first, then conversions, then sessions, and every column
is sortable. Rows carrying no classification stay in the table labeled Unknown rather
than being dropped, so the sessions column still adds up to the video’s real traffic.
Traffic Quality
The Traffic Quality card, on the video’s General tab, splits sessions into four categories and breaks them down by country.
This is a fail-open design: an unclassified session defaults to human rather than to bot,
so Traffic Quality never inflates a fraud number it cannot back up.
Custom Data breakdown
Also on the video’s General tab. TrackPlay captures every URL query parameter your landing page carries intocustom_data, whether or not it maps to a first-class column.
The Custom Data breakdown lets you pick any captured key (utm_source, affid, a plan
name, anything) and see one row per value, with plays, unique plays, play rate,
conversions, and revenue. The top 50 values are shown individually, with an “Other” row
summing the rest. Click a row to apply it as a filter across the rest of the tab.
Telling YouTube Ads apart from Search
Agclid proves a click came from Google Ads. It cannot tell you whether that click was
served on YouTube, on Search, or on the Display network. Without more information,
YouTube Ads spend and Search spend are the same number in every report.
Google has the answer. It does not send it unless you ask for it.
1
Open Ad Tracking
Go to Integrations → Ad Tracking. The setup is one screen, and it applies to
every video in the workspace at once.
2
Copy the final URL suffix
Copy this string exactly. Do not translate the
{'{'}...{'}'} tokens: they are
Google’s own ValueTrack macros, and Google expands them at click time.3
Paste it into Google Ads
Settings → Account settings → Tracking → Final URL suffix. You can also set it per
campaign instead of account-wide.
4
Check the status badge
The Ad Tracking screen shows whether the suffix is expanding. It reads your last 30
days of Google Ads traffic and reports one of three states, refreshed every 5
minutes: Active (a percentage of Google sessions carrying the network parameter),
Not detected (Google traffic exists but none of it carries the parameter), or
No Google Ads traffic. A workspace running only Meta correctly reads “no
traffic,” never a broken-looking 0%.
5
Optional: declare the channel directly
Append
&ef_channel={_ef_channel} to the suffix, then add a custom parameter named
_ef_channel on each campaign, with a value like youtube, google_search,
google_display, performance_max, or demand_gen. Only add this if you actually
define the _ef_channel custom parameter on the campaign. Without it, Google leaves
the macro unexpanded and you get no channel data at all.