Observer Mode

Using RevenueCat without changing existing purchase code

Observer Mode enables you to do a partial implementation of the Purchases SDK, giving you access to the advanced charting, webhooks, and attribution that RevenueCat provides—without affecting your existing purchase code. This is useful if you already have a functioning subscription system to manage your purchases and have infrastructure or code policy restrictions that prevent you from fully integrating third-party software.

When you set up and instantiate Purchases in Observer Mode, your receipts will be recorded and stored in the RevenueCat backend without interfering with any of your existing code. On iOS, your receipts will be recorded automatically. On Android, use syncPurchases after purchases and restores to record your receipts in RevenueCat.

Requirements

Android

Google Play Billing Library: 2.0+ (Android only)

iOS

No special requirements

📘

Older versions of Google Play Billing Library are supported in version 2.4.1 or the Android SDK

1. Configure Purchases SDK

Purchases.configure(
            withAPIKey: "my_api_key",
            appUserID: "my_app_user_id",
            observerMode: true)
[RCPurchases 
    configureWithAPIKey:@"my_api_key" 
    appUserID:@"my_app_user_id"
    observerMode: YES];
Purchases.configure(this, "my_api_key", "my_app_user_id", true)
Purchases.configure(this, "my_api_key", "my_app_user_id", true);
await Purchases.setup("my_api_key", observerMode: true);
See "Enable Observer Mode in Unity configuration" below

❗️

Important (Android only)

On Android, RevenueCat won't consume or acknowledge any purchase in Observer Mode so be sure your app is handling that. Failure to do so will result in your purchases being refunded after 3 days.

Enable Observer Mode in Unity configuration (Unity Only)

482482

❗️

Important note regarding InAppBillingService (Android Unity only)

If using RevenueCat alongside Unity IAP or other plugin that includes the Android InAppBillingService class, follow this instructions

2. Sync purchases with RevenueCat (Android only)

On Android (or cross-platform SDKs), any time a purchase or restore occurs in your app you should call the syncPurchases method to record it in RevenueCat.

// Called any time a purchase or restore 
// is successful in your existing code
Purchases.sharedInstance.syncPurchases()
// Called any time a purchase or restore 
// is successful in your existing code
Purchases.getSharedInstance().syncPurchases();
// Called any time a purchase or restore 
// is successful in your existing code
Purchases.syncPurchases();

🚧

Important

Failing to call syncPurchases after purchases and restores in Observer Mode will prevent any transactions from being recorded.

👍

You've done it!

That's all there is to it to enable RevenueCat in your app! At this point, RevenueCat is tracking purchases and granting access to any entitlements attached to tracked product identifiers. However it's important to note that there are certain features that can only be enabled with a deeper SDK integration. When that time comes, head back to our Quickstart guide to get set up.