Click Tracking
Click tracking shows how often the links in each message are clicked. Each link is replaced with a short dv.gt link that carries a code for that message, so you can see which recipients clicked.
Turning it on
Section titled “Turning it on”Set trackClicks when you send a message, or in a batch’s defaults:
{ "sender": "YourBrand", "recipient": "+447700900123", "content": "Hi Sam, your order has shipped. Track it here: https://yourcompany.com/orders/991/tracking", "trackClicks": true}The message is sent as:
Hi Sam, your order has shipped. Track it here: https://dv.gt/aB3xYk7Qp_2Click tracking is off by default. trackClicks: true turns on link shortening too, so you can’t combine it with shortenLinks: false.
Only links starting with http:// or https:// are tracked. A link written as www.yourcompany.com is left as it is.
How it changes your message
Section titled “How it changes your message”Without tracking, a link is only shortened if it is over 20 characters and shortening saves a message part. Otherwise it’s sent as you wrote it.
With tracking, every link is replaced, however short, and each one becomes 25 characters (https://dv.gt/ plus 11 characters). If a link appears twice in a message, each one gets its own code.
So a short link can make your message longer:
| Your link | Characters | Tracked link | Characters |
|---|---|---|---|
https://yourcompany.com/orders/991/tracking | 43 | https://dv.gt/aB3xYk7Qp_2 | 25 |
https://yco.uk | 14 | https://dv.gt/Lm8-pQ2rTz9 | 25 |
A longer message can need more parts, and each part is charged. Leave room for 25 characters per link when you write your content, and check the parts of the message you get back.
Reading the clicks
Section titled “Reading the clicks”GET /v2/sms/{id}/links lists the links in one message and how often each was clicked by its recipient:
{ "data": [ { "url": "https://yourcompany.com/orders/991/tracking", "shortUrl": "https://dv.gt/aB3xYk7Qp_2", "kind": "content", "tracked": true, "clicks": 2, "firstClickedAt": "2026-10-11T09:31:12Z", "lastClickedAt": "2026-10-11T14:02:40Z" } ]}A kind of message_link is the reply or unsubscribe link added to the end of the message. It doesn’t need a code, as it is already unique to the message. A message sent without click tracking has no links listed.
GET /v2/sms/batches/{id}/links adds up the links across a batch. For each link it gives how many messages carried it (messages), how many of those were tracked (trackedMessages), how many were clicked at least once (messagesClicked) and the total clicks.
Figures can be up to a minute old.
What counts as a click
Section titled “What counts as a click”- Every visit counts, so the same recipient opening a link twice is 2 clicks.
- Link previews aren’t counted. Apps like WhatsApp, Slack and Facebook fetch a link to show a preview, and these are ignored.
- If someone changes the code in a link, it still goes to your page but isn’t counted for any message.
Pricing
Section titled “Pricing”Tracking itself is free. Each link is charged as a shortened link, once per day however many messages carry it. With tracking on, every link is shortened, even when it doesn’t save a part.