Skip to main content
Use this setup for native iOS, React Native, or Expo apps. A complete mobile implementation joins campaign entry, app activity, a known customer identity, and subscription events from RevenueCat or Superwall.

Before you start

List the platforms and environments you ship, the subscription provider you use, and the small number of app events that describe activation and purchase intent. Decide how a signed-in user is represented consistently across the app and subscription system.

1. Install and initialize the SDK

Use the iOS SDK for Swift or the React Native SDK for React Native and Expo. Initialize once during application startup, before tracking screens or product events. Keep development and production configuration separate. Verify events in a debug or sandbox build before releasing the integration.

2. Model the product journey

Track the screens and events that answer real product questions: onboarding completed, paywall viewed, trial started, or a core action completed. Keep names stable across releases and avoid sending an event for every UI interaction.

3. Identify signed-in users

Call identify after the app has a trusted user ID. Use that same durable identity in RevenueCat or Superwall where supported, and call reset on logout. This deterministic bridge is more reliable than attempting to infer that two devices or sessions belong to one person. Do not use an email address or advertising identifier as your primary internal user ID. Respect App Tracking Transparency and your broader analytics consent requirements.

4. Connect subscription revenue

Connect RevenueCat or Superwall from Sources and configure the webhook displayed by Datalyr. Use the environment that matches the app build, then test a purchase or subscription lifecycle event. The subscription provider should remain authoritative for trials, renewals, refunds, and cancellations. Avoid sending the same transaction independently from the app.

5. Configure campaign attribution

Set up the mechanisms required by the platforms you advertise on, such as supported deep links, Android install-referrer behavior, Apple Search Ads, or Apple SKAdNetwork. Connect only the destinations you use and follow their current privacy and campaign requirements.

6. Verify end to end

Use a fresh test installation and complete the actual journey: open or install, onboarding, sign-in, paywall, and sandbox purchase. Confirm the ordered screen events, identified customer, transaction value and currency, and subscription status appear together. Then verify the intended conversion through the destination’s test flow when available.

Common problems

  • Events begin too late: the SDK initializes after the first screen or campaign handling.
  • One person appears as multiple users: the app and subscription provider use different stable IDs.
  • Users merge after logout: reset is not called before another account signs in.
  • Revenue is duplicated: both the app and subscription provider send the transaction.
  • Sandbox purchases are missing: the webhook or source is connected to a different project or environment.

You are done when

A clean test install produces an ordered app journey, joins to the signed-in customer, receives one subscription event from the authoritative provider, and verifies the intended campaign conversion without duplicate revenue. See RevenueCat, Superwall, and Apple SKAdNetwork for provider-specific setup.