Documentation Index
Fetch the complete documentation index at: https://docs.appstack.tech/llms.txt
Use this file to discover all available pages before exploring further.
Use Cursor, Claude Code, or another AI to help you implement the RevenueCat integration with Appstack.
- Use Revenuecat in-app events to run enhanced app campaigns.
- Unlock attribution-based paywall optimization.
To successfully connect RevenueCat, you must:
- Have Owner/Admin access to an Appstack organization.
- Have access to the correct RevenueCat account.
Connect to RevenueCat
Follow the steps to ensure the RevenueCat integration works:SDK configuration
After configuring the Purchases SDK and before the first purchase occurs, call
setAppstackAttributionParams() with the attribution data from the Appstack SDK. This single call sets the $appstackId, campaign attribution attributes ($mediaSource, $campaign, $adGroup, $ad, $keyword), click IDs, and device identifiers — no need to call collectDeviceIdentifiers() separately.The call also syncs attributes to the RevenueCat backend and fetches fresh offerings before returning, so Appstack-based targeting is applied before your paywall loads.Learn more about the RevenueCat x Appstack integration by reading this article.
React Native minimum versionThe
setAppstackAttributionParams is available in react-native-purchases 9.12.0 and above. If you’re on 8.12.0 or any earlier version, the snippet above will fail because the method doesn’t exist on the Purchases object yet. Upgrade react-native-purchases to 9.12.0+ before integrating.iOS App Tracking Transparency (iOS 14.5+)If you request App Tracking permission through ATT to access the IDFA, call
setAppstackAttributionParams() again after the customer grants permission, rebuilding params from the latest getAttributionParams() and getAppstackId() values as in the code examples above. The AdSupport framework is required to collect the IDFA on iOS.Copy the credentials
- In Appstack, from the side menu, select Integrations > RevenueCat.
- Copy the webhook URL.
- Copy the authorization header.
List of events
Below is a list of events you can forward to ad networks to optimize your campaigns.| Name | Definition |
|---|---|
rc_trial_started | Fired when a user begins a free trial. Triggered on the initial purchase when the period type is TRIAL. |
rc_trial_qualified | Fired when a free trial is still active two hours after it started — meaning the user did not cancel within the qualification window. |
rc_trial_converted | Fired when a free trial successfully converts to a paid subscription. This happens on the first renewal after the trial period ends. |
rc_intro_started | Fired when a user begins an intro offer — a paid trial at a discounted price (e.g., $0.99 for the first week). Triggered on the initial purchase when the period type is INTRO |
rc_trial_intro_started | Fired when either a free trial starts (rc_trial_started) or an intro offer starts (rc_intro_started). The event triggers as soon as at least one of these conditions is met. |
rc_trial_intro_qualified | Fired when either a free trial qualifies (rc_trial_qualified) or or an intro offer starts (rc_intro_started). The event triggers as soon as at least one of these conditions is met. |
rc_initial_purchase | Fired when any of the following occur: a free trial starts (rc_trial_started), an intro offer starts (rc_intro_started), or a full-price subscription starts (rc_subscription_started). The event triggers as soon as at least one of these conditions is met. |
rc_initial_purchase_qualified | Fired when any of the following occur: a trial qualified happens (rc_trial_qualified), an intro offer starts (rc_intro_started), or a full-price subscription starts (rc_subscription_started). The event triggers as soon as at least one of these conditions is met. |
rc_subscription_started | Fired when a user starts a paid subscription at full price, with no trial or intro offer involved. Triggered on the initial purchase when the period type is NORMAL |
rc_subscription_renewed | Fired on each successful renewal of an active subscription. Indicates the user was billed again and remains subscribed for another period. |
rc_non_renewing_purchase | Fired when a user makes a one-time, non-subscription purchase — any product that is not an auto-renewing subscription (e.g., consumables or non-consumable in-app purchases). Unlike subscription events, this purchase does not renew automatically. |
Use Cursor, Claude Code, or another AI to validate your existing RevenueCat + Appstack integration.