For mobile funnels tied to subscription revenue, Amplitude has documented SDKs for iOS, Android, React Native and Flutter, Heap is the autocapture tool, and ActivationPal is the narrower option for mobile-only teams. ActivationPal publishes this page and makes the third product.
Heap vs Amplitude at a glance
Prices are as stated on each vendor's pricing page on 13 October 2026.
| Product | Best for | Mobile support | Free tier | Paid plans |
|---|---|---|---|---|
| ActivationPal | iOS, Android, Flutter and React Native apps that need onboarding and paywall funnels plus RevenueCat or Superwall revenue | Native Swift (iOS 15+), native Android (5.0+), Flutter, React Native and Expo | 10k events, lifetime, 3-month history | Starter $9, Pro $19, Scale $29 per month (pricing) |
| Amplitude | Product analytics, experimentation and session replay in one platform | Analytics SDKs for iOS (Swift), Android (Kotlin), React Native and Flutter; Session Replay for the same four | 2M events per month | Plus starts at $0 with the first 2M events free, scaling up to 70M events; Growth and Enterprise are custom, event-based pricing |
| Heap | Automatic capture without tagging every event | A single snippet captures every platform, per Heap's homepage; mobile sessions end after 5 minutes of inactivity | Up to 10k monthly sessions | Growth is estimated after you install the snippet; Pro and Premier are custom session pricing |
Amplitude
Amplitude's SDK catalog lists an Analytics SDK for each of iOS, Android, React Native and Flutter, and a Session Replay SDK for the same four. Its docs say the Analytics SDKs send the event data that powers funnels, retention and cohorts.
The pricing page puts Analytics, Session Replay and Experimentation on every plan, with 2M events per month on the free plan and no credit card.
Heap
Heap says one snippet automatically captures every user interaction on every platform, and that it has joined Contentsquare. Funnels are a listed analytics feature on its pricing page.
Session replay is an add-on on Pro and Premier. The free plan covers up to 10k sessions a month. Past the limit, Heap keeps collecting data and asks you to upgrade before you can view it again.
How ActivationPal sets up a mobile funnel
ActivationPal uses fixed event names, so there is nothing to register and no charts to build. Setup on iOS takes five steps, from the quickstart:
- Add the app in the dashboard to get its slug and
ap_pkkey, then download the single Swift file. It has no dependencies. - Call
ActivationPal.configure(app:key:userId:)at launch. With RevenueCat, passPurchases.shared.appUserID. This sendsfirst_openandapp_openautomatically. - Call
onboardingStep(index, id:, answer:)on each onboarding screen, thenonboardingCompleted(). - Call
paywallShown,paywallPlanSelected,paywallPurchasedandpaywallDismissedaround the paywall. - Connect RevenueCat with an HMAC-signed webhook, or Superwall with its signing secret. Purchases, trials, renewals and churn arrive as
rc_*events and join the funnel through the user id.
ActivationPal.configure(app: "myapp", key: "ap_pk_YOUR_KEY", userId: Purchases.shared.appUserID)
ActivationPal.onboardingStep(0, id: "goal", answer: "lose_weight")
ActivationPal.onboardingStep(1, id: "notifications")
ActivationPal.onboardingCompleted()
ActivationPal.paywallShown("onboarding")
ActivationPal.paywallPlanSelected("yearly")
ActivationPal.paywallPurchased("yearly")
Every funnel stage counts unique devices from the install cohort, so no stage exceeds 100% of installs. Onboarding shows one row per step, the paywall card shows conversion, and the dashboard shows the median time from first_open to first purchase. Custom events need no registration either.
Android, Flutter and React Native use the same event names: see the Android, Flutter and React Native guides. The subscription analytics page covers the revenue side, and iOS analytics the Swift SDK.
ActivationPal covers mobile apps only. It does not replace a web or cross-platform analytics suite, and it has no experimentation or session replay. The homepage shows the dashboard.