The call to action
Two markers you can put on a button, and the difference between them — one works on every arrival, the other only where a redirect happened.
The button on your landing page has to become this visitor's own click-out, so pressing it records the click and reaches the offer your paths chose. There are two ways to mark it, and they are not the same mechanism.
##utmcap — the tag's hand-off
<a href="#utmcap">Get started</a>
The tag rewrites it to /out/<click id>. This works on every arrival: a redirect, parallel tracking, or somebody who found the page in search.
Any of these are recognised, if #utmcap does not suit your markup:
<a href="#offer">…</a>
<a data-utmcap>…</a>
<a class="utmcap-out">…</a>
#Several buttons on one page
Number them, and each press is recorded with the number it came from:
<a href="#utmcap" data-utmcap-slot="hero">Get started</a>
<a href="#utmcap" data-utmcap-slot="footer">Get started</a>
The tag rewrites each one to the same click-out with its own slot on the end:
https://app.utmcap.com/out/06G873SECHWDV2V9G455CJFVKC?slot=hero
The name is yours: hero, footer, 1, 2. Letters, digits, dash and underscore, up to sixteen characters — anything else is stored as no slot at all, because that value arrives on a URL the visitor can edit. data-slot is accepted as well as data-utmcap-slot.
Where you read it is the clicks log, beside click-out in the Hop column. That is the whole of it today: the slot is not one of the report groupings and it is not in a CSV export, so comparing two buttons means reading rows rather than opening a summary.
Every one of those links reaches the same offer. The slot says which button was pressed and decides nothing — see when the campaign has several offers.
#/out/{utmcap_id} — the redirect macro
<a href="https://app.utmcap.com/out/{utmcap_id}">Get started</a>
This is the click-out URL as it is written down, braces and all, pasted by hand. The tag substitutes the id wherever it has one and the page belongs to a campaign — a redirect brought the visitor, or utm_id/&c= named the campaign. A link written with {click_id} is filled the same way.
It used to fill only after a redirect, on the reasoning that {utmcap_id} is a macro out of a tracking URL and a tracking URL is a redirect. That cost more than it was worth. Google made parallel tracking mandatory, so those campaigns never have a redirect: the placeholder stayed literal, and every visitor who pressed the button got a 404 — not untracked, gone.
The one case it still leaves alone is a visitor nothing names: no redirect, no utm_id, no campaign tag. There is no campaign to hop into, so the link keeps its braces and gains data-utmcap-pending="1" rather than pointing at a URL that would answer 404.
#Which fills when
| Arrival | #utmcap |
/out/{utmcap_id} |
|---|---|---|
| Tracking URL or template — a redirect happened | fills | fills |
Parallel tracking — utm_id on the URL, no redirect |
fills | fills |
A page that names its campaign with &c= |
fills | fills |
| Nothing names a campaign | stays literal | stays literal |
Either marker works on a parallel-tracking campaign. #utmcap is still the one to reach for — it is shorter, it cannot be pasted with the wrong domain, and it does not depend on anybody copying braces correctly.
Where a redirect did happen, the origin travels with the visitor in a cookie — so a pasted macro still fills on page two of the same visit, rather than working on the landing page and dying on the checkout page.
#When the campaign has several offers
One button, unchanged. There is nothing to write on the page about which offer it goes to, and no way to say it.
The offer is chosen before the page loads. When your paths send a visitor to a landing page, the same decision picks that path's offer, substitutes its tokens, and holds the finished URL against the click id — so /out/<click id> is one lookup rather than a second rotation. Every marked link on that page resolves to that same offer for that visitor.
That is deliberate rather than incidental. Rolling again at the button would let the offer change between somebody reading the page and pressing it — which is exactly what happens when a weight is edited while traffic is running, and it would split one visitor across two arms of your own test.
Decided is not the same as recorded. The arrival row still names the landing page and no offer; the offer appears on the click-out row that follows. That is why the offer tokens are empty in a landing page URL and filled in an offer URL, even though both were settled at the same moment.
A button cannot name an offer. There is no per-offer click-out URL, and adding one would let the page overrule the routing you configured. If particular traffic should always reach a particular offer, that is a rule with its own path — see rules.
Several buttons are a reporting split, not a routing one. The landing page screen hands you numbered links when you tell it how many calls to action the page has:
<a href="#utmcap" data-utmcap-slot="1">Continue</a>
<a href="#utmcap" data-utmcap-slot="2">Continue</a>
<a href="#utmcap" data-utmcap-slot="3">Continue</a>
Those numbers are places on your page, not offers. Three of them do not mean three offers, and slot 2 is not the second offer: all three are the same click-out for the same visitor, carrying ?slot=1, ?slot=2, ?slot=3 so the clicks log can say which one was pressed. Number them in the order they appear down the page, or name them — hero, mid, footer — which the tracker accepts equally and you will still recognise in six months.
Nothing checks that count against your page, either. It decides how many snippets the screen writes out for you; the tracker records whatever slot arrives, so a fourth button you add later is recorded without changing the setting.
Two things make the button answer 404 instead of redirecting, and both are worth recognising:
- The path routes to a landing page and has no offer under it. The click-out has nowhere legitimate to send anybody. A path with a lander needs at least one offer beside it.
- The visitor came back much later. The held offer lasts 24 hours — long enough to cover somebody who opens a page, gets distracted and returns. After that the click-out answers
404and the landing page view stays recorded.
A capped offer drops out of the rotation as soon as it is capped, so the next click gets one of the others. If every offer on the path is capped the traffic still goes to one of them rather than nowhere: sending a click somewhere that will not pay is bad, and refusing traffic you have already paid for is worse.
One case has no call to action at all: a campaign with no landing page sends the visitor straight to the chosen offer at the redirect, so there is no page of yours in the middle and no button to mark.
#Why an unfilled marker is left alone
A marker the tag cannot fill keeps its original href and gains data-utmcap-pending="1". It is never pointed at a URL that would 404.
That attribute is worth knowing about, because it is the honest signal that the tag ran and had nothing to fill with. If you want a button that visibly waits, you can style it:
a[data-utmcap-pending] { opacity: .6; pointer-events: none; }
#The last row of that table
#utmcap stays literal when nothing identifies the visitor: no click id from a redirect or a cookie, and no campaign named — no utm_id on the URL, and no &c=<alias> on the tag.
That last part is the usual cause. The tag will not guess a campaign from the page's address, so a page nothing names is a page it cannot open a click for, and the marker is left alone rather than pointed at a URL that would 404. Either the Final URL in your ad has lost its utm_id, or the page needs the campaign tag because its own visitors should belong to a campaign.
See troubleshooting.
Tracking tips by email
Practical tips on tracking, attribution and ad costs, from the people who build UTMCAP.
Unsubscribe any time. Privacy policy