fix(analytics): stop identifying Public visitors as page creators

Public generated pages were calling umami.identify(owner_id), collapsing
every visitor into the creator session. Anonymous visits now skip identify;
logged-in viewers identify with their own distinct id.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-08-05 13:05:18 +08:00
parent 9e50681d96
commit e2014e05e6
4 changed files with 83 additions and 10 deletions
@@ -6,6 +6,7 @@ import {
collectInlineScriptHashes,
} from '../mindspace-public-delivery.mjs';
import {
buildViewerAnalyticsIdentity,
injectMindSpaceAnalytics,
resolveAnalyticsOwnerLabel,
resolveAnalyticsOwnerSegment,
@@ -51,6 +52,7 @@ async function decoratePublicationHtmlAnalytics(
result,
analyticsConfig,
rybbitConfig,
viewer = null,
getAuthPool = () => null,
getUserAuth = () => null,
getMindSpacePages = () => null,
@@ -112,6 +114,7 @@ async function decoratePublicationHtmlAnalytics(
generatedAt: pageDataContext?.generatedAt ?? '',
pageId,
publicationId,
viewerIdentity: buildViewerAnalyticsIdentity(viewer, analyticsConfig),
config: analyticsConfig,
});
decorated = injectMindSpaceRybbit(decorated, {
@@ -215,6 +218,7 @@ export function createPortalPublishedPageDelivery({
result,
analyticsConfig,
rybbitConfig,
viewer: req.currentUser ?? null,
getAuthPool,
getUserAuth,
getMindSpacePages,
@@ -346,6 +350,7 @@ export function createPortalPublishedPageDelivery({
result,
analyticsConfig,
rybbitConfig,
viewer: req.currentUser ?? null,
getAuthPool,
getUserAuth,
getMindSpacePages,
@@ -1,4 +1,5 @@
import {
buildViewerAnalyticsIdentity,
injectMindSpaceAnalytics,
resolveAnalyticsOwnerLabel,
resolveAnalyticsOwnerSegment,
@@ -250,6 +251,10 @@ export function createPortalWorkspacePublicationDelivery({
pageDataContext?.publicationId ??
pageDataContext?.publication_id ??
'',
viewerIdentity: buildViewerAnalyticsIdentity(
req.currentUser ?? null,
analyticsConfig,
),
config: analyticsConfig,
});
html = injectMindSpaceRybbit(html, {