Discussion and help from anything related to RevenueCat.
Recently active
Hello, We are receiving high volume of Unknown Error from Apple during the purchase. Let’s say 1 of 8 users clicked free trial start button gets this error with Revenue Cat. Before we had the same problem as well.“There was a problem with the App Store.”Is that normal ratio? I believe there is something weird. Best,Gokhan
I'm moving from my paid iOS app to a subscription model. I synced the build number of the paid app using the purchaseHelper. https://github.com/codykerns/PurchasesHelperCompatibilityAccessManager.shared.syncReceiptIfNeededAndRegister(entitlements: [ .init(entitlement: "premium", compatibleVersions: ["1", "2", "3","4","5"]) ]) How can I test that existing paying users are converted to Premium before releasing the app?If I buy a paid app on my device and update it to a test flight, will I be able to test it?
A growing number of our Android users are experiencing unexpected subscription expirations due to the PurchaserInfo.getEntitlements() returning empty incorrectly. The user will then use the restore functionally and PurchaserInfo.getEntitlements() will return correctly with their entitlements on the restore callback. Within the the next couple sessions the user will get 0 entitlements returned again and be forced to restore once again. This behavior does not seem to stop and the users are stuck in this loop. Background information:- Android- Confirmed users own entitlements in rev cat dashboard- RevCat Version: v3.3- We call Purchases.getSharedInstance().getPurchaserInfo() to verify subscription on every session
Hello, In my app I have Block Restores enabled and the following situation:2 auto renewable subscription options set up - monthly and annualUser A subscribes to an annual subscription User B logs in on the same device and tries to subscribe to annual - gets the `receiptAlreadyInUseError` and I show an error But if User B tries to subscribe to a monthly subscription - the subscription goes through, switching User A’s subscription to a monthly subscription instead of annual (user B still doesn’t have a subscription, as expected)How can I tell that the currently logged in Apple ID is already subscribed with a different user and show an error when another user tries to subscribe and inadvertently changes the original user’s subscription?`CustomerInfo` doesn’t seem to have that info, User B has no active subscriptions.
Hi,I’m in a situation where I have to test on a simulator, but despite setting up my StoreKit Configuration, I continue to hit a brick wall. Note, testing on a device was working fine.I’ve scoured as many relevant help articles as I could find on the community, but I’m still stuck.Specifically, I get an error message saying the product identifier I’ve created in my StoreKit Configuration is invalid, and that an SKProduct could not be found.Invalid Product Identifiers - ( "com.gravy.dev.monthly_4.99")Could not find SKProduct for ( "com.gravy.dev.monthly_4.99") I’ve tried this in a few different ways, always making sure the product existed in RevenueCat, and was apart of a “current” offering. That, and I’ve made sure to attach the StoreKit Configuration in my run options on the current target - but still no luck.Also, fwiw, I tried mimicking a current App Store Connect setup in my StoreKit Configuration, but that didn’t work either. Upon checkout, I’d get an error saying there was
I need the purchaseToken for our server. This field exsits in the Android API,/** * Token that uniquely identifies a purchase. */ val purchaseToken: String,And it is received upon purchase. But iOS API of the purchase function below doesn't send it backfunc purchase(package: Package) async throws -> PurchaseResultDataWhen I debug, I see a similar data inside this:purchaseResultData.customerInfo.allPurchases.first?.value["id"]But allPurchases is private so I can't get it this way.Any ideas?
Hello, I’ve added my Google Play Credentials 48hrs+, but still get this error, can you please help me?D/[Purchases] - DEBUG( 5434): ℹ️ API request started: GET /subscribers/%24RCAnonymousID%3A2d82a4e3f2fa46c49d3afc4701689e76D/[Purchases] - DEBUG( 5434): ℹ️ API request completed with status: GET /subscribers/%24RCAnonymousID%3A2d82a4e3f2fa46c49d3afc4701689e76 304D/[Purchases] - DEBUG( 5434): ℹ️ PurchaserInfo updated, sending to listener.D/TrafficStats( 5434): tagSocket(168) with statsTag=0xffffffff, statsUid=-1D/[Purchases] - DEBUG( 5434): ℹ️ Vending PurchaserInfo from cache.D/[Purchases] - DEBUG( 5434): ℹ️ Checking if cache is stale AppInBackground falseD/[Purchases] - DEBUG( 5434): ℹ️ API request started: GET /subscribers/%24RCAnonymousID%3A2d82a4e3f2fa46c49d3afc4701689e76/offeringsD/[Purchases] - DEBUG( 5434): ℹ️ API request completed with status: GET /subscribers/%24RCAnonymousID%3A2d82a4e3f2fa46c49d3afc4701689e76/offerings 304D/[Purchases] - DEBUG( 5434): ℹ️ Requesting products fro
Hi I'm having problem with raw data which I get from Revenucat. If I talk about this problem, the data is coming in dublicated. store_transaction_id that occur in one day are dublicated. Actually, that day is happening and I think store_transaction_id should be singular value for unique users. So what am I missing? If you have any suggestions, please feel free to comment. Best Regards
These questions are about how churned MRR is calculated in the MRR Movement charts. QUESTION 1 - Billing Retry and Grace PeriodsHow are users who go into billing retry/grace periods categorized during the billing retry and grace periods? Are they placed into the churned MRR bucket, and then back into new MRR when and if their subscription is recovered?Or are they only placed into the churned MRR bucket when the subscription actually cancelled?QUESTION 2 - Reactivation after expirationIf a user’s subscription expires and they then joins again later, is this this considered New MRR?
I get charges from Apple almost everyday for my Apple Search Ads. Anyone know how to change it so that I only get charged once a month? It’s just annoying to sort through and categorize all those charges in my accounting. Thanks!
I’m trying to setup Real Time Developer Notifications, but keep getting a 400 error every time I click the button. Not sure if this is related to the switch from Apps to Projects.
It’s unclear what the best practice is for managing test mode (especially on Stripe) wrt Rev Cat. In Stripe you have to create a different set of Products (with different IDs) for live vs test mode. Does this mean that I should maintain a separate “test” or “dev” project in Revenue Cat?I’m wondering if there’s another approach I’ve not yet thought of that may be simpler.
Our users can use an apple promo code to get 30 days free trial.Before this, users can get 7 days free trial first.7 days free trial → 30 days free trial (granted by promo code) → normal we successfully get webhook events when 7 days free trial starts,but we found that we didn’t get events when 30 days free trial starts(we should get some events today) please help us clarify this issue, thank you
If running an experiment between two offerings – each containing a subscription product and a lifetime subscription product – do the results of the experiment consider the value of the lifetime product in the calculation of LTV?I see no mention of lifetime product metrics in the table of data and so it’s unclear to me if Lifetime products are factored in to the LTV equation. Therefore, it’s difficult to know if the results of the experiment consider any uptake in sales of a Lifetime product.
I have added a scheduled change in the duration of my introductory offer in App Store. I have change the offer duration from 2 weeks to 1 week, and scheduled the change to happen in two days. But when I test my app, product.introductoryDiscount?.subscriptionPeriod returns 1 week which is the upcoming change and not 2 weeks as expected. When I click to buy the subscription the iOS subscribe page shows 2 weeks trial period. Am I missing something here?
Hello , I renectly started using revenuecat and its working perfectly fine that is what we saw in the trials . But recently we got one subscription and the checkbox under renewal is not active . I thought it might get active after the subscription renewed . But then the subscription did not get renewed . Now i do not know whether user cancelled it or there was some setup issues . Can anyone tell me whether the checkbox becomes active when the user subscribes stating that it will be renewed monthly . Or do i need to check anything specific when doing revenuecat setup that i am doing wrong . Happens for both iOS and Android
I would like to apply Facebook Ads Integration to track subscriptions generated from Facebook Ad campaigns. My question is even if the ad tracking has been disabled by the user meaning revenuecat cannot collect idfa as identifier, yet is the attribution cycle completed accurately? I mean does the attribution integration without idfa let me see how much revenue the campaign generates precisely on facebook reports? Is facebook anonymous id enough for tracking campaign’s revenue?Thanks.
A real customer in our production iOS app reached out to my team today after upgrading their subscription and saw inconsistent results. We investigated and reproduced the issue in the sandbox. Based on the data we receive from RevenueCat, we display to our customers info about their active subscription(s). In this case we (my team + customer) are seeing that the customer is currently subscribed to two subscriptions in the same iOS Subscription Group. We are waiting on the customer to send us a screenshot of their active subscription for our app from the App Store - Manage Subscriptions screen and waiting for confirmation if they received a prorated refund from their previous subscription from Apple. We suspect (and hope) that the screenshot will show the customer is only subscribed to the upgraded Tier 1 subscription which matches the validated apple receipt data that indicates the Tier 3 subscription was upgraded (is_upgraded: true). Details We have 4 iOS subscriptions right now. In o
Hi i am looking for some help with a few questions. The first is that we will be using offerings to manage discount codes across iOS and Android and then tracking the use of those codes throughout the user lifecycle. I have two main questionsAre we able to export the data broken down by offering (I have had a look at the reports and can see that I can segment by offering but as we don’t have any data in there yet i cant see if that data would then be segmented when exported to CSV?? What happens if I remove an offering? I would like to be able to remove an offering so that it doesn’t get returned in the future to the app (and therefore isn’t a valid code) but then also still be able to report on users that are a part of that offering? is this possible? Regards Jon
I have granted a one day promotional entitlement on 2/18/2022. It should have expired 2/19/2022. It is 4/2/2022 and the entitlement is still returned from https://api.revenuecat.com/v1/subscribers/${userId} This can not be happening for our users. Any help? Heres where the page says entitlements will automatically be removed once expired: https://docs.revenuecat.com/v3.1/docs/promotionals
React nativeOn make purchase getting errorError: There was a problem with the App Store. at Object.promiseMethodWrapper [as purchasePackage]
Hi, Alankrit here, We are planning to move to RevenueCat from our existing subscription architecture, in which, we save Apple App Store user subscriptions, in our backend, and they have the “originalTransactionId” as the unique key. We do not store any App Store receipts. While reading the migration documentation here https://docs.revenuecat.com/docs/migrating-existing-subscriptions , I figured that it is required to have a record of all App Store receipts, in order to migrate existing user subscriptions to RevenueCat. Some answers :suggest we should do Client Side migration. But, another aspect of our current architecture is, we first ask users to subscribe and only then they log in / sign up, so it is possible that at the time of subscription we may not have any user info. Question: Will client side migration work in this case ? And if so, any guidance on how to implement it would be really appreciated.
Hi Guys!Our project uses revenuecat with react native. We noticed a problem with purchases on Android TV when a user doesn’t have the payment methods defined on his Google account. When a user tries to purchase an item google directs the user to a page where presents 2 options: complete the purchase on an Android device, or following a link on a desktop. When a user completes the payment on another device the app doesn't get the information about the purchase and the only option that the user has is to try to back to previous screen.and we get this error: 2022-03-24 11:37:42.025 18325-18325/? E/[Purchases] - ERROR: 🤖‼️ BillingWrapper purchases failed to update: DebugMessage: . ErrorCode: USER_CANCELED.null2022-03-24 11:37:42.029 18325-18325/? E/[Purchases] - ERROR: 🤖‼️ Purchase was cancelled.The purchase is completed by the user, but he can't access the app’s content because the app doesn't know that he has purchased the item.Anyone has experienced this? We really need some help he
Hello there,I’ve recently saw something quite odd happening, I’ve checked an user and their subscription was renewing the the future, meaning active subscription, but the customer history’s last event were only BILLING_ERROR. You can see it right below: I’ve managed to find the missing webhook sent by the RENEWAL event, but it is still missing in the customer history. The missing event is right below:What can I do or what can be done to correctly display the events in the customer history?
Hello,We implemented Adjust using the Segment Wrapper (not the Adjust SDK), and when we connect RevenueCat to Adjust no events fire. This is because we are not setting the $AdjustID in the app. Is there a way to set this without using the Adjust SDK? Can we send it from segment to Revenuecat? Any help is sincerely appreciated.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.