Overview
Open Tracking
1x1 invisible pixel tracks when emails are opened
Click Tracking
Links are rewritten to track clicks before redirecting
Analytics
View open/click rates in dashboard or via API
How It Works
When you send an email with tracking enabled:- A transparent 1x1 pixel image is added to track opens
- All links in the email are rewritten through our tracking servers
- When the recipient opens the email or clicks a link, we record the event
- Events trigger webhooks and are available via the Events API
Open Tracking Pixel
GET
This endpoint serves a 1x1 transparent GIF pixel and records an open event for the email. It’s automatically embedded in emails when open tracking is enabled.
/v1/track/open/:emailIdBehavior
- Records the first open with timestamp in the
opened_atfield - Creates an
email_eventrecord with typeopened - Captures user agent and IP address metadata
- Triggers
email.openedwebhook if configured - Always returns a 1x1 transparent GIF with no-cache headers
Pixel URL
Response Headers
Open tracking relies on image loading, which can be blocked by some email clients. Open rates should be considered a lower-bound estimate.
Click Tracking Redirect
GET
This endpoint records a click event and redirects the user to the original URL. Links are automatically rewritten when click tracking is enabled.
/v1/track/click/:trackingIdQuery Parameters
URL-encoded destination (for broadcast mode)
Optional tracking identifier
Behavior
- Looks up original URL from the tracking ID or uses the
urlquery param - Creates an
email_eventrecord with typeclicked - Captures user agent, IP address, and referer metadata
- Triggers
email.clickedwebhook if configured - Returns 302 redirect to the original destination URL
Tracked Link Example
Response
Enable Tracking When Sending
To enable tracking, include the tracking options when sending an email:Webhook Events
When opens or clicks are tracked, webhooks are triggered:email.opened
email.opened webhook
email.clicked
email.clicked webhook
Controlling Tracking
Via API
Use thetracking object to enable or disable open and click tracking per email:
| Option | Default | Description |
|---|---|---|
tracking.open | true | Enable open tracking (invisible pixel) |
tracking.click | true | Enable click tracking (link rewriting) |
Via SMTP Headers
When using SMTP, add custom headers to control tracking:Broadcast Tracking
When sending broadcast (marketing) emails, tracking is automatically enabled by our infrastructure. No additional configuration is needed — the broadcast worker handles pixel injection and link rewriting for every recipient.How Broadcast Tracking Works
- Open tracking pixel is injected before
</body>in the HTML content - All links in the HTML are rewritten to pass through our click tracking servers
- Each recipient gets a unique
message_idwith abc-prefix (e.g.,bc-a1b2c3d4-...@unosend.co) - The
bid(broadcast ID) query parameter links tracking events back to the broadcast
Broadcast Tracking URLs
Open pixel format:Excluded Links
The following links are not rewritten for click tracking:mailto:linkstel:links- Unsubscribe URLs (
{{unsubscribe_url}}) - Existing tracking pixel URLs
Broadcast Statistics
Open and click events update theopened_at and clicked_at timestamps on each recipient’s broadcast_emails record. The broadcast detail page calculates aggregate stats (open rate, click rate, bounce rate, unsubscribe rate) from these individual records.
Broadcast tracking is always enabled and cannot be disabled per-broadcast. Only the first open and first click per recipient are recorded.