Send.dev provides comprehensive email tracking to help you understand how recipients interact with your emails. Track opens, clicks, bounces, and more.

Tracking Overview

MetricDescriptionHow It Works
OpensWhen recipients open your emailInvisible tracking pixel
ClicksWhen recipients click linksLink wrapping and redirects
BouncesFailed deliveriesBounce notifications from mail servers
ComplaintsSpam reportsFeedback loops from ISPs

Enabling Tracking

By default, both open and click tracking are enabled. You can control this per-email:

{
  "from": "hello@mail.yourdomain.com",
  "to": "user@example.com",
  "subject": "Welcome!",
  "html": "<p>Welcome to our platform!</p>",
  "track_opens": true,
  "track_clicks": true
}

Plain Text Limitations

Open tracking requires HTML emails. Plain text emails cannot be tracked for opens.

Open Tracking

Open tracking works by inserting a tiny, invisible image (tracking pixel) into your HTML email. When the recipient's email client loads the image, an open is recorded.

Limitations

  • Image blocking: Some email clients block images by default
  • Preview panes: May trigger opens without full engagement
  • Privacy features: Apple Mail Privacy Protection hides opens
  • Plain text: Not available for plain text emails

Best Practices

  • Use open rates as a trend indicator, not an exact metric
  • Compare opens over time rather than relying on absolute numbers
  • Consider open tracking as one of many engagement signals

Click Tracking

Click tracking works by wrapping links in your email with Send.dev tracking URLs. When clicked, we record the click and redirect to the original URL.

Example

Original link in your email:

<a href="https://yourdomain.com/welcome">Get Started</a>

Transformed for tracking:

<a href="https://track.send.dev/c/abc123...">Get Started</a>

When clicked:

  1. Request hits Send.dev tracking server
  2. Click is recorded with timestamp and metadata
  3. User is instantly redirected to original URL

Each tracked click includes:

  • Original URL
  • Click timestamp
  • User agent (browser/device info)
  • Approximate location (from IP)
  • Click count per link

Viewing Tracking Data

Via API

curl https://api.send.dev/v1/emails/email_01HXYZ123456789 \
  -H "Authorization: Bearer sk_live_your_api_key"
200Email with tracking data
{
"id": "email_01HXYZ123456789",
"status": "delivered",
"from": "hello@mail.yourdomain.com",
"to": "user@example.com",
"subject": "Welcome!",
"created_at": "2025-01-13T10:30:00Z",
"delivered_at": "2025-01-13T10:30:03Z",
"opened_at": "2025-01-13T10:35:00Z",
"opened_count": 3,
"clicked_at": "2025-01-13T10:36:00Z",
"clicked_count": 2,
"clicks": [
  {
    "url": "https://yourdomain.com/welcome",
    "count": 2,
    "first_at": "2025-01-13T10:36:00Z",
    "last_at": "2025-01-13T10:45:00Z"
  }
],
"tracking": {
  "opens_enabled": true,
  "clicks_enabled": true
}
}

Via Dashboard

  1. Go to Emails in your dashboard
  2. Click on any email to view details
  3. See opens, clicks, and engagement timeline

Delivery Statuses

Track the full lifecycle of each email:

StatusDescriptionWebhook Event
queuedEmail accepted, waiting to send-
sendingBeing sent to mail server-
sentHanded off to receiving serveremail.sent
deliveredConfirmed in recipient's inboxemail.delivered
openedRecipient opened the emailemail.opened
clickedRecipient clicked a linkemail.clicked
bouncedDelivery failedemail.bounced
complainedMarked as spamemail.complained

Bounce Types

TypeDescriptionAction
Hard bouncePermanent failure (invalid address)Remove from list
Soft bounceTemporary failure (full mailbox)Retry later

Bounce Response

{
  "id": "email_01HXYZ123456789",
  "status": "bounced",
  "bounce": {
    "type": "hard",
    "code": "550",
    "message": "User unknown",
    "diagnostic": "550 5.1.1 The email account does not exist",
    "bounced_at": "2025-01-13T10:30:05Z"
  }
}

Spam Complaints

When a recipient marks your email as spam, major ISPs notify us through feedback loops. Complaints are serious and affect your sender reputation.

{
  "id": "email_01HXYZ123456789",
  "status": "complained",
  "complaint": {
    "feedback_type": "abuse",
    "complained_at": "2025-01-13T12:00:00Z"
  }
}

Handle Complaints

Always remove complaining recipients from your lists immediately. High complaint rates can result in account suspension.

Privacy Considerations

Apple Mail Privacy Protection

Apple Mail Privacy Protection (iOS 15+, macOS Monterey+) pre-fetches tracking pixels, which can:

  • Inflate open rates
  • Make open times inaccurate
  • Mask actual user engagement

Recommendations:

  • Don't rely solely on open rates
  • Use click tracking for more accurate engagement data
  • Look at reply rates and conversions

GDPR and Privacy

  • Tracking data is personal data under GDPR
  • Include tracking disclosure in your privacy policy
  • Provide opt-out mechanisms where required
  • Consider offering tracking-free options for privacy-conscious users

Disabling Tracking

For sensitive emails where tracking is inappropriate:

{
  "from": "legal@mail.yourdomain.com",
  "to": "customer@example.com",
  "subject": "Legal Notice",
  "html": "<p>Important legal information...</p>",
  "track_opens": false,
  "track_clicks": false
}

Use cases for disabling tracking:

  • Legal/compliance communications
  • Password reset emails
  • Privacy-sensitive content
  • Regulated industries (healthcare, finance)

Analytics Dashboard

Your Send.dev dashboard provides aggregate analytics:

  • Delivery rate: Percentage delivered vs. sent
  • Open rate: Percentage opened vs. delivered
  • Click rate: Percentage clicked vs. delivered
  • Bounce rate: Percentage bounced vs. sent
  • Complaint rate: Percentage complained vs. delivered

Monitor these metrics regularly to maintain healthy sender reputation.

On this page