# Open and click tracking

> Per-domain open and click tracking: how the open pixel and link rewriting work, and how events surface.

Each domain has two independent tracking toggles — **open tracking** and **click tracking** — stored on the domain and applied to mail sent from it. API-created domains default to **open tracking off** and **click tracking on**; the dashboard asks for both explicitly. Toggle either setting in the dashboard or with [`PATCH /domains/:id`](https://www.sendping.co/docs/api/domains-update) (`open_tracking`, `click_tracking`).

## Open tracking

When open tracking is on, SendPing embeds a **1×1 transparent pixel GIF** in the HTML body, with a unique reference to the email. A request for that image records an `opened` event. This identifies the tracked message, but does not prove that a person read it: image proxies and privacy tools may request the pixel automatically.

## Click tracking

When click tracking is on, SendPing rewrites eligible HTTP and HTTPS links through a redirect. A request to that redirect records a `clicked` event with the destination URL, then continues to the original destination. Non-web links such as `mailto:`, unsubscribe and preference links, and links already wrapped by the tracker are excluded. Automated link scanners can also generate requests.

## Custom tracking subdomain

By default the rewritten links and open pixel point at a SendPing-hosted tracking host. You can instead serve them from a **custom subdomain on your own domain** so tracked links stay on-brand. Set `tracking_subdomain` with [`PATCH /domains/:id`](https://www.sendping.co/docs/api/domains-update) (for example `links`, which produces a CNAME for `links.yourdomain.com`); providing it implicitly turns on `custom_tracking`.

- Choose an unused subdomain, such as `links`, and confirm that it does not conflict with an existing website or DNS record.
- After setting it, publish the **Tracking CNAME** record SendPing returns and let it verify; until then links use SendPing's shared tracking host.
- You can change the subdomain or switch off `custom_tracking` for new messages. SendPing retains previous tracking host bindings and record entries for already-sent links; keep the corresponding DNS records in your DNS provider while those links need to work. Deleting the sending domain is a separate action.

## How events surface

Open and click events appear in two places:

- In the **per-email log** — part of the event timeline you can view in the dashboard or fetch with [`GET /emails/:id`](https://www.sendping.co/docs/logs/overview).
- In your **webhooks** — `opened` and `clicked` events are delivered to your configured webhook endpoints alongside delivery, bounce, and complaint events.

> **Warning:** Engagement tracking is **approximate**. Image-proxying and privacy features can inflate opens, blocked images can undercount them, and link scanners can inflate clicks. Use these events as directional signals alongside meaningful activity in your application.
