Discussion and help from anything related to RevenueCat.
Recently active
We have a working Adjust integration in RevenueCat, but we noticed a large discrepancy in the amount of “active trials” visible in RevenueCat and the amount of tracked “Trial started“ events in Adjust. Currently, there are more than double active trials in RevenueCat than the corresponding events tracked in Adjust.We think it’s because our marketing is relying heavily on App Store’s “Offer codes”. Currently we recommend the user to redeem the discounts via the App Store, as is also recommended by RevenueCat due to Apple’s buggy implementation of the offer code redeem screen in iOS.We suspect that RevenueCat is not sending “Trial Started” events to Adjust if a user starts a 3 months free trial via an offer code. Can you confirm this? Is this a bug or is this intentional? What alternative do you suggest to have more reliable stats on the total amount of trials started on Adjust’s side?
I’m using revenuecat for an app called Snap Tap Relax. I’ve doing a free trial and get over 130 free trials but more 85% results in billing errors. That doesn’t include people who cancel. Everything is set up correctly I still get some free trials converting so seems to be set up correctly. I hear others having similar problems.Just was curious if anyone ever solved this? This is on Google Play where it’s happening. I read on revenuecat yearly state of address billing errors for android are up to 29%. Which is not adding up on my end or what I’m seeing others reporting even on IOS. And just so you know i’m running google app promotions campaigns and optimizing for people who do a free trial plus do a relaxation session. So a better signal to send back to optimize for instead of just free trials. And get about 10 conversions per day. Any help would be greatly appreciated.
I tried to connect the google play console with revenue cat.I completed the setup mentioned in the revenue cat document. Now iam trying to import the products from google play console, its throwing an error, I can’t understand what’s the status of integration.
I have 3 products for my app in app store. One should not be presented on change plan option in customer center. I select 2 in revenuecat but still see 3 in my app after click on change plan. It used to work couple of days before.
Hi all,I am running a Flutter app in Production (Android only) with real users and real revenue.My issue is that the "Paywall Encounters" chart in RevenueCat shows 0, while the "Revenue" charts are populating correctly.I am using the `PaywallView` widget from `purchases_ui_flutter`.Technical Details: Platform: Android (Production) Framework: Flutter SDK Versions: purchases_flutter: ^9.1.0 purchases_ui_flutter: ^9.1.0 Behavior: Users can successfully view the paywall and purchase products. Revenue is tracked correctly in the dashboard. Paywall Encounters: 0.(no matter what “encounter timeframe” is) My Implementation:I am manually fetching the offering in a `StatefulWidget` and passing the resulting object to the `PaywallView`. I am **not** letting the `PaywallView` fetch the offering itself.Here is a simplified version of my code:class MyPaywallScreen extends StatefulWidget { @override _MyPaywallScreenState createState() => _MyPaywallScreenS
Please add the localizedPricePerMonth property to the Flutter SDK. At the moment it’s not possible to safely calculate and format the calculated price again. With localization, thousand separators, decimals and different placements of currency symbols (before, after, with or without whitespace) is too complicated and error-prone to calculate ourselves. You already have this property in other SDKs. It should be easy to put it into the Flutter SDK as well. Please do so :-) Here in this discussion, Ryan from Revenuecat said he would pass this request to the dev team. Then the discussion was resolved without it being implemented. Would highly appreciate to have this feature in Flutter! Best, Tobias
KMP SDK version 2.2.7+17.16.1Dont understand how to include trial.Here is how I fetch dataoverride suspend fun loadProducts(): List<Package> = suspendCoroutine { cont -> Purchases.sharedInstance.getOfferings(onSuccess = { val packages = it.getOffering("default")?.availablePackages packages ?: cont.resumeWithException( PurchasesException( PurchasesError( PurchasesErrorCode.StoreProblemError, PurchasesErrorCode.StoreProblemError.description ) ) ) cont.resume(packages!!) }, onError = { cont.resumeWithException( PurchasesException( PurchasesError( it.code, it.message ) ) ) })} Here is how I purchase override suspend fun purchase(storePackage: Package): PurchasesError? = suspendCoroutine { cont -> Purchases.sharedInstance.purchase( storePackage,
Hello!I have added a RevenueCat paywall, and on iOS everything works correctly, I see the exact paywall I created in the dashboard.However, on Android the paywall looks completely different: it shows a gradient background, large logo, “Restore purchases” button which is removed, and is missing all the feature texts. But the offerings are correct.It seems that Android is loading the legacy or fallback paywall instead of the new Paywalls v2 design.Details: Paywall ID: default Offering ID: default react-native-purchases: 9.6.0 react-native-purchases-ui: 9.1.0 Using: (RevenueCatUI.presentPaywall({ offering: currentOffering }) Tried: Uninstalled and reinstalled the app Republished the paywall Confirmed products and entitlements are shared between iOS and Android Could you please help we figure out what is causing this issue?Thank you!
Hi,I process webhooks events in my API, it works. For more resilience, I also sync with the subscriptions endpoint:https://api.revenuecat.com/v2/projects/$projectId/customers/$userIdStr/subscriptionsregularly. Sometimes the sync calls are triggered directly after processing the webhook, and they seem to return stale data, effectively reverting the webhook updates.How to deal with this? I assumed that subscriptions api was the source of truth, but this appears to not be correct?Interestingly I’ve been using this system for about 3 months without apparent issues but today this problem is happening consistently (specifically: subscription expires, I subscribe, receive “Initial” webhook, call `subscriptions` and get just the older expired subscriptions)Thanks
Why does SDK provide this two similar error codes?ErrorCode.receiptAlreadyInUseError = 7ErrorCode.receiptInUseByOtherSubscriberError = 13Is there any special considerations when handling those errors during `restorePurchases()`?
Hi,My app is integrated with RevenueCat and the subscriptions are set up in App Store Connect. When testing via TestFlight, the subscriptions correctly show a 3-day trial. However, once the app is live on the App Store, the trial option doesn’t appear.
My Paywall looks great on the Revcat dashboard, but when viewing on my phone (Which has dark mode turned on), the only content within the paywall being changed is the text - so if you have a light background behind your black text, your paywall is ruined. I can’t find a way to turn this off either Settings Dark mode onDark mode off
I’m trying to set up products on an Android app. The documentation I’m struggling with to be specific is https://www.revenuecat.com/docs/service-credentials/creating-play-service-credentials?embed=true I’ve run the automated script successfully and such. But I’m stuck at this section:Once the script has finished running, you will need to upload the revenuecat-key.json file from the Cloud Console shell instance to RevenueCat in your Project Settings > Google Play App Settings > Service Account Key. I can’t see “Google Play App Settings” anywhere, am I looking in the complete wrong place? I asked your AI model for help: The location moved. You now upload your Google Play service account key under each Android app, not at the project level.Do this:In the RevenueCat dashboard, go to your Android app. Open App Settings > Service credentials (Google Play). Click “Upload key” (or “Replace key”) and upload the JSON you generated (revenuecat-key.json).If you don’t see the upload area:M
Hi there,does RevenueCat provide a webhook message (body) signing mechanism?Like described here: https://hookdeck.com/webhooks/guides/webhooks-security-checklist#verify-the-messageOr is the authorization header the only way?
I added my Subscriptions App Store Connect, configured them, and they appear correctly in RevenueCat. However, the products don’t show up in local testing; they only appear when I use a .storekit configuration file, which doesn’t work in TestFlight or for the reviewer. Reviewers need the products to be approved to see them, but during review the products aren’t visible, causing the app to get rejected. Even when I submit a build, the products remain in Waiting for Review and aren’t approved. │ ERROR [RevenueCat] 🍎‼️ Error fetching offerings - Impossibile completare l’operazione. (Errore RevenueCat.OfferingsManager.Error 1).│ There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). │ More information: https://rev.cat/why-are-offerings-empty│ WARN [RevenueCat] ⚠️ RevenueCat SDK is configured correctly, but contains some issues you might wan
When a user registers for my app, I automatically create a new subscription with status trial in my database for this user - no opt in is required by the user. How can I track these trials with RevenueCat? Do I need to add some trial properties to my offerings? Currently RevenueCat is notified of user subscriptions only once a user actually starts a paid subscription (same goes for AppStore and PlayStore - they are unaware of the trial that I have initiated in my database). Thanks for your help!
Hi there, I’ve set up Meta Ads integration and it has been working for some time. In Meta Ads, I’m now looking to create a new campaign with a performance goal rather than an install goal. When trying to select the event to set as the goal, both the standard events ‘Start trial’ and ‘Subscribe’ are disabled with an error Your app can't use Aggregated Event Measurement because conversion data is missing or partial. Usually, the easiest solution is to set up the Facebook SDK for iOS.Do you think I’m missing any steps in the Meta Ads integration set up? I’ve added details about my setup and review I’ve just completed. Appreciate your help with this. Here is my Meta Ads set up In app `collectDeviceIdentifiers()` call `setFBAnonymousId()` call Both of these set up after Purchases SDK is configured When ATT prompt is authorized, set `isAdvertiserIDCollectionEnabled` and call `collectDeviceIdentifiers`.Next, I have integrated with Conversions API. Is the Datasource ID (mentioned in Conversi
Hey guys, I'm going crazy with this problem. On Android, I can't repurchase a product that has already been purchased.I've set the product as digital and the problem persists.1 - The products don't have any entitlements added.2 - I can retrieve the products from the revenue catalog, and the checkout starts normally.But I can't repurchase the products, and I haven't found any clear instructions in your documentation explaining why this problem occurs.I need a product with a one-time payment to be able to be repurchased as many times as possible. My backend is already configured for this, but the problem persists.
The current MCP supports Configuration. Are there plans to support Analytics? I want to ask Claude about active subscriptions, subscribers, churn, etc.
I’m wondering if there’s a setting I can change somewhere. I have a day pass set up as a prepaid subscription for my Android users. It seems to be working fine in the actual app and not renewing, but the RevCat dashboard counts it as a renewing subscription until it expires. This means that my MRR is shown as my actual MRR + (each active daypass’ cost * 30). This is pretty annoying as I do like to use the dashboard but this makes my totals very inaccurate.
Hello,I try to setup my app for android with revenue cat but the commande line on the shell editor of google cloud doesn’t work. I received this message after the execution but revenuecat show me that the JSON file doesn’t work properly. [SUCCESS] 🎉 Setup complete! The service account is ready for RevenueCat integration. Use the file revenuecat-key.json for your RevenueCat project, and use the service account revenuecat-service-account@project-id.iam.gserviceaccount.com for permissions in Google Play Console. This line remains in red: ❌ Permissions to call subscriptions API How I can debug the situation plz ? Thanks
Hi.Basically I have the same as this post describes:Product Issues: ❌ [my_product]: Product not found in App Store Connect. You need to create a product with identifier: '[my_product]' in App Store Connect to use it for production purchases.I see that the product has no records, not even sandbox records.How can I delete this product?
Hello,I want to know the revenue generated by each ad creative I will run on Meta ads.Will integrating Purchases SDK with Meta Ads allow me to know that ?
How to setup Datasource IDBased on https://www.revenuecat.com/docs/integrations/attribution/meta-adsAdd your Datasource ID for production events (and optionally an Datasource ID for sandbox events). You can find this ID in the Events Manager, selecting which datasource you'd like to use.This is my Event Manager page. Is Datasets same same Datasource? Is this the right page to get the datasource ID?How to get Conversions API Token Add the Client Token for your app (and for the sandbox Datasource if included). You can find your Client Token in the Events Manager dashboard, under your selected Datasource > Settings > Generate Access Token. I can’t find the “Generate Access Token”. Can you please point me out where I can locate such a feature?Thank you.
Hi!I'm testing a weekly auto-renewable subscription on iOS sandbox (via TestFlight) and RevenueCat is only delivering the initial purchase event. After that, there are no renewal events, no new transactions in the dashboard, and no webhooks — even after ~10 minutes.RevenueCat shows: Purchased: ~12 minutes ago Expires: in a day (production duration) Type: New Sub But the subscription never auto-renews in sandbox, so my app can’t reset weekly credits.This works perfectly on Android, so the issue is probably related to Apple’s iOS sandbox/test environment, which is known to be flaky but I’m asking here in case there’s something I’m missing on the RevenueCat side or if others have seen the same behaviour.Any guidance or confirmation would be appreciatedThanks!
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.