Skip to main content
Many teams run both subscription platforms at once: RevenueCat as the source of truth for subscription data, and Superwall to build and serve paywalls. This guide shows how the two fit together with Appstack so attribution flows correctly from install → paywall → subscription.

RevenueCat

Subscription data: manages entitlements and subscription state, and forwards subscription events with the Appstack ID and attribution params to Appstack.

Superwall

Paywalls: presents and experiments on paywalls, and can target them by the campaign a user came from using Appstack attribution params.

Who does what

How it works together

1

The Appstack SDK generates the identity

On app start, the Appstack SDK produces the Appstack ID and attribution params (campaign, click IDs, device identifiers). Both platforms read from these.
2

RevenueCat carries the subscription data

Call setAppstackAttributionParams() after Purchases.configure so RevenueCat attaches the Appstack ID and attribution to every subscriber. See the RevenueCat guide for the per-platform code. The call returns RevenueCat offerings, but in this setup Superwall presents the paywall — so you don’t need to use those offerings to render one.
3

Superwall targets and serves the paywall

Pass the attribution params via setUserAttributes(...) so paywalls can be filtered by where the user came from. You can skip setIntegrationAttributes(...) (the Appstack ID) here — that only matters when Superwall is your subscription-event source, and RevenueCat is filling that role. See the Superwall guide for the per-platform code.
4

Appstack stitches it together

RevenueCat is the only platform forwarding subscription events to Appstack, so there’s no double-counting to manage. Superwall contributes paywall targeting, and Appstack ties the attribution and subscription outcomes back to the acquisition source.

Wiring both in code

The snippet below configures both platforms from one place, at startup, after the Appstack, RevenueCat, and Superwall SDKs are configured. The Appstack identity is read once, then handed to each platform differently:
  • RevenueCat gets the attribution params and the Appstack ID (under appstack_id) — it’s your subscription-event source.
  • Superwall gets only the attribution params, as user attributes for paywall targeting. There’s no setIntegrationAttributes(...) call, because Superwall isn’t forwarding events here.

Set up order

1

Install and verify the Appstack SDK

Confirm events flow through the Appstack SDK page before connecting either platform.
2

Connect RevenueCat

Follow the RevenueCat integration to wire the SDK call and paste credentials.
3

Connect Superwall (paywalls only)

Follow the Superwall integration to wire only setUserAttributes. Skip setIntegrationAttributes(...) and the dashboard credential steps.
4

Validate coverage

Confirm the Appstack ID reaches ≥50% of RevenueCat’s events so the integration stays active.