TrackPost provides comprehensive email tracking so you can monitor engagement, delivery, and performance in real-time.
Table of Contents
What Can You Track?
Engagement Metrics
- Opens - When recipients open your emails
- Clicks - When recipients click links in your emails
- Open Rate - Percentage of delivered emails opened
- Click Rate - Percentage of opens that clicked
- Click-to-Open Rate - Clicks per unique open
Delivery Metrics
- Sent - Emails successfully queued
- Delivered - Emails successfully delivered to recipient server
- Bounced - Emails that couldn’t be delivered
- Complained - Emails marked as spam
- Delivery Rate - Percentage of sent emails delivered
Email Events
| Event | Description | Trigger |
|---|---|---|
sent | Email queued for delivery | When you call send API |
delivered | Email delivered to recipient | When recipient server accepts |
opened | Recipient opened email | When tracking pixel loads |
clicked | Recipient clicked link | When tracked link clicked |
bounced | Email bounced | Hard or soft bounce from recipient |
complained | Marked as spam | When recipient clicks “spam” |
dropped | Email not sent | Due to suppression or invalid address |
Enabling Tracking
Default Settings
By default, all emails have tracking enabled:
{
"track_opens": true,
"track_clicks": true
}
Disable Tracking
For privacy-sensitive emails, disable tracking:
curl -X POST https://api.trackpost.de/v1/emails \
-H "Authorization: Bearer tp_live_your_key" \
-d '{
"to": "[email protected]",
"from": "[email protected]",
"subject": "Confidential",
"html": "<p>Private message</p>",
"track_opens": false,
"track_clicks": false
}'
Disable Click Tracking Only
Keep open tracking but disable link tracking:
{
"track_opens": true,
"track_clicks": false
}
How Tracking Works
Open Tracking
TrackPost adds an invisible 1x1 pixel image to HTML emails:
<img src="https://api.trackpost.de/v1/track/open/abc123"
width="1" height="1" alt="" />
When the email client loads this image, we record an open.
Info
Open Tracking Limitations:
- Only works in HTML emails
- Blocked by some email clients (Apple Mail privacy, Outlook)
- Requires images to be loaded by recipient
- Counts multiple opens from same recipient
Click Tracking
TrackPost replaces links with tracking URLs:
Original:
<a href="https://yourapp.com/dashboard">Go to Dashboard</a>
With Tracking:
<a href="https://api.trackpost.de/v1/track/click/abc123?url=https%3A%2F%2Fyourapp.com%2Fdashboard">
Go to Dashboard
</a>
When clicked, we redirect to your URL and record the click.
Disable tracking for specific links:
<a href="https://yourapp.com/unsubscribe" data-track="false">Unsubscribe</a>
Viewing Analytics
Dashboard
- Log in to TrackPost Dashboard
- Navigate to Analytics
Dashboard Sections:
- Overview - Key metrics at a glance
- Emails - List of all emails with status
- Templates - Performance by template
- Domains - Metrics by sending domain
- Exports - Download detailed reports
Metrics Available
Overview Cards:
- Total emails sent (this month)
- Delivery rate
- Open rate
- Click rate
- Bounce rate
- Complaint rate
Charts:
- Emails over time (daily/weekly/monthly)
- Open rates by template
- Click rates by link
- Geographic distribution
- Device/client breakdown
Email Details
Click any email to see:
{
"id": "msg_abc123",
"to": "[email protected]",
"subject": "Welcome!",
"status": "delivered",
"sent_at": "2025-01-15T10:30:00Z",
"delivered_at": "2025-01-15T10:30:02Z",
"opened_at": "2025-01-15T10:35:15Z",
"opens_count": 3,
"clicks": [
{
"url": "https://yourapp.com/activate",
"clicked_at": "2025-01-15T10:36:20Z",
"ip": "192.168.1.1",
"user_agent": "Mozilla/5.0..."
}
],
"bounce_reason": null,
"complaint_feedback": null
}
API Analytics
Get Email Stats
curl "https://api.trackpost.de/v1/analytics/emails?from_date=2025-01-01&to_date=2025-01-31" \
-H "Authorization: Bearer tp_live_your_key"
Response:
{
"success": true,
"data": {
"total": {
"sent": 15000,
"delivered": 14850,
"bounced": 120,
"complained": 30,
"opened": 6500,
"clicked": 2100
},
"rates": {
"delivery_rate": 99.0,
"open_rate": 43.8,
"click_rate": 32.3,
"bounce_rate": 0.8,
"complaint_rate": 0.2
},
"by_date": [
{
"date": "2025-01-15",
"sent": 500,
"delivered": 495,
"opened": 220,
"clicked": 70
}
],
"by_template": [
{
"template_id": "welcome_email",
"template_name": "Welcome Email",
"sent": 5000,
"open_rate": 65.2,
"click_rate": 45.3
}
]
}
}
Get Template Performance
curl "https://api.trackpost.de/v1/analytics/templates/welcome_email" \
-H "Authorization: Bearer tp_live_your_key"
Export Data
# CSV export
curl "https://api.trackpost.de/v1/analytics/export?format=csv&from_date=2025-01-01" \
-H "Authorization: Bearer tp_live_your_key" \
--output analytics.csv
Understanding Metrics
Benchmarks
Industry Averages for Transactional Emails:
| Metric | Good | Excellent |
|---|---|---|
| Delivery Rate | > 97% | > 99% |
| Open Rate | > 40% | > 60% |
| Click Rate | > 10% | > 20% |
| Bounce Rate | < 2% | < 1% |
| Complaint Rate | < 0.1% | < 0.05% |
By Email Type:
| Type | Open Rate | Click Rate |
|---|---|---|
| Welcome emails | 50-70% | 20-40% |
| Order confirmations | 60-80% | 30-50% |
| Password resets | 70-90% | 50-70% |
| Notifications | 30-50% | 5-15% |
| Newsletters | 20-40% | 2-5% |
Interpreting Your Data
High Open Rate, Low Click Rate:
- Subject line is good (opens)
- Content or CTA needs improvement (clicks)
Low Open Rate:
- Subject lines need work
- Sender name not recognizable
- Emails going to spam/promotions
High Bounce Rate:
- List quality issues
- Need email verification
- Check for typos in addresses
High Complaint Rate:
- Unwanted emails
- Poor unsubscribe process
- Mismatch with expectations
Advanced Analytics
Link Click Analysis
TrackPost shows which links get clicked:
{
"links": [
{
"url": "https://yourapp.com/dashboard",
"clicks": 150,
"unique_clicks": 120
},
{
"url": "https://yourapp.com/settings",
"clicks": 45,
"unique_clicks": 40
}
]
}
Use cases:
- A/B test different CTAs
- Optimize link placement
- Remove underperforming links
Geographic Data
See where opens and clicks come from:
{
"geography": {
"US": { "opens": 3500, "clicks": 1200 },
"UK": { "opens": 800, "clicks": 250 },
"DE": { "opens": 600, "clicks": 180 }
}
}
Device/Client Breakdown
Understand how recipients view emails:
{
"clients": {
"Gmail": 45,
"Apple Mail": 25,
"Outlook": 15,
"Yahoo": 8,
"Other": 7
},
"devices": {
"Mobile": 60,
"Desktop": 35,
"Web": 5
}
}
Best Practices
- Monitor Regularly - Check analytics weekly
- Set Baselines - Establish your normal rates
- Investigate Anomalies - Sudden drops need attention
- A/B Test - Test subject lines, content, CTAs
- Segment Analysis - Compare different user groups
- Act on Bounces - Clean your lists regularly
- Review Complaints - Understand why users mark spam
Troubleshooting
Tracking Not Working
Open tracking:
- Check
track_opensis set totrue - Email must be HTML (not plain text)
- Some clients block tracking pixels by default
Click tracking:
- Check
track_clicksis set totrue - Links must be valid URLs
- Some security tools may strip tracking
Discrepancies
Opens higher than deliveries:
- Multiple opens by same user
- Forwards to other people
- Preview pane opens
Clicks higher than opens:
- Some clients don’t load images (no open tracked)
- But links still work
Dashboard different from webhooks:
- Timing differences (webhooks are real-time)
- Webhook processing delays on your end
Exporting Data
Scheduled Reports
Set up automated report delivery:
- Dashboard → Analytics → Reports
- Click New Report
- Configure:
- Frequency (daily, weekly, monthly)
- Metrics to include
- Recipients
- Format (CSV, PDF, JSON)
- Click Create Report
API Integration
Pull analytics into your own systems:
// Fetch daily stats
const stats = await fetch(
'https://api.trackpost.de/v1/analytics/emails?' +
'from_date=' + yesterday +
'&to_date=' + today,
{
headers: { 'Authorization': 'Bearer ' + apiKey }
}
);
// Store in your database
await db.analytics.insert(stats);
Next Steps
- Webhooks - Get real-time event notifications
- Templates - Optimize template performance
- API Reference - Full analytics API
- Deliverability - Improve your metrics