Collect user emails for Adapty Mail

Adapty Mail needs a stable customer_user_id and an email for every user it delivers to. Wire both up in your app code before launching a campaign.

Collect user emails

Two values must reach Adapty per user: a stable customer_user_id that identifies the user, and the email itself. Identification has to come first — without it, Adapty has no profile to attach the email to.

  1. Identify the user. Pass a stable ID — your backend user ID, Firebase UID, or similar — either by passing it as customerUserId to .activate() at SDK startup, or by calling Adapty.identify() later (for example, at login). Either way, the ID must be set before any paywall is shown.

    Platform guides: iOS, Android, React Native, Flutter, Unity, Kotlin Multiplatform, Capacitor.

  2. Pass the email. As soon as the user provides their email, send it to Adapty via updateProfile using the email parameter.

    Platform guides: iOS, Android, React Native, Flutter, Unity, Kotlin Multiplatform, Capacitor.

  • Always pass a stable customer_user_id, never an anonymous identifier. If a user uninstalls and reinstalls your app, Adapty uses this ID to link the reinstall to the existing profile and attribute purchases back to the correct user.
  • Get explicit user consent before collecting and sending emails to Adapty. You are responsible for compliance with GDPR, CAN-SPAM, and similar regulations in your target markets.
Verify your email coverage

After implementing collection, check coverage in Adapty:

  1. Go to Customers → Profiles.
  2. Filter by profiles that have an email set.

Target at least 30–50% email coverage among your active users before launching your first campaign. You don’t need to wait for 100% — launch as soon as you reach 30%. Users who provide their email later are automatically enrolled in active campaigns when they qualify.

Email collection strategies

Most apps don’t collect emails by default. Pick the approach that matches your app’s current state.

StrategyBest forHow it works
Existing authenticationApps with any form of loginYou already have the email — pass it to Adapty after the user authenticates. See the auth-method reference below for where to read it.
Email gate before the paywallApps without auth — health, wellness, astrology, photo editorsAdd a single email input screen between onboarding and the paywall. Conversion typically runs 70–90% because users have already invested time.
Web paywall builder checkoutMinimal SDK work; email captured on webThe first screen of the web paywall builder collects the email and passes it to Adapty — useful for users who click a campaign before an in-app gate is live.
Onboarding stepQuiz-based onboarding (fitness, nutrition, education)Place an email input 2–3 steps into onboarding. Frame it as value delivery (“We’ll email your personalized plan”) and avoid making the step skippable.
Server-side API importApps with an existing email list on another platformUse the Update profile endpoint with email and external_profile_id to match records to existing profiles.

Limitations

  • Anonymous users: Users without a stable customer_user_id can’t receive campaigns. Identify them when they create an account or log in — from that point, any email they provide is matched to their Adapty profile.
  • Users without an email: Profiles with no email are excluded from campaign delivery and don’t appear in campaign analytics. As soon as they provide an email, they become eligible for future campaigns.