1. Developer custom attributes
Use the custom attribute APIs for app-defined keys like:favorite_categorysignup_sourcetrial_variantonboarding_persona
- reserved prefixes such as
$,appactor., orintegration.are not allowed for plain custom keys unsetAttribute()is the explicit delete path for custom fields- values must follow the platform’s supported primitive or typed-value contract
2. Reserved profile helpers
Use helper methods for AppActor-owned profile fields such as:- display name
- phone number
- push token
3. Integration identifiers
Use integration-ID APIs for external IDs like:- AppsFlyer IDs
- Adjust IDs
- Firebase app instance IDs
- custom provider identifiers
Integration identifiers and events
See how partner IDs attach to subscription events and downstream integrations.
4. Attribution belongs on its own surface
Campaign attribution, Apple Search Ads, and Google Play Install Referrer are separate from plain customer attributes.Attribution System
Choose the right API for campaign fields, integration identifiers, ASA, and Install Referrer.
Device identifiers and privacy
Additional device identifiers are generally opt-in. If your app turns on APIs likecollectDeviceIdentifiers() or platform attribution helpers, the docs should also point developers to:
- the privacy implications
- the matching App Store privacy disclosure expectations
- the platform-specific setup order