---
title: Analytics
description: Track and analyze email performance
---

## What you can track

Plunk tracks comprehensive email metrics across all campaigns, workflows, and transactional emails:

**Delivery metrics:**
- Sent, delivered, bounced

**Engagement metrics:**
- Opens, clicks, unsubscribes

**Quality metrics:**
- Open rate, click rate, bounce rate

## Campaign analytics

View detailed performance for specific campaigns:

```bash
curl -X GET {{API_URL}}/campaigns/campaign_id/stats \
  -H "Authorization: Bearer sk_your_secret_key"
```

Response:

```json
{
  "totalRecipients": 5000,
  "sentCount": 5000,
  "deliveredCount": 4980,
  "openedCount": 2100,
  "clickedCount": 450,
  "bouncedCount": 20,
  "unsubscribedCount": 8,
  "openRate": 0.422,
  "clickRate": 0.090,
  "bounceRate": 0.004
}
```

**Metrics update in real-time** as recipients engage.

View detailed analytics in your dashboard to:
- Monitor daily performance trends
- Identify engagement patterns
- Spot deliverability issues
- Compare time periods

## Understanding metrics

### Open rate

**Formula:** (Unique opens / Delivered) × 100

**Industry benchmarks:**
- B2B: 15-25%
- B2C: 20-30%
- E-commerce: 15-20%

**What affects it:**
- Subject line quality
- Sender reputation
- Send timing
- Audience engagement

### Click rate

**Formula:** (Unique clicks / Delivered) × 100

**Industry benchmarks:**
- B2B: 2-5%
- B2C: 3-7%
- E-commerce: 2-4%

**What affects it:**
- Content relevance
- Call-to-action clarity
- Email design
- Link placement

### Bounce rate

**Formula:** (Bounces / Sent) × 100

**Target:** < 2%

**Types:**
- **Hard bounce** — Invalid email, never retry
- **Soft bounce** — Temporary issue, retry later

**High bounce rate causes:**
- Outdated email list
- Invalid addresses
- Domain issues

### Unsubscribe rate

**Formula:** (Unsubscribes / Delivered) × 100

**Target:** < 0.5%

**High unsubscribe causes:**
- Too frequent emails
- Irrelevant content
- Misleading subject lines
- No segmentation

## Improving performance

### Boost open rates

**Write compelling subject lines:**
- Keep under 50 characters
- Create urgency or curiosity
- Personalize with `{{firstName}}`
- A/B test different approaches

**Optimize send timing:**
- Test different days/times
- Segment by timezone
- Avoid weekends (for B2B)
- Consider user behavior

**Build sender reputation:**
- Use custom domain
- Maintain consistent volume
- Keep bounce rate low
- Avoid spam triggers

### Increase click rates

**Clear call-to-action:**
- One primary CTA
- Use buttons, not just links
- Action-oriented text ("Get Started" not "Click Here")
- Make it prominent

**Relevant content:**
- Segment audience
- Personalize messaging
- Match subject line promise
- Keep it focused

**Mobile-responsive:**
- Test on mobile devices
- Use large tap targets
- Single column layout
- Readable font sizes

### Reduce bounce rate

**Clean your list:**
```javascript
// Remove hard bounces immediately
const bounced = await fetch('{{API_URL}}/events?name=email.bounced&limit=1000');

for (const event of bounced.data.events) {
  if (event.data.bounceType === 'hard') {
    await fetch(`{{API_URL}}/contacts/${event.contactId}`, {
      method: 'DELETE',
      headers: { 'Authorization': `Bearer ${apiKey}` }
    });
  }
}
```

**Verify emails:**
- Use email verification service
- Double opt-in for signups
- Remove invalid formats
- Re-engage inactive users before removing

## Next Steps

- [Set up custom domains](/guides/custom-domains) for better deliverability
- [Build segments](/guides/segments) for targeted campaigns
- [Scale your email](/guides/scaling-email) with best practices
