feat(audience): auto-collect Epic account ID and detect Epic platform#799
Merged
Conversation
0f2f46e to
31cef5e
Compare
When the PlayEveryWare EOS Unity plugin is present, the SDK now: - Calls Identify() with the logged-in EpicAccountId automatically at Init - Sets distribution_platform = "epic" in game_launch properties when the game was launched from the Epic Games Store Detection uses C# reflection so there is no hard compile-time dependency; games without EOS are completely unaffected. Both EOS Unity plugin install methods are supported: - UPM package (com.playeveryware.eos / com.Epic.OnlineServices assembly) - Legacy DLL install (EOSSDK / PlayEveryWare.EpicOnlineServices assembly) EGS detection is based on launcher-injected CLI args (-EpicPortal, -epicapp=, -epicenv=), not EOS initialisation, so Steam-only games that use EOS for cross-play are not misattributed. link.xml: type-level preserve="all" entries for AuthInterface and EpicAccountId prevent IL2CPP High stripping from removing the method metadata that reflection depends on. Assembly-level preserve="all" only protects type declarations, not method bodies or their metadata. examples/audience/Assets/link.xml mirrors the same rules because Unity's linker skips package link.xml when the package is a file: path (dev mode). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31cef5e to
17836b1
Compare
bkbooth
approved these changes
Jun 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Initand fires anidentifyevent withidentity_type='epic'distribution_platform='epic'ingame_launchwhen the game is launched from EGS (detected via-EpicPortal/-epicapp=/-epicenv=CLI args)Detection uses C# reflection — no hard compile-time dependency on the EOS plugin. Games without EOS are unaffected. Both install methods supported:
com.playeveryware.eos/com.Epic.OnlineServicesassembly)EOSSDK/PlayEveryWare.EpicOnlineServicesassembly)Test plan
distribution_platform='steam'andidentity_type='steam'set correctlydistribution_platform='epic'andidentity_type='epic'set correctlysteam, notepic🤖 Generated with Claude Code