Skip to content

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.

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_2

Click 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.

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 linkCharactersTracked linkCharacters
https://yourcompany.com/orders/991/tracking43https://dv.gt/aB3xYk7Qp_225
https://yco.uk14https://dv.gt/Lm8-pQ2rTz925

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.

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.

  • 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.

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.