Skip to content

fix(analytics): create Mixpanel installation profiles - #87

Merged
hannojg merged 2 commits into
mainfrom
hannojg/mixpanel-installation-profiles
Nov 5, 2026
Merged

hannojg merged 2 commits into
mainfrom
hannojg/mixpanel-installation-profiles

Conversation

@hannojg

@hannojg hannojg commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

In #85 we added Mixpanel event tracking, but only sent requests to /track. Events have installation IDs, but do not create user profiles, so Mixpanel's Users view stays empty.

This creates or updates a pseudonymous installation profile for each connected session using the existing installation ID, host, plugin version and OS. Profiles use the EU /engage endpoint with IP geolocation disabled and respect the existing release-only and opt-out checks. Failed profile updates stay pending for the next flush while event delivery continues. The privacy policy now describes these profiles, and Sentry's analytics.flush metric distinguishes event batches from profile updates.

Regression tests use in-memory MCP sessions and intercepted Mixpanel requests to verify matching profile/event IDs, opt-outs, retrying rejected updates without resending events, and waiting for in-flight requests during shutdown. The batching test holds delivery until the full burst is queued so its batch-size assertion is independent of promise scheduling. The full npm test suite passes on Node 22.23.2: 1,239 passed and one skipped.

@vercel

vercel Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
mobile-dev Ignored Ignored Preview Nov 5, 2026 11:59am UTC

Request Review

@hannojg

hannojg commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

@lauridskern damit haben wir dann user tracking drin, GDPRC comapt!

@hannojg
hannojg marked this pull request as ready for review November 5, 2026 12:12
@hannojg
hannojg merged commit 6f29205 into main Nov 5, 2026
14 checks passed
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.

1 participant