Skip to content

Open and click tracking

Open and click tracking is an automatic feature available in campaigns (bulk). When you send a campaign with HTML content, MailerDash injects a tracking pixel and rewrites links to capture recipient interactions.

Tracking does not apply to transactional sends (POST /v1/mail/send).


At send time, MailerDash inserts an invisible 1×1px pixel at the end of the HTML <body> (or at the end of the content if there is no <body>):

<img src="https://track.mailerdash.com/o/<token>" width="1" height="1"
alt="" style="display:none;border:0;width:1px;height:1px;">

When the email client loads the image, an open is recorded and associated with that send and contact.

All <a href="..."> elements in the HTML that point to http:// or https:// URLs are rewritten to pass through the tracking domain:

<!-- Before -->
<a href="https://mi-app.com/promo">Ver oferta</a>
<!-- After sending -->
<a href="https://track.mailerdash.com/c/<token>">Ver oferta</a>

The redirect captures the click and sends the recipient to the original URL in under a second.

Links that are not rewritten:

  • mailto:, tel:, javascript:, anchors (#sección)
  • Unresolved placeholders ({{variable}})
  • The List-Unsubscribe and One-Click unsubscribe link
  • URLs that already point to the tracking domain

Ventana de terminal
GET /v1/bulk/campaigns/{id}/analytics
Authorization: Bearer $MAILERDASH_API_KEY

Response (summary):

{
"campaign_id": "camp_abc123",
"delivered": 1250,
"opens_unique": 342,
"opens_total": 489,
"clicks_unique": 118,
"clicks_total": 201,
"bounces": 12,
"complaints": 2,
"unsubs": 5,
"rates": {
"open": 0.2736,
"ctr": 0.0944,
"ctor": 0.3450,
"bounce": 0.0096,
"complaint": 0.0016,
"unsub": 0.0040
},
"top_links": [...],
"timeline": [...],
"detail_window_days": 90
}

Also append ?format=csv to export per-recipient detail with columns email, status, sent_at, first_opened_at, first_clicked_at.

Ventana de terminal
GET /v1/bulk/analytics/rates?period=7d

period accepts 24h, 7d, or 30d. Returns consolidated metrics for all campaigns on your key within that window.

Ventana de terminal
GET /v1/bulk/contacts/{email}/engagement

Returns the interaction history (opens, clicks, bounces, complaints, unsubscribes) for a specific contact, useful for segmentation and deliverability diagnostics.


MetricMeaning
opens_uniqueNumber of distinct contacts who opened at least once
opens_totalTotal opens (includes multiple opens from the same contact)
clicks_uniqueDistinct contacts who clicked at least one link
clicks_totalTotal clicks (includes repeated clicks and clicks on multiple links)

For calculating open rates, always use opens_unique / delivered; opens_total is useful for measuring deep engagement (if a contact opens the email multiple times).


The detail_window_days: 90 field indicates that individual open/click events (detailed per-recipient timeline) are kept for 90 days. Aggregated campaign counters are retained indefinitely.


See the full bulk endpoint reference at /reference/bulk/.