Discussion and help from anything related to RevenueCat.
Recently active
Hello,The new Placements feature looks great although I’m missing having metadata defined per Placement that I could read in the app. Currently metadata are only available on offerings.Imagine that you have 3 Placements, with different offerings eachPlacement1 → Offering1Placement2 → Offering2Placement3 → Offering3For each placement I’d like to dynamically define some behaviour using metadata, e.g. whether to show a success screen or subsequent better offer paywall. I could add such logic to the app by checking Placement, but it requires a new app release each time I want to change such behaviour. I could also add metadata to offering, but keep in mind the offering may be assigned to various Placements while the behaviour should be defined per place.What do you think?
I want to track app installs, but currently, I am not receiving any install information on iOS. I found the this for a solution in revenueCat document: https://www.revenuecat.com/docs/integrations/attribution/facebook-ads#track-install-and-usage-events Track Install and Usage EventsAs noted above, you'll need to disable all client side tracking of revenue to prevent double counting of revenue in Facebook Ads Manager. To continue tracking install and usage events, you'll need to call Facebook's 'activate app' event after configuration:-Swift// disable automatic trackingFBSDKCoreKit.Settings.shared.isAutoLogAppEventsEnabled = false// optional: call activateAppFBSDKCoreKit.AppEvents.shared.activateApp() What is the equivalent of this code in flutter?
I am developing my app with React native plus Expo.It provides an inapp subscription using RevenueCat.The app works well on my local PC and I could successfully purchase subscription plans.These are the commands I built the local version :$ npx expo prebuild$ npx expo run;android --device$ npx expo start --dev-client After the local test, I built a PRODUCTION profile of my app by the following command$ eas build --platform android --profile production Then I launched it on the close-test track of the Google Play console.But the app does not work for paywall screen.Actually, it displays the home screen, and it gets stuck when I click the purchase button whichis supposed to display packages, offerings, or whatever on the next next paywall screen. Any idea about where can I see to address this issue?Thank you in advance.
I'm just curious if I signed up for a sandbox API not a production API because the offerings work perfect in testing but when it goes to Apple production after approval, it does not work Does anyone know if there's that is two different environments?
I just released my app a couple of weeks ago and I had some issues but I think I have rectified those. I then installed the app on my phone and I went through the subscription process and it worked. I got the paywall and the apple payment went through etc. This was about 2 hours ago. RevenueCat is still not showing this subscription. How long does it take before I see this? Thank you.
I have a page withSingleChildScrollView where content is loaded. It’s infinite scroll view where data is dynamically added. For a given situation I would like to add PaywallFooter at the end of the page if the condition is not met. Is it possible? I am using flutter purchases_flutter: ^8.1.0purchases_ui_flutter: ^8.1.0
I want to use only custom app user id’s in my iOS SwiftUI app, but also delete users. Per the documentation, logging out will cause creation of anonymous app_user_id: To only use custom App User IDs, you must take care not to generate any anonymous App User IDs in the SDK. Anonymous App User IDs are generated when the SDK is configured without a provided custom App User ID, and are also created on logOut() as mentioned above.https://www.revenuecat.com/docs/customers/user-ids#how-to-only-use-custom-app-user-ids But in order to delete users in RevenueCat programmatically to comply with Apple’s User Deletion Policies, I must log out the user in addition to deleting them:There are two ways to delete a customer in RevenueCat – manually through the customer dashboard or programmatically via the REST API. With either approach, you should make sure that the customer is also logged out through the RevenueCat SDK in addition to being deleted or they’ll get recreated on the next app launch.https:
I’m currently testing in the sandbox environment. The INITIAL_PURCHASE webhook is being delivered correctly, but I’m not receiving the RENEW, CANCELLATION, or EXPIRATION events. What’s strange is that when I resubscribe, both the INITIAL_PURCHASE and the previous EXPIRATION events are delivered together at that time. Can you help me understand why this is happening and how I can ensure that the RENEW, CANCELLATION, and EXPIRATION events are sent as expected?
Flutter: When I used the sdk RevenueCat version 6.23.0 it worked perfectly, I have updated to the latest 8.1.0 and it does not show me the paywall, it shows me error 23, maybe the methods are different, I share how I call it.in the main.dart I initialize it and check if it is a subscriber.Future<void> initRevenueCat(BuildContext context) async {await Purchases.setDebugLogsEnabled(true);PurchasesConfiguration configuration;if (Platform.isAndroid) {configuration = PurchasesConfiguration('goog_xxxxxxxx');await Purchases.configure(configuration);}else if (Platform.isIOS) {configuration = PurchasesConfiguration('appl_xxxxxxxx);await Purchases.configure(configuration);}bool esPro = false;try { CustomerInfo customerInfo = await Purchases.getCustomerInfo(); List<String> entitlementIdentifiers = ["Monthly", "Annual", "Six Months"]; for (String id in entitlementIdentifiers) { if (customerInfo.entitlements.all[id]?.isActive == true) { esPro = true; break; } else { esPro = false; } }
How to detect automatically when InAppPurchase subscription expire or is cancelled by user ?My app show some feature on the home page and I want to display them only for subscribed users.If the user cancel the subscription in an other device how to detect that ?Firebase claims seems to not be automatically updated...I’m using flutter.
Hi there 👋🏻I am trying to use SubscriptionStoreView(for: offering) that is mentioned here:https://www.revenuecat.com/blog/engineering/storekit-views-guide-paywall-swift-ui/#h-using-with-revenuecat But I am not able to find this view, although I have imported both RevenueCatUI and RevenueCat.What am I missing?
Can someone help me with this ? I have attached two versions, one on my iphone 13 pro with ios 18 and another one on my old iphone 7+ with ios 15. I don’t understand how to control the font size and wraping that is happening on the older iOS version
I am trying to update my Android app but now getting following error on play store console Your app currently uses Play Billing Library version AIDL and must update to at least version 5.2.1 to make use of the latest monetization features on Google Play And its blocking me to create a release. Today I upgraded revenuecat sdk to ```implementation 'com.revenuecat.purchases:purchases:7.0.0'```And I have also added ```implementation "com.android.billingclient:billing:7.0.0"``` But Google play console not allowing me to create release. I am not sure what to do here. would appreciate any help. Thanks
Hi RevenueCat, I would appreciate some help here. I am developing an app in SwiftUI for iOS and using the RevenueCatUI PaywallView to display offers. When the paywall presents itself to the user, I would like to verify if the user has made an account with the app before allowing the purchase.Can you advise on how to make this change without altering the package dependency itself? I would ideally like to make an extension of the PayWallView or a superclass “CustomPayWallView” with custom functionality, but it is a lot of code to read through and edit.I understand if this is a big ask, but any pointing in the right direction would be a great help. Thank you! Edit: I would also appreciate a link to the PayWallView API Reference, I can’t seem to find one. Thanks!
My app don’t have any login or registration. User can simply come and use my app. My app is a chat bot and user can use it for free 3 times and after that user have to buy the subscription to keep using the app. Now the issue is that google is asking for login credentials to access to premium features of the app. How can I allow them to bypass this to access to features for free to test my app.
In the apple I configured - introductory offer - “$17.99 every month for the first 3 months”How in the paywall I can get this “3 month” or length of introductory period?{{ sub_offer_price }} for first {{ sub_offer_duration } return$17.99 for first 1 month
Hello,I integrated the FB SDK according to your documents and after the release I did not see AppInstall events in the FB Console.I assume this is because I disabled automatic FB event tracking and all RC sends is subscription events.I can't use the AppActivate event because it can't be related to ad campaigns.Can you explain if I might have made a mistake somewhere when linking FB and RC.
I am new to RevenueCat and just learning the basics of how to integrate it in Android app. As of now, I am continuosly navigating back and forth between various revenue cat webpages and I am facing this weird UI anamoly: RevenueCat has a great looking RC fabicon attached to its docs, and community pages. But on the app.revenuecat.com page, there is no favicon. Why is that happening? Is it just an issue at my end or anyone else is facing that?
HiI watched the video, I read many post but I didn’t find a solution and I’m still blocked Could not validate subscriptions API permissions My RevenueCat App ID: apped8cbf6a6e if someone from Revenuecat can help me please 🙏
Hi @Michael Fogel @Jens @kristineT ,As mentioned in the in this thread and also in this doc (https://www.revenuecat.com/docs/event-flows) in the billing issue flow section that if a billing issue is encountered, then the following events happen:-1. If grace period is enabled, then billing issue and cancellation event is dispatched simultaneously and when the grace period ends, then expiration event is dispatched immediately.2. If grace period is not enabled, then billing issue, cancellation and expiration is dispatched immediately.I have been testing the events in the sandbox environment for two products I created in play console in which I enabled grace period in one of them and disabled in the other one and I bought the subscription successfully and then I chose the test card always decline option before renewal to test the billing issue events. I observe that billing issue and cancellation event is dispatched in both scenarios but the expiration event is dispatched exactly after 10
Hey,Recently I switched my unlock check from look for entitlements in `active`, to looking in `activeInCurrentEnvironment`, in order to prevent people unlocking Pro in TestFlight and carrying it over to production.This went smoothly for them majority of users, but a couple of users have reported losing access to their Pro status, despite having active subscriptions/production lifetime purchases. I got one user to send through a recording of his error, and the purchase flow went as follows:Launches app, I call `getCustomerInfo` with a policy of `notStaleCachedOrFetched`, I then pass that to a function call `handlePurchaseInfo`, which determines the user does not have any active entitlements. They open the Pestle Pro screen, which determines they are ineligible for a trial. They hit ‘Restore Purchases’, which triggers the RevenueCat restore purchases flow, and I pass the result to the same `handlePurchaseInfo` method from before. In this case, `activeInCurrentEnvironment` is empty, so I
Hey! I’m getting rejections from Apple due to the fact that products are not loaded on the paywall during their review. In the logs I see that revenuecat sdk returns “SKProductsRequest took too long to complete” after a very long timeout. And I’m not successful in reproducing this behaviour locally or with any other test devices. I’m using React Native and what I do in the code is simply call `await Purchases.getOfferings();` and using `7.6.0` version of the library. I don’t have any additional logs or information since SDK only throws this error. Any advice on how to debug or resolve this?
I think a webhook for entitlement changes would be really useful for us.Our particular situation is the following. We are migrating the old subscriptions to RevenueCat entitlements and we use the syncPurchases method which works great and RevenueCat users get the right new entitlements. However, our backend does not get notified about these entitlement changes and doesn’t update our users in the database.Our entitlements can get activated by purchasing one of several subscription products so I believe it’s much cleaner for the backend just to listen to entitlement changes than to listen for subscription changes and have extra logic to map subscriptions to entitlements. My wish is for the backend to only know about entitlements. And the whole mapping of susbcription to entitlements to be done only in RevenueCat.Does this make sense? Am I missing something?
I keep getting this error in my react nativeCannot read property 'setupPurchases' of nulI am running react-native with expo bare workflow and running development build but i keep getting that error. This is my code below in App.tsx useEffect(() => { Purchases.setLogLevel(LOG_LEVEL.VERBOSE); let apiKey = ""; if (isIOS) { apiKey = REVENUECAT_APPLE_API_KEY; } else if (isAndroid) { apiKey = REVENUECAT_ANDROID_API_KEY; } if (!apiKey) { console.error("RevenueCat API key is not set"); return; } Purchases.configure({ apiKey:apiKey }); }, []); I am sure that the api key is being referenced properly and I have also tried upgrading and downgrading the versions of react-native-purchases but i still keep getting this error. Please let me know how to resolve this issue. I have also checked other forums for this issue but still couldn’t find a solution for this. I am currently using "react-native-purchases": "^8.1.0",
ios17.4, revenuecat 5.00, swiftui, sandboxI’m using the generated PaywallView, which works great BTW. The purchase works, but the the callbacks never get called. I put break points in and they aren’t triggered and the logging doesn’t show up.I get the “You’re all set.” from Xcode and the delegate gets called.Is there something I’m missing about how this works? thanks
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.