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.