# Campaign results

Review delivery and engagement, inspect recipient outcomes and compare campaign conversions.

Use a campaign's report to see who it reached, what happened to each message and which conversions followed. Email and push have separate results because the channels measure delivery and engagement differently.

## Open a campaign's report

Go to **Campaigns** and open a campaign that is sending or sent. While it's sending, the page updates every 15 seconds. Opens, clicks and conversions keep arriving after the send finishes.

The report has these tabs:

- **Overview**: headline numbers, each channel's results and charts
- **Recipients**: what happened to each person
- one tab for each channel's content, showing exactly what was sent

## Headline numbers

- **Recipients**: people the campaign was sent to
- **Messages**: shown when the campaign used both email and push
- **Delivered**: email accepted by the recipient's mail server
- **Bounced or failed**: messages that couldn't be delivered, including spam complaints

## Email results

- **Delivered**, **Opened** and **Clicked**, with rates as a share of delivered email
- **Unsubscribed**
- **Top clicked links**: links are grouped without their query string, so a personalised link counts once

**Performance over time** charts opens and clicks hour by hour for the first 72 hours, or day by day. **Delivery outcomes** shows every recipient's latest status once, with what it means.

> **Note:** Contacts in the EEA and the UK are never tracked, and the owner can turn tracking off. Their opens and clicks read zero, which doesn't mean they ignored your email.

## Push results

Push services confirm they've accepted a notification, but not that anyone saw it. So push has no "delivered" figure.

- **Devices reached**: devices whose push service accepted the notification. One contact with a phone and a laptop counts as one recipient and two devices.
- **Device outcomes**: accepted, invalid or rejected, split by platform
- **Opened** and **Clicked**, as your app or website reports them

If your push opens and clicks stay empty, ask your developer to report them. See [Set up push](/docs/guides/getting-started/set-up-push).

## Recipients

The **Recipients** tab lists each person with their **Status**, **Engagement**, when it was sent and delivered, and the provider's response. Use **Find by email**, or filter by status and engagement, for example **Not opened**. For push, choose **Devices** to see each device's outcome.

If people were skipped, **Why messages were skipped** explains it, for example missing consent, suppression or message limits.

## Conversion goals

A conversion goal counts what people did after receiving the campaign, such as placing an order. It can also add up the revenue.

1. On the campaign's page, find **Conversion goals** and choose **Add goal**.
2. Choose the **Event** that counts, for example *Order Completed*.
3. Set **Counts within**: how many days after the message an event still counts (1 to 3,650).
4. Optionally, set a **Revenue property**, such as `total`, and a **Currency**, such as `USD`.
5. Choose **Add goal**.

The report then shows **Conversions**, the share of recipients who **Converted**, and **Revenue**. Amounts in other currencies are counted as conversions without their value.

> **Note:** A goal only counts events from when it's added. Add goals before you send.

Events come from your app or store (a developer can send them, see the [API quickstart](/docs/api/quickstart)), or from a [connected payment provider](/docs/guides/integrations/connect-an-integration).

## Compare campaigns

On **Campaigns**, choose **Compare campaigns** to see every campaign sent in a period side by side. You'll see emails sent, open, click, bounce and unsubscribe rates, push sent, conversions and revenue. Use **Sort by** to rank them, for example by **Highest click rate** or **Most conversions**, and export the table as a CSV.

Workspace-wide totals for all your campaigns and journeys are on the **Overview** page.

## Receive results in your own tools

To get delivery, open, click and unsubscribe events in another system as they happen, a developer can set up webhooks. See [Webhooks](/docs/api/webhooks).