Traffic sources
The platform you buy from, and the macro configuration that decides whether your sub-ids and your cost are real or empty.
A traffic source is the platform you buy clicks from. It exists in UTMCAP for one reason: it is what turns a bare tracking URL into one carrying the platform's own identifiers.
Set it up wrong and nothing looks broken. Clicks arrive, campaigns route, reports fill in. The sub-id columns are just empty and every click costs zero, and both are the kind of wrong nobody checks until a month has gone by. That is why "has macros configured" is a column on the sources list rather than something you find out by opening one.
#Macros
A macro is the platform's own placeholder. You write it into the source's configuration; the platform substitutes it when it sends the click.
You map each of the ten sub slots to whatever that platform calls the thing you want in it:
| Slot | Typically |
|---|---|
sub1 |
Campaign or account id |
sub2 |
Ad set / ad group |
sub3 |
Ad or creative |
sub4 |
Placement |
sub5 |
Keyword or interest |
sub6 – sub10 |
Whatever else that platform exposes |
Nothing enforces that layout, and the slots are only as meaningful as your
consistency across sources. Pick an order and keep it, or sub3 means creative
on one source and placement on another and no report across both means
anything.
The exact macro text comes from the platform's own documentation — every one spells them differently, and the spelling has to be exact. A macro that is almost right is not substituted; it arrives as literal text, or as nothing.
Once configured, the tracking URL on every campaign using that source is built with those macros already in it. Take the URL from the campaign's Tracking tab. Editing a URL you already have is how a source ends up half-configured.
#Cost
Two settings, and they are not the same thing:
- Cost macro — what the platform substitutes with the click's cost. What it writes.
- Cost parameter — the query parameter UTMCAP reads that value from. What we read.
Both have to be set, and they have to agree. Together they are the only way cost arrives on a click.
A source with no cost macro records every click at zero. The campaign then shows revenue against no spend, which reads as pure margin — profitable, scalable, and completely wrong. It is the failure mode worth checking first on any campaign whose ROI looks too good.
Cost model records how the platform bills you — CPC, CPM, and so on. It is recorded rather than acted on; the cost that reaches your reports is the one on the click.
#Sub-ids for platforms that will not redirect
Google and Microsoft do not allow a redirect, so their clicks arrive by parallel tracking instead. The macros still apply — they go on the ad's tracking template rather than on a redirect URL, and the values land in the same sub slots.
#What the list tells you
Alongside the configuration, each source carries its own performance: Clicks, Unique, Leads, Sales, Rejected, CR, Revenue, Cost, Profit, ROI, EPC.
Note the vocabulary here differs from the report builder, and deliberately:
Leads are conversions still pending approval and Sales are ones the
network approved. Elsewhere those are Pending and Conversions. Same
numbers, named for what a media buyer calls them when comparing sources.
#Reporting on sub slots
Once macros are flowing, sub1 – sub10 are groupings in the
report builder. That is where the
setup pays off: which ad set, which creative, which placement — answered in one
regroup rather than by building ten campaigns.
If a slot is empty in a report, turn off Hide empty rows to confirm it is genuinely arriving blank rather than simply having no data yet.