The Flutter package keeps the same separation as native:
  • custom attributes
  • reserved profile helpers
  • integration identifiers
  • attribution fields

Custom attributes

Also available:
  • setAttribute(key, value)
  • unsetAttribute(key)
Keys that start with reserved prefixes or look like system keys should not be sent as plain custom attributes.

Reserved helpers

Use the explicit helpers for profile context:
  • setEmail(...)
  • setDisplayName(...)
  • setPhoneNumber(...)
  • setPushToken(...)
  • collectDeviceIdentifiers()

Integration identifiers and attribution

Wrapper helpers include:
  • setIntegrationIdentifier(...)
  • unsetIntegrationIdentifier(...)
  • setAppsflyerID, setAppsFlyerID, setAdjustID, setBranchID, setFirebaseAppInstanceID, setOneSignalID
  • updateAttribution(...)
  • setMediaSource, setCampaign, setAdGroup, setAd, setKeyword, setCreative
The attribution model is strongly typed on the Dart side, so use AppActorAttribution instead of hand-assembling random maps when you need full campaign payloads.