Discussion and help from anything related to RevenueCat.
Recently active
Hi, We are trying to use SKAdNetwork to track trial starts and trial conversions via Branch. While working with Branch customer support, they suggested we track these natively via BranchEvents so that the events would be captured by SKAN. This is easy for trial starts since we get a callback on device when the trial starts. However, for trial conversions, we need to do this client side as well to have them registered via SKAN. Is there an easy way to do this? One way I thought about doing this would be to set up `addPurchaserInfoUpdateListener` in the app and an async storage valuue to set this listener until if fires and then check if the user info changes to subscribed or cancelled. This seems a little convoluted though so I wanted to see if there was an easier way. As an aside, the Branch docs should probably be updated with a note around SKAdNetwork as we spent a lot of time trying to debug why we were getting no attribution data and it was because the events were coming server sid
Hello,I have tested subscriptions using RC and verified that the transactions appear in the Sandbox. Now I want to test purchasing In App Products from Google Play. I have set up the products in play console and configured the products and offerings in RC as well. I was able to use the RC API to make the purchase using Test Card from my app but the transactions don’t show up in the Sandbox. Is there a different place where non-subscription transactions are stored?
İ have new app on play store with subs from revenuecat. İ have so much rejected, declined and canceled payments. İ tried be sub on my app with phone via test card its not problem, i tried with real card with real money its no problem but there others have a problem i think or i just made it up. So you think my subs is working completely reason of my testing or is there a problem?
How to map UTM parameters?utm_campaign → $campaignutm_source → $mediaSourceutm_medium → ???utm_term → $keyword
So I’m currently trying to implement revenuecat into a swiftui app. This is my first foray into swiftui and I haven’t really done any swift in years either so the lifecycle events are confusing me.I’ve successfully implemented the revenuecat SDK and in my “app” class I have a “Stream” setup to listen to events like so. My model is quite simple just those 2 properties and a computed property of isUnlocked that looks for an active entitlement. AppView().environmentObject(self.revenueCatCustomerData) .task { // Listens to AsyncSequence for customer info updates for await customerInfo in Purchases.shared.customerInfoStream { self.revenueCatCustomerData.customerInfo = customerInfo self.revenueCatCustomerData.appUserID = Purchases.shared.appUserID } }I also make use of the paywall feature. However whenever I open my app, the paywall
Here in Europe, some banks are requesting a 2nd step verification to confirm a purchase (especially if it’s the first time the user order something with its Google Play account)This verification is made thanks to the customer’s bank app.The process is the following : when going through the process to purchase something (a subscription in my case), before the purchase is validated and before the Google Play bottom dialog is closed, the user’s phone receive a notification from its bank account to confirm the transaction,BUT sliding the top bar to see the notifications and tap on the one coming from the bank app IS CLOSING the Google Play bottom dialog.Then validating the transaction didn’t transform the purchase from a “pending” state to a “purchased” state.How do I have to handle this case??Thanks!
Hi RevenueCat,I'm new to using RevenueCat and have a few questions regarding my subscription setup and testing process.I have two monthly subscriptions set up in my Google Play Console:Standard – Monthly with a 7-day free trial Professional – Monthly (no trial)I've imported these products into RevenueCat and attached them to entitlements. I created an offering with both products and added them as packages.For the Professional package, I selected "Monthly," but for the Standard package (which includes the free trial), I couldn't select "Monthly," so I used the "Custom" option instead. For the paywall, I used Template 7 - Siamese Content. My questions: Am I setting this up correctly, or should I be using a different approach to configure the free trial? How can I properly test the subscription, especially the 7-day free trial, and ensure the introductory offer is displayed correctly on my paywall? Any recommendations or best practices to ensure a smooth setup would be greatly appreci
I would like to ask if its possible to use the StoreKit transaction observer while having the RevenueCat installed. I know that RevenueCat exposes this observer in the shape of of a delegate or a `AsyncStream` but due to the abstraction layer doesn’t return some of the data (transaction id) we require. Currently, we are planning on just using the StoreKit transaction observer to read the transaction id and send it to the backend and have the RevenueCat process the transaction and finish it. Will the transaction observer still work with StoreKit? What are the best practices? Any issues I should be aware of. Thanks
Hi team,Does purchasing a consumable (or any non-subscription) Product effectively trigger all purchases to be restored/synced?Example scenario:1. I subscribe to a paid tier in an app2. I sign out and log in as a separate user3. I purchase a consumable e.g. gems4. `CustomerInfo` contains the entitlements from step/user 1Just checking if this is expected behaviour i.e. purchasing a product causing all previous purchases being synced even if we have not called `syncPurchases` or `restorePurchases` explicitly.Thanks in advance!
Hej -- so I’ve read several topics here about the best way to increase pricing of existing subscriptions in both iOS and Android, and wanted to make sure if I got this right, because it all feels very complicated for what should be a very common use case.Let’s say we want to increase price from 1.99 to 2.99 for a monthly subscription, and 19.99 to 29.99 for a yearly subscription, both in the same “Subscription Group” in iOS, and in the same “Subscription” in Android.We want to grandfather existing users; so ideally everybody paying 1.99 right now, will keep paying that amount until they cancel, and will still be able to upgrade to the 19.99 yearly subscription.There seem to be two strategies:Option 1:Increase the price of the existing plans in the App Store and Google Play, choosing to keep the existing customers at the same price.Pro:The “official” way -- easy to later let people opt-in / transition to the price change. Keeps the subscription groups simple. Offers etc still apply to t
I get the error in the title when I run the followingawait Purchases.purchaseProduct(product.identifier);I have verified that the Product Id is the same as the one in App Store Connect.Bank account and taxes are already set up.What is the problem and how do I fix it?
ionic capacitor Hello, I am having a peculiar issue. First of, I do configure revenue cat right of the bat with user guid as appUserIdPurchases.configure({ apiKey: revenueCatApiKey, appUserID: userStore.tokenData.user_guid, observerMode: false, })then, before even finishing the purchase I do all the sync verification stuff to make sure the user guis is being used async purchasePackage() { const success = await this.syncRevenueCatUserId() if (!success) { this.status = revenueCatStates.FAILURE return } const response = await this.orderStore.purchaseOffering() this.status = response.state if (this.stateHalfSuccessful) await this.checkIfBackendSynced(response.paymentId) }, async syncRevenueCatUserId() { // Attach email as a subscriber attribute if (this.user.email) { await Purchases.setEmail({ email: this.user.email })
Hello,I would like to create a store system in Unity using RevenueCat. However, I couldn’t find exactly what I’m looking for in the documentation. My goal is to integrate RevenueCat into a game where I sell only consumable or non-consumable items, without including subscriptions or offers.Could you provide guidance or point me in the right direction to achieve this?Thank you!
Someone could help me to make a test purchase, please? me with the test ? i think a have all connected and configurated between
Hi we recently set up stripe to handle web billing and set up server notifications as described in these docs (https://www.revenuecat.com/docs/web/stripe). However, on every purchase there is a billing issue, but I don’t see one when I look at the stripe webhook logs. Is there information that may be sent from stripe leading to us experiencing these billing errors?On each purchase the following three webhooks are fired: customer.subscription.created customer.subscription.updated invoice.updated
I’m wanting to offer a non-renewing consumable unlock system for premium features in my app similar to Due and Working Copy. All features currently release and features for the next twelve months from the purchase date are unlocked. I read this thread which is similar to what I’m wanting to do: Because I’m wanting to do this as a consumable I know I will need to track the original purchase date of the consumable to ensure its not repurchased later. My main concern is related to restored purchases if the app is removed and downloaded again. I noticed in the support documentation this requires me to use a custom app user ID. My app does not have a login system but I noticed neither does Working Copy. I’m wondering if there’s a way to create this kind of custom app user ID, send it to RevenueCat and track it somehow without creating a login system?
Can I create paywalls targeted by acquisition channel and tied to specific offerings.For example, I want the subscription price for my paid traffic to be $30 and for organic $20
Went to transfer a subscription and I’m not seeing the button on the dashboard anymore. I checked some other customers and don’t see it there either. Did this get removed? Or is there something about this specific customer that might cause it to not show?
We used to have an old format for handling user ids that we currently use to initialize RevenueCat with. What are the downstream implications if we need to change the user id format for all users? More specifically:Would there be a chance that the client gets out of sync from Google Play/App Store? What are the downstream implications in RevenueCat’s dashes/data reporting? Are there any other implications from changing the user id format? We are using Flutter so the code diff would be:# current codeawait Purchases.setup(_api, appUserId: oldUserIdString);# new codeawait Purchases.setup(_api, appUserId: newUserIdString);
We recently upgraded to Adjust SDK V5, but since the update, the Adjust dashboard isn't displaying any RevenueCat events. In RevenueCat, I can see that Adjust events are being triggered under the integration section, but these events are not appearing in the Adjust report dashboard.
Hi there,I am using Revenue Cat Paywalls to let my users purchase products. However if a consumable has been purchased before I am getting the error message:Ignoring purchase request for already subscribed packageThis is happening even though the purchase request is for a NON_RENEWING_PURCHASE which is not a subscription.My app is written in Flutter and I am currently testing on Android before moving on to iOS. I have rechecked my product set up on the Google Play Store and they are not set up as subscriptions. These products are not set up with entitlements in RC, they only have offerings attached.Can anyone help resolve this because at the moment my app doesn’t allow the repurchase of consumables which is obviously an issue.
I’ve successfully deployed my app with in app annual subscription. I’ve added some new features on the app and was trying to do full regression testing and can’t seem to retest the subscription. I pushed app to Phone with Xcode and my features are locked as if I have not purchased. I tried to purchase and nothing happens. Notice log said I already have bought. Tried restore purchase and it shows success, but then nothing unlocks on my app. also pushed to TestFlight and got same results. I tried new sandbox user and can’t seem to get anything new to trigger. The app continues to think I made the purchase. going to go through code again to make sure I didn’t remove or comment out something for revenue cat, but figured I’d post here to see if anyone has an article or video on retesting changes after deployed… fyi- I also tried to log in with the sandbox user in the App Store settings, but it’s not triggering… since revenue cat is live do I need to trigger sandbox somehow? bill
Hello all. I was looking through using the Web beta SDK and trying to get it working. When I thought I was using the right API key I keep getting Invalid API key. Use your RevenueCat Billing API key. I have tried all of them that I see and am looking to find where that one is located.
I found this annoyingly difficult so I made a free gist… so you don’t have to be annoyed. Use at your own risk etc etc...https://gist.github.com/JavascriptMick/233358b6a00d6d733ed9a630db587c2d Using https://github.com/openapi-ts/openapi-typescript to talk to the RevenueCat Rest API in a typesafe wayHow I created the schema file download the OpenAPI Schema from https://www.revenuecat.com/docs/redocusaurus/plugin-redoc-0.yaml run the followingnpx openapi-typescript plugin-redoc-0.yaml -o ./revenuecat-api-v2.d.tsdependencies "openapi-fetch": "^0.13.4", "vitest": "^1.3.1"
I have an Android app that I created years ago with a non-consumable one-time in-app purchase. In 2024 I converted it to start using RevenueCat. I realized I can see proceeds in the yearly charts for the years I didn’t have RevenueCat, which I assume are users who are still using it and re-established their purchase in the new version of the app.Is there a way to backfill all the missing data, even for those former users who haven’t yet opened the new app, such that the charts will be retroactively correct for revenue or proceeds would be accurate.Perhaps this is documented somewhere but my searches have come up empty.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.