Questions? Email [email protected] · All prices are one-time unless stated otherwise
D
Datapad Projects
Newsletter

Tracking & Analytics

CampaignCanvas tracks opens and clicks out of the box, rolls the data up into per-campaign analytics, and feeds a workspace-wide dashboard. No external analytics tools required.

Open tracking

Open tracking uses a transparent 1x1 pixel GIF inserted at the end of the rendered HTML body. When a recipient’s mail client loads the image, the tracking endpoint records an open event.

How it works

  • Each campaign recipient gets a unique tracking token. The pixel URL carries that token plus the recipient ID.
  • Invalid tokens (e.g. from forwarded emails with rewritten URLs) silently fail — never leaking an error to the client.
  • Cache headers force mail clients to re-fetch the pixel on every view, so repeat opens can be counted if your rate-limit rules allow it.
  • Each open records the user agent, IP address, and timestamp on aCampaignEvent of type Opened.

Caveats

Open tracking is inherently imperfect:

  • Image blocking— many mail clients block remote images by default. These opens are invisible.
  • Privacy proxies— Apple’s Mail Privacy Protection pre-fetches images on a shielded relay. This inflates open counts because every recipient appears to open immediately, regardless of whether they read the email.
  • Plain-text-only clients— some mail apps render only the plain-text part, never loading the pixel.

Treat open rate as a directional signal, not an absolute truth. Click rate is a more reliable engagement metric.

Disabling

Each campaign has a Track Opens toggle. Turn it off for high-sensitivity sends (legal notices, transactional follow-ups) where open-tracking pixels would be inappropriate.

Click tracking

Click tracking rewrites every clickable http(s) link in the rendered email to route through a tracking endpoint. When the recipient clicks, the endpoint records the event and 302-redirects to the original destination.

What gets rewritten

  • Yes — absolute http:// and https:// links in the body
  • Nomailto: and tel: links
  • No — in-page anchors (#section)
  • No— the unsubscribe link (always preserved intact)

Event data

Each click records:

  • The campaign and recipient
  • The original URL
  • User agent and IP address
  • Timestamp

URL deduplication

Identical URLs appearing multiple times in a single campaign are rolled up under one link identifier. This gives you clean “URL X got N clicks” reporting, even if the URL appears in a header, a body CTA, and a footer link.

Disabling

Each campaign has a Track Clicks toggle. Disable this for transactional or deliverability-sensitive sends where link rewriting might trip spam filters or confuse authenticated branded URLs.

UTM parameters

Each campaign has optional UTM fields:

ParameterTypical value
utm_sourcenewsletter
utm_mediumemail
utm_campaign2026-04-spring-launch
utm_termOptional free-text identifier
utm_contentOptional free-text identifier

Merging behaviour

When a recipient clicks a tracked link, the click endpoint merges the campaign’s UTM parameters into the destination URL only where the author hasn’t already set them. This means:

  • A clean link like https://example.com/product gets the campaign-level UTM applied
  • A pre-tagged link like https://example.com/product?utm_source=email&utm_campaign=custom keeps its author-provided parameters

This gives you consistent Google Analytics or Plausible attribution without rewriting the blocks for every campaign.

Bounces & complaints

When your email service provider (SendGrid, Postmark, Mailgun, Resend) sends CampaignCanvas a webhook reporting a bounce or complaint, the event is recorded against the recipient and the subscriber’s bounce counters are updated.

Hard vs soft bounces

TypeTypical causeAction taken
Hard bounceInvalid address, blocked by receiving server, mailbox doesn’t existCounter incremented. After the configured threshold (default 3) the address is automatically added to the suppression list.
Soft bounceFull mailbox, temporary DNS issue, greylistingCounter incremented. No automatic suppression — these are transient.
ComplaintRecipient clicked “mark as spam” in their mail clientImmediate suppression — complaints are a hard signal that the subscriber does not want to hear from you.

Event catalogue

Campaign events come in these types:

  • Sent — dispatched to the ESP
  • Delivered— ESP confirms delivery to the recipient’s inbox provider
  • Opened — tracking pixel fired
  • Clicked — click endpoint hit
  • Bounced, HardBounced, SoftBounced— bounce webhooks from the ESP
  • Complained — spam complaint webhook
  • Unsubscribed— subscriber unsubscribed from the campaign’s target list

Campaign analytics

Each campaign has an Analytics tab that computes metrics live from event data.

Metrics

MetricDefinition
RecipientsTotal unique subscribers targeted
SentDispatched to the ESP
DeliveredESP-confirmed delivery
OpenedTotal opens, counting repeat opens
Unique opensNumber of unique recipients who opened at least once
ClickedTotal clicks, counting repeats
Unique clicksNumber of unique recipients who clicked at least once
BouncedTotal bounces, split by hard vs soft
ComplainedSpam complaints
UnsubscribedUnsubscribes triggered from this campaign’s emails

Derived rates

RateFormula
Open rateunique opens ÷ sent
Click-through rate (CTR)unique clicks ÷ sent
Click-to-open rateunique clicks ÷ unique opens

Top links

The Top Links panel shows the 10 most-clicked URLs in the campaign with both total and unique click counts. Useful for identifying the CTA your subscribers actually engage with.

Daily timeline

A chart of (date, opens, clicks) over the 14 days following send so you can see how engagement tails off after launch.

Subscriber timeline

The subscriber detail drawer includes an Activity timeline of every open, click, bounce, complaint, or unsubscribe event for that subscriber across every campaign. Use this to:

  • Troubleshoot deliverability for a specific recipient (“why didn’t they get the last send?”)
  • Gauge a subscriber’s engagement depth over time
  • Trace back a complaint to the campaign that triggered it

Newsletter dashboard

The Newsletter section landing page is a workspace-wide dashboard. Open CampaignCanvas → Newsletter to see:

Subscriber tiles

  • Total subscribers across all lists
  • Subscribed — active memberships
  • Unsubscribed, Bounced, Suppressed
  • New in the selected window (default 30 days)

Subscriber growth chart

Interactive chart of net subscriber count over time — granular windows from 1 day to 1 year. Instantly spot where your list took off or stalled.

Scheduled & draft campaigns

List of what’s coming up and what’s still in progress. Click through to open the campaign editor directly.

Upcoming digest runs

When’s the next auto-digest firing? This tile lists the next few runs across all digest campaigns with their thresholds and audiences.

Latest campaigns

Recently sent campaigns with inline open and click rates. Click any row to drill into full analytics.