# Campaign reports

> Read a campaign report: every delivery and engagement metric, results by mailbox provider, who loaded and clicked, unsubscribes and the PDF export.

Every campaign that has been scheduled or sent has a report. It shows how many emails were delivered, loaded and clicked, who engaged, who unsubscribed and how each mailbox provider handled the campaign. This page defines every metric and section, and covers the PDF export and the events you can use to build your own reporting.

## Open a report

On **Email Marketing → Campaigns**, select any campaign that isn't a draft. The report has four tabs, **Overview**, **Loads**, **Clicks** and **Unsubscribes**, and these actions at the top:

- **Export report** downloads a PDF. See [Export a PDF report](#export-a-pdf-report).
- **Save as template** saves the content as a new [template](/docs/templates/).
- **Cancel Schedule** for scheduled campaigns. See [Test and schedule](/docs/campaigns/test-and-schedule/#cancel-a-schedule).
- **Archive** for sent campaigns, or **Unarchive** for archived ones.

The metric cards stay visible on every tab. Counts update as deliveries, loads and clicks come in.

## Metrics

While the campaign is **In process**, the cards show **Send progress** with **Sent**, **Delivered**, **Attempted**, **Not processed**, **Bounced**, **Suppressed** and **Complained**. Once it's sent, they show **Sent**, **Loaded**, **Clicked**, **Click-through rate**, **Unsubscribed**, **Bounced**, **Suppressed** and **Complained**.

Each card shows a count and, except for the click-through rate, a percentage of **Sent**.

| Metric | Definition |
| --- | --- |
| **Sent** | Emails created for the campaign, one per recipient, whatever their status. Addresses skipped before sending, because they were unsubscribed or suppressed, aren't included. |
| **Delivered** | Emails accepted by the recipient's mail server. Includes emails that were later loaded or clicked. |
| **Attempted** | Emails whose last delivery attempt failed temporarily. Emailit keeps retrying them for up to about 21 hours before they bounce. |
| **Not processed** | Emails created but not yet handed to delivery. Only non-zero while the campaign is sending. |
| **Bounced** | Emails that failed permanently, for example because the mailbox doesn't exist. |
| **Suppressed** | Emails not delivered because the address was on your [suppression list](/docs/suppressions/) when Emailit tried to deliver it. |
| **Complained** | Emails the recipient reported as spam, as reported back by their mailbox provider. |
| **Loaded** | Emails opened at least once, counted once per email (unique opens). |
| **Clicked** | Emails with at least one tracked link clicked, counted once per email. |
| **Click-through rate** | **Clicked** as a percentage of **Loaded**: the share of opened emails that got a click. |
| **Unsubscribed** | Recipients who unsubscribed with this campaign's unsubscribe link. |

Each email has one status at a time, and it only moves forward, from delivered to loaded to clicked. A bounced, suppressed or complained email keeps that status. See [Email statuses](/docs/logs/email-statuses/).

### Loads and clicks need tracking

**Loaded** and **Clicked** come from tracking pixels and tracked links on your sending domain's tracking subdomain. Campaign emails are tracked automatically when the domain has a verified tracking subdomain. Without one, emails go out untracked and both metrics stay at 0. See [Custom tracking domain](/docs/tracking/custom-tracking-domain/).

Treat loads as an estimate: some email apps block images, so real opens are missed, and some privacy features load images automatically, which records opens that didn't happen.

## Overview tab

### Delivery by provider

This table splits the campaign by the recipient's mailbox provider, based on the domain of each address:

| Provider | Addresses |
| --- | --- |
| **Gmail** | `gmail.com`, `googlemail.com` |
| **Outlook** | `outlook.com` |
| **Live** | `live.com` |
| **Hotmail** | `hotmail.com` |
| **Yahoo** | `yahoo.com`, other `yahoo.` domains, `ymail.com`, `rocketmail.com` |
| **iCloud** | `icloud.com`, `me.com`, `mac.com` |
| **Other** | Every other domain, including company domains and Google Workspace or Microsoft 365 mailboxes on custom domains |

For each provider it shows **Sent** (with its share of the campaign), **Delivered**, **Loaded**, **Clicked** and **Bounced** (each as a share of that provider's sent emails). Providers without sends aren't listed. A provider with a much lower delivered rate or higher bounce rate than the rest points to a deliverability problem with that provider. See [Deliverability best practices](/docs/deliverability/best-practices/).

### Content and details

The **Content** card shows the campaign as sent, with tabs for **HTML**, **Text** and **Source**. Next to it are the **Subject**, the **Status** and the time the campaign was **Sent** (**Started** while it's sending, or **Scheduled** for a scheduled campaign).

## Loads tab

The **Loads** tab shows **Unique loads** and **Total opens**, and lists each recipient who loaded the email with **Email**, **First name**, **Last name**, **Total opens**, **IP address**, **First Opened** and **Last Opened**. Search by email address, or filter by email and date.

## Clicks tab

The **Clicks** tab shows **Total Links**, **Unique Clickers** and **Total Clicks**, and lists every tracked link with its **URL**, **Unique clicks**, **Total clicks**, **First Click** and **Last Click**.

Select **View Clickers** on a link to see who clicked it: **Email**, **Total clicks**, **IP address**, **First click** and **Last click** for each recipient.

## Unsubscribes tab

The **Unsubscribes** tab lists recipients who unsubscribed with this campaign's link, with **Email**, **First name**, **Last name**, **Reason**, **IP address** and **Unsubscribed At**. Search it, or filter by reason or date. The reason, when one was recorded, shows as **Manual**, **Unsubscribe Link** or **Complaint**.

Unsubscribes you make yourself in the dashboard or API aren't linked to a campaign and don't appear here. See [Unsubscribes](/docs/audiences/unsubscribes/).

## Export a PDF report

1. **Open the export.** On the campaign page, select **Export report**.

2. **Set the filters.** Under **Filters**, pick a **Date range** (**All time**, **Last 7 days**, **Last 30 days** or **Last 90 days**) and optionally a **Status**: delivered, loaded, clicked, bounced, failed, rejected, suppressed or complained. The preview on the right updates as you change them.

3. **Download.** Select **Generate report**. Your browser downloads the PDF.

The report includes:

- The campaign name, subject, status, the date range and status filter you chose, and when the report was generated.
- **Overview** counts: sent, delivered, loaded, clicked, bounced and unsubscribed.
- **Result rates**: **Delivery rate**, **Load rate**, **Click rate**, **Bounce rate** and **Unsubscribe rate**, each as a share of sent emails.
- An **Engagement funnel** from sent to delivered, loaded and clicked.
- **Loads**, **Clicks** and **Top links**.
- **Unsubscribe reasons**.

The filters apply to the overview counts and rates, based on when each email was created. Load, click and unsubscribe details always cover the whole campaign.

## Events and webhooks

Campaign statistics aren't available through the API. To build your own reporting, use events:

- **Campaign status:** `campaign.created`, `campaign.updated`, `campaign.scheduled`, `campaign.queued`, `campaign.sending`, `campaign.sent`, `campaign.canceled`, `campaign.archived` and `campaign.deleted`. Their payload includes the campaign's `id`, `name`, `status`, `subject`, `from_email`, `from_name`, `scheduled_at`, `sent_at` and, for changes, `previous_status`.
- **Per recipient:** every campaign email produces the usual email events, such as [`email.delivered`](/docs/webhooks/events/email/delivered/), [`email.bounced`](/docs/webhooks/events/email/bounced/), [`email.loaded`](/docs/webhooks/events/email/loaded/) and [`email.clicked`](/docs/webhooks/events/email/clicked/). Load and click events include the campaign in `email.campaign`, so you can group them by campaign.
- **Unsubscribes:** `email.unsubscribed` and `email.resubscribed` when recipients use the unsubscribe link.

Receive them with [webhooks](/docs/webhooks/), or read them from the [Events API](/docs/api-reference/events/). See [Event types](/docs/webhooks/event-types/) for every event. On the Business plan, [Queryable analytics](/docs/analytics/queryable/) can also group sends, bounces, loads and clicks by campaign.

## Related

  - [Bounces and complaints](/docs/deliverability/bounces-and-complaints/): Why emails bounce and how complaints are handled.
  - [Sending health](/docs/deliverability/sending-health/): How bounce rates affect your workspace.

---
Source: https://emailit.com/docs/campaigns/reports/
