Overview
The mobile SDKs build events with typed helpers and post them to the same collector as the web tag. One instance handles collection and personalisation, so identity is shared.send() posts it. Building an event has no side effect, so you can enrich or discard it before sending.
Installation instructions for each platform are on the Android, iOS, and Flutter pages.
Event builders
Labels are
String key/value pairs stored as queryable labels on the event. Use them for the dimensions you filter on in a Workflow — locale, store, app version — not for high-cardinality data.
Identity
setUser() stores the identity on device (SharedPreferences on Android, UserDefaults on iOS, shared preferences on Flutter) and sends an identify event when the value changes. Call it after login and after restoring a session at launch — repeated calls with the same value are no-ops.
Until then, events carry only the anonymous device identity (tmpId): the advertising ID on Android when ad tracking is allowed, identifierForVendor on iOS, otherwise a random identifier generated once and persisted.
ReelevantAnalytics.clearStorage() to drop the stored user ID, temporary ID, and retry queue — call it on logout when the device is shared.
Screen context
Every event carries aurl field. In apps it defaults to unknown, so set it on navigation to be able to filter events by screen:
Delivery guarantees
All three SDKs behave identically on failure:send() does not report transport failures to the caller — they are logged and queued. It can still throw when it is called before the SDK finished initialising its device identity, so wrap calls made early in the app lifecycle:
Related
- Data collection overview — pipeline, identity, consent
- Event reference — envelope, catalogue, validation rules
- Mobile SDK — personalisation with the same instance
- Website collection — the web equivalent