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/{click_id} — the redirect macro
<a href="https://app.utmcap.com/out/{click_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 — but only where a redirect brought the visitor.
That is deliberate. {click_id} is a macro out of a tracking URL, and a tracking URL is a redirect. Under parallel tracking there is no redirect at all, and an organic visitor never had one either. Filling it in those cases would make a redirect macro work without a redirect, which reads as the same mechanism as #utmcap when it is a different one.
#Which fills when
| Arrival | #utmcap |
/out/{click_id} |
|---|---|---|
| Tracking URL or template — a redirect happened | fills | fills |
| Parallel tracking — no redirect | fills | stays literal |
| Organic — search, bookmark, shared link | fills | stays literal |
| Nothing identifies the page at all | stays literal | stays literal |
So: on a parallel-tracking campaign, use #utmcap. A pasted /out/{click_id} will never fill there.
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 page: no click id, no utm_id, and the address is not one UTMCAP knows as a landing page.
That last part is the usual cause. The tag sends the page's own address and UTMCAP matches it against your registered landing pages — so a page whose URL in the app does not match the address a visitor actually reaches cannot be recognised. A trailing slash, www, or a staging address saved instead of the live one will all do it.
See troubleshooting.