Skip to content

feat: add email open analytics - #112

Merged
katsar0v merged 4 commits into
mainfrom
feature/issue-111-email-open-analytics
Jul 17, 2026
Merged

feat: add email open analytics#112
katsar0v merged 4 commits into
mainfrom
feature/issue-111-email-open-analytics

Conversation

@katsar0v

Copy link
Copy Markdown
Owner

Summary

  • add a schema migration for per-recipient tracking tokens, first-open timestamps, and pixel-load counts
  • inject a unique 1×1 tracking pixel into queued campaigns, scheduled one-time emails, and immediate one-time emails
  • expose a cache-disabled public pixel endpoint that records opens without retaining IP addresses or user-agent strings
  • show sent totals, unique opens, open rates, load counts, and per-recipient sent/open timestamps in the existing Queue screens
  • add Bulgarian and German translations plus user-facing documentation of image blocking, privacy proxy, and prefetch limitations

Why

The queue already records delivery status and sent_at, but administrators have no built-in signal for whether an email client loaded a campaign. This provides first-party open analytics without requiring an external email platform.

An “open” means the recipient's email client or privacy proxy requested the remote image; it is intentionally presented as an approximate signal rather than proof that the recipient read the message.

Validation

  • php vendor/bin/phpunit --configuration tests/phpunit.xml — 212 tests, 448 assertions
  • php vendor/bin/phpcs --standard=phpcs.xml — passes all 48 scanned files
  • wp i18n make-mo languages/ — Bulgarian and German MO output is reproducible
  • Sass compilation of admin/scss/main.scss — passes

Closes #111

@katsar0v
katsar0v marked this pull request as ready for review July 17, 2026 06:41
@katsar0v
katsar0v merged commit e3fa7b9 into main Jul 17, 2026
6 checks passed
@katsar0v
katsar0v deleted the feature/issue-111-email-open-analytics branch July 22, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add email open analytics

1 participant