Skip to content

Commit 34bb24e

Browse files
committed
fix(mixpanel): don't send merge or alias event if enableAnonymousUserProfiles not enabled
1 parent 4daada9 commit 34bb24e

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

libs/core-functions/src/functions/mixpanel-destination.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,14 @@ function alias(
493493
];
494494
}
495495

496+
function isAnonymous(ctx: FullContext, event: AnalyticsServerEvent) {
497+
if (ctx.props.simplifiedIdMerge) {
498+
return !event.userId;
499+
} else {
500+
return !event.userId && !event.traits?.email && !event.context?.traits?.email;
501+
}
502+
}
503+
496504
function getDistinctId(ctx: FullContext, event: AnalyticsServerEvent, deviceId: string) {
497505
if (ctx.props.simplifiedIdMerge) {
498506
return event.userId ? `${event.userId}` : `$device:${deviceId}`;
@@ -536,6 +544,12 @@ const MixpanelDestination: JitsuFunction<AnalyticsServerEvent, MixpanelCredentia
536544
return;
537545
}
538546
}
547+
// no userId or email
548+
const anonymous = isAnonymous(ctx, event);
549+
if (anonymous && !ctx.props.enableAnonymousUserProfiles) {
550+
return;
551+
}
552+
539553
const trackPageView = typeof ctx.props.sendPageEvents === "undefined" || ctx.props.sendPageEvents;
540554
const deviceId = getDeviceId(ctx, event);
541555
if (!deviceId) {
@@ -548,18 +562,15 @@ const MixpanelDestination: JitsuFunction<AnalyticsServerEvent, MixpanelCredentia
548562
if (invalidDistinctIds.has(distinctId)) {
549563
throw new Error(`Invalid distinctId '${distinctId}'. Skipping event: ${JSON.stringify(event)}`);
550564
}
551-
// no userId or email
552-
const isAnonymous = event.anonymousId && distinctId.endsWith(event.anonymousId);
553-
if (isAnonymous && !ctx.props.enableAnonymousUserProfiles) {
554-
return;
555-
}
565+
556566
try {
557567
const messages: MixpanelRequest[] = [];
558568
if (event.type === "identify") {
559569
if (event.userId) {
560570
messages.push(...setProfileMessage(ctx, distinctId, event));
561571
}
562-
if (!ctx.props.simplifiedIdMerge && !isAnonymous) {
572+
if (!ctx.props.simplifiedIdMerge && !anonymous && ctx.props.enableAnonymousUserProfiles) {
573+
// we merge distinctId with anonymousId. It makes sense only when enableAnonymousUserProfiles is enabled
563574
if (event.userId) {
564575
messages.push(...merge(ctx, event.messageId, distinctId, `${event.anonymousId}`));
565576
} else {

0 commit comments

Comments
 (0)