Skip to content

Email analytics and tracking

Opens, clicks, bounces, and complaints recorded in real time. Per-email, per-broadcast, per-domain, and per-ISP analytics with exportable reports.

Real-time dashboard

A live dashboard covering delivery, open, click, bounce, and complaint rates across every domain, broadcast, and API key. Exportable as CSV and JSON.

Open and click tracking

Pixel-based open tracking and link-wrapped click tracking, both opt-in per email. Geo and device data is included and never shared with third parties.

Webhook events for custom pipelines

Pipe every tracking event into your data warehouse, product analytics, or CDP over webhooks. Raw events are HMAC-signed and include the full message context.

Send with tracking enabled

typescript
await poststack.emails.send({
  from: 'hello@yourdomain.com',
  to: 'user@example.com',
  subject: 'Your weekly report',
  html: '<h1>Weekly Report</h1><a href="https://app.example.com">View Dashboard</a>',
  tracking: {
    opens: true,
    clicks: true,
  },
});

Use cases

Per-campaign engagement breakdown

Filter analytics by broadcast, domain, template, tag, or API key. Compare open and click rates across campaigns to learn what subject lines and content work for your audience.

Deliverability monitoring

Watch bounce rate, complaint rate, and ISP-level placement (Gmail, Outlook, Yahoo) on a live dashboard. Catch reputation issues before they escalate into blocklists or throttling.

A/B test result analysis

Side-by-side variant performance with statistical-significance indicators. Pick the winning subject line or template variant with confidence, not guesswork.

Compliance-friendly tracking

Open and click tracking are opt-in per send. PostStack does not share tracking data with third parties, hosts the tracking pixel on your own subdomain, and gives you a one-call kill-switch to turn tracking off across the account.

How it works

Every email event — queued, sent, delivered, bounced, opened, clicked, complained, unsubscribed — is captured with millisecond precision and stored in the EU. Opens are tracked via a 1×1 pixel that loads when the recipient renders the email; modern privacy proxies (Apple Mail Privacy Protection, ProtonMail) cache that fetch so opens are an aggregate signal rather than a per-recipient ground truth, and we surface that caveat explicitly in the docs. Clicks are tracked by link-wrapping: PostStack rewrites outbound links to `/c/:linkId`, records the click with user-agent and geo (country-level only, no precise IP retention), and 302-redirects to the original URL within milliseconds. Geo is derived from IP at the moment of the click and immediately discarded — only country and region are stored. The dashboard surfaces per-link click maps so you can see which CTA actually converted in a broadcast. Engagement metrics are exportable as CSV for any date range and any filter. Raw events are queryable via the API with cursor pagination, so you can backfill an analytics warehouse in one shot. Tracking is configurable per-send (`tracking.opens`, `tracking.clicks`) and at the domain level (set defaults, e.g. clicks-only). Every tracked email includes a footer indicator and a tracking-disabled-link option for users who want full control.

Frequently asked questions

How are opens tracked?

A 1×1 tracking pixel is injected at the bottom of the HTML body. When the recipient renders the email, the pixel fetches from PostStack and we record an `email.opened` event. Apple Mail Privacy Protection and similar proxies pre-fetch this image, so opens are best treated as an aggregate trend rather than a per-recipient ground truth.

How are clicks tracked?

Outbound links in the HTML body are rewritten to `/c/:linkId` on PostStack. When a recipient clicks, we record the click and 302-redirect to the original URL within milliseconds. The recipient experience is unchanged.

What about privacy?

Tracking is opt-in per send. We store country-level geo only (not precise IP), keep all tracking data inside the EU, and never share it with third parties. You can disable tracking globally at the domain level or per-send.

Can I export raw events?

Yes. Use the events API with cursor pagination to backfill your warehouse, or export aggregated CSV from the dashboard. Webhooks stream events in real-time as an alternative.

Do you track unsubscribes and bounces?

Yes — every unsubscribe and bounce is recorded with reason codes. Hard bounces and complaints automatically add the address to your suppression list. Soft bounces are retried with exponential backoff.

Related features

Ready to start sending?

Free plan includes 3,000 emails/month. No credit card required.