From bac4b2fc36fe9fb9aef4cf5384c66f1e752bf095 Mon Sep 17 00:00:00 2001 From: Natalie Bunduwongse Date: Fri, 10 Jul 2026 11:30:56 +1200 Subject: [PATCH] feat(audience): warn and drop Identify()/Alias() calls with a malformed passport id Studios sometimes call Identify() or Alias() with IdentityType.Passport but pass their own internal user id instead of a real Passport id, which silently pollutes downstream analytics. Reject the call (no-op, no event sent) and log a warning when the id doesn't look like a Passport id, using the same connection|id or UUID shape Passport actually issues. Also adds sample-app coverage for the new behaviour. --- .../Tests/Runtime/SampleAppLiveFireTests.cs | 29 ++- .../SampleApp/Tests/Runtime/SampleAppUi.cs | 3 + .../Audience/Runtime/ImmutableAudience.cs | 51 ++++- src/Packages/Audience/Runtime/Utility/Log.cs | 10 + .../Tests/Runtime/ImmutableAudienceTests.cs | 206 +++++++++++++++++- 5 files changed, 287 insertions(+), 12 deletions(-) diff --git a/examples/audience/Assets/SampleApp/Tests/Runtime/SampleAppLiveFireTests.cs b/examples/audience/Assets/SampleApp/Tests/Runtime/SampleAppLiveFireTests.cs index 0210ad0e..aeb763f0 100644 --- a/examples/audience/Assets/SampleApp/Tests/Runtime/SampleAppLiveFireTests.cs +++ b/examples/audience/Assets/SampleApp/Tests/Runtime/SampleAppLiveFireTests.cs @@ -245,20 +245,35 @@ public IEnumerator Identify_AndFlush_FlushReportsOk() // dropdown before Init rather than upgrading mid-test. yield return LoadAndInit(initialConsent: SampleAppUi.Consent.Full); - _root!.Q(SampleAppUi.IdentityFields.Id).value = "il2cpp-test-user-" + DateTime.UtcNow.Ticks; + _root!.Q(SampleAppUi.IdentityFields.Id).value = "email|il2cpp-test-user-" + DateTime.UtcNow.Ticks; _root.Q