UTMCPdocs
Open the app →

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
sub6sub10 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, sub1sub10 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.