Discussion and help from anything related to RevenueCat.
Recently active
Currently we only have two options:price.formatted, which uses the period of the offer dividing the price into monthly price, but without access to the currency symbol (only code is offered)How are meant to display something very common like $60.00/year also shown as $5.00/month? fun StoreProduct.priceFormattedMonthly(): String? { return this.period?.valueInMonths?.let { months -> val monthlyPrice = this.price.amountMicros.div(months).div(1_000_000).round(2) return "${this.price.currencyCode}$monthlyPrice/ mo" }}
Hello! I have enabled the integration from RC to Meta using the App events api. When in development and testing in sandbox mode, any test purchase shows up instantly in the events feed and later gets forwarded to metas event manager as expected. I have tested 2 real production purchases and it's been almost 24 hrs. RC correctly shows the purchases and customers, but no events in the meta integration as well as meta, both have not received these events. Is this normal or due to volume, or is something set up incorrectly? Thank you.
Hello - wanted to clarify something I saw discussed in documentation and other questions. It seems that there shouldn’t be a big concern exposing a customer’s user ID to the customer themselves. Is there an issue with other people being able to discover a customer’s ID? For example, we have IDs for our application users. These users may (in the future) interact with each other, for example user A might send a message to user B. Would it be a problem if the IDs that we use to enable identifying the target of the message are the same IDs we use to identify a user to RC? In other words, what would user A be able to do if they knew the customer ID for user B? Or: given our public API key (which is compiled into the app) and a customer’s ID, what information and operations are exposed? It would be great if there was a RC security whitepaper or something like that which went over all the security considerations for implementation somewhere in the doc hub...maybe i’m missing it?
Hello,Is it possible to have a button on the paywall that triggers a custom action in my app similar to the Customer Center functionality?I would like to put a button which (closes the paywall and) resolves an action in my app afterwards.Thanks,Stan
Hi,I’m experiencing an issue I can’t seem to fix.The text color on my paywall appears differently in the iOS simulator compared to what I see on the RevenueCat dashboard. Some text elements don’t have the same color as configured in the dashboard.I’ve tried switching the device appearance between light and dark mode, but it doesn’t change anything.Has anyone experienced this before or knows what could cause this discrepancy?Environment:Flutter: 3.38.7purchases_flutter: ^9.11.0purchases_ui_flutter: ^9.11.0iOS: 17.2Thanks in advance!
Hello, I’m using react native (react-native-purchases and react-native-purchases-ui both at 9.7.0) for my iOS-only app. I’m displaying a paywall to my users via const result = await RevenueCatUI.presentPaywall({ offering });I have a video in my paywall, specifically, the offering “Aziz with video”. You can clearly see that the video has audio if you click on the “eye” icon, which will play the video: I’m testing this on my iPhone by clicking on the “Preview in app” button, scanning a QR code, and having the paywall display in the RevenueCat mobile app.
Hey Everyone, I have a customer that not exist on my backend at all, does not exist on the dashboard at all (neither production or sandbox) but he is still able to login into my paid app… Can someone please tell me what on earth is going on? Any help would be super appreciated. Customer ID: 7f62a3e2-7f3b-4f9a-9d82-f472584ffbee
When I export my Figma file to RevenueCat the line spacing is much larger than it is in Figma. I’ve also tried building this natively in RevenueCat, but I don’t see any controls for linespacing. And if I just use two blocks next to each other with no space, the line spacing is still too large. Is there anyway to address this so the linespacing for the paywall in RevenueCat matches the design as created in Figma?
Hi team,Is there any way to access the beta paywall analytics? kind regards,D
Hi,I am trying to integrate Meta Conversion API using the steps in the documentation. I have said up everything on Metas side and see general install data flowing in. I am currently still in development of my app and using the Test Store for subscriptions.I see the requests coming back Response 400 in the RevenueCat dashboard with the following error: Response body{"error":{"message":"Invalid parameter","type":"OAuthException","code":100,"error_subcode":2804043,"is_transient":false,"error_user_title":"Invalid extended device info parameter","error_user_msg":"You are sending a device information with wrong 'extinfo version' or 'OS version'. Please refer to https:\/\/developers.facebook.com\/docs\/graph-api\/reference\/application\/activities\/#parameters for more details.","fbtrace_id":"AvGtc5A3lYjP9sqP7guRLhh"}}Since you are the ones handling the payload I can’t do anything about this.Request: {"access_token": "EAAa1ZAw...krOJf...","data": [{"action_source": "app","app_data": {"adverti
Hi, having trouble with the Purchase Button Text. In the paywall creator, all is fine. When I build my app though (iOS), the Purchase Button Text does not show when the annual plan is selected, but if I select the monthly plan then the text does appear. Tap annual again, and it disappears. See screenshots below. Any advice on how to fix this? Thanks so much!
Hi there. I have a carousel contained within a stack and want to set the Size/Height of the stack to “Fill”, but it’s just showing a “Fill disabled: parents height is set to fit” message. However the parent is the main Paywall component which has no option to change its size?
Trying to use this endpoint to get the product details, but the trial_length field in the subscription model is not returned (null) even though the product does have a trial period.What’s going on? How do I get this information?
Hello RevenueCat Support Team,We are investigating an attribution issue related to AppsFlyer integration on Android and would appreciate your assistance.ContextIn some cases, purchase events (af_purchase) sent to AppsFlyer via S2S are attributed to an old appsflyer_id, which appears to belong to a previous installation of the app. According to AppsFlyer documentation, a new appsflyer_id should be generated on every fresh install.AppsFlyer support confirmed that these purchase events are received via S2S and advised us to ensure that the latest appsflyer_id is correctly extracted from the AppsFlyer SDK and used in the S2S request.Our implementation We obtain the AppsFlyer ID via:AppsFlyer.getAppsFlyerId() We pass it to RevenueCat after SDK initialization using:purchases.SetAppsflyerID(AppsFlyer.getAppsFlyerId()); RevenueCat then forwards purchase events to AppsFlyer via S2S. Questions Does RevenueCat update the AppsFlyer ID used for S2S events, or is the first provided value persis
How do I add a Footer to my Paywall. When not using a template I don’t see the option as it’s not included by default and it’s none of the components.
The Paywall doesn’t show the price (although all other UI are shown correctly) and pressing the purchase button doesn’t have any effect. It shows the price and the button works in Test Store.I have added myself to Google Play Internal Testing and have the correct product ID and base plan Id from Play Console. I have also linked the offer and entitlement correctly. The Google Play API key is also correct in the client code.
So we’ve been running an experiment for about a week now, and discovered a row called “other”. We’re guessing that it is counted as “other” when a user changes the product, say from Monthly subscription to Annual subscription in the device settings or app store. (*not* within the app or RevenueCat paywall) The question is, if our understanding is correct, how does this affect the actual offerings rows? For example, If a user changed from monthly subscription to annual subscription, then is monthly subscription counted -1 and annual subscription counted +1 in the Experiments report table? Or do the numbers not change once they’re counted? Thanks!
Per https://www.revenuecat.com/docs/tools/experiments-v1/creating-offerings-to-test, we created different subscription groups: https://i.imgur.com/9eIRy0Y.jpegWe’re only using “Asr All Acces” pricing, but we want to experiment with the “Asr All Access ($3/mo $30/yr)” and “Asr All Access ($4/mo $40/yr)” subscription group pricing. Apple rejected this 😐 Any suggestions on working around this? Is different subscription groups still the best way to experiment with pricing?See below for Apple’s reason: Guideline 2.1 - Performance - App CompletenessIssue DescriptionIn-app purchase products associated with the app version submitted for review, such as All Access (1 month) ($3), All Access (1 month) ($4), All Access (1 year) ($30), All Access (lifetime) ($50), All Access (1 year) ($40), and All access lifetime ($49.99), could not be found in the submitted binary.Next StepsIf you do not want to make these in-app purchase products available at this time, remove the unused in-app purchase produc
One of the paywall templates has a toggle to enable a free trial (and is set to off on default). I want to use this but it is not clear how to set it up.My question is do I need to duplicate my products in App Store Connect and have one set with, and one set without a trial period? Or is there an easier way and can RC somehow handle the trial?
How are we supposed to determine which roles are required for which endpoints? The descriptions for configuring roles via the dashboard are vague and do not match the apis whatsoever.
I am currently not receiving any push notifications on my iphone when a user is purchasing something in my app.I confirmed in the IPhone settings as well as within the RevenueCat app that RevenueCat is allowed to send notifications. Any idea why I wouldn’t be notified about a transaction?Thanks!
I am testing a "No-Login" app (Anonymous IDs only) using RevenueCat in the Apple Sandbox environment. My project also uses Firebase and AppsFlyer. I am trying to simulate two completely different users, but RevenueCat is automatically aliasing them into a single Customer Profile.The Workflow I Followed:User A: Installed the app → Generated $RCAnonymousID_1 → Purchased Weekly Plan using Sandbox Account A.Cleanup: Uninstalled the app from the device.Switch: Signed out of Sandbox Account A in developer Settings and signed into Sandbox Account B.User B: Freshly installed the app → Generated $RCAnonymousID_2 → Purchased Monthly Plan using Sandbox Account B. The Issue: Instead of creating a second Customer Profile for $RCAnonymousID_2, RevenueCat added $RCAnonymousID_2 as an alias to the first profile.Integrations in Use: Firebase: I use the Firebase integration. (Are Firebase Instance IDs or UIDs being used by RevenueCat to link these sessions?) AppsFlyer: I have the AppsFlyer integration
Discovering the sdk is challenging when it’s not clear if test case is failing because of developer errors or because some functionality is not supported in the Test Store.I’ve found this information is really scattered on a case by case basis. IS there anywhere where we can see what functionality should or shouldn’t work in the Test Store?This page exists - https://www.revenuecat.com/docs/test-and-launch/sandboxHowever it lacks important details - for example, that introductory offers cant be tested in the Test Store.
Hi! I am using an app that has 2 parts: a web part and a mobile part (for Android and iOS). Both are generated using the same codebase with Quasar, which in turn uses Capacitor to generate the mobile apps.To allow users subscribe on the mobile part, I use the Capacitor SDK. I want users to be able to see their customer information (current plan, renewal dates...) in the app, be it the mobile or web version.Obtaining this information on the mobile version is easy using the Capacitor SDK. However, I’m not sure about the recommended way to obtain this info on the web part. My first idea was to use the Web SDK. However, there is no way to get a “web” API key, aside from setting up the RC Billing with Stripe, which I don’t intend to use. So I plan to use the Android key.Here are my questions:Is it OK to use public API key for Android store, as in theory the customer info is shared amongst every platform? Is it the idiomatic way to use the web SDK as I plan to or is there some caveat that I
I have an app that uses one-off lifetime purchases instead of subscriptions. The overview dashboard seems to be set up with subscription data in mind. Is there any way I can make it show one-off purchases and other data related to that?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.