Get help with webhooks, third-party integrations, and attribution providers.
Recently active
On August 10th, there was a noticeable decrease in ATT reported installs attributed to Facebook, dropping from an average of 70 installs to merely 15 installs per day.By August 25th, another decline was observed in reported SKAN installs on Facebook. This was accompanied by an increase in CPIs and a rise in the ratio of non-attributed installs on AppsFlyer. Interestingly, when looking at the blended numbers, there was no significant change, and there was also no surge in organic traffic as per App Store Connect data.Fast forward to October 14th, there was a campaign relaunch with the Singular MMP. This move saw a boost in SKAN reported installs and a commendable drop in CPIs from $22 down to $11. However, these numbers still weren't at the desired benchmark of approximately $5. Despite increasing the budget, the ATT installs did not see any increase, hovering consistently between 15-20 daily installs.That is the situation overview. As far as the tech goes we have RevenueCat integration
Hey! Is there any way to have discord webhook compatible with Revenuecat? There is an integration with Slack, but regular Webhook in rc and discord does not work together. Any ideas what to do to connect discord?
Is anybody here successfully using the RCxFirebase integration and getting correct revenue data in Google Analytics?I have the following problem: Revenue shown in Google Analytics seems to be counted double.For Android, I can prevent Firebase from automatically collecting revenue data via “Firebase > Project settings > Integrations > Unlink Google Play”. Then Android is fine.For iOS, however, this is not possible. Even without the RC integration, revenue is already show in Analytics and with the integration it is twice as high…FYI I am using this Firebase plugin for my Capacitor app:https://github.com/capawesome-team/capacitor-firebase/tree/main/packages/analytics...and I am using the following code (where `userId` is the user’s UUID within my app):Capacitor.Plugins.FirebaseAnalytics.getAppInstanceId().then(result => { Purchases.setAttributes({$firebaseAppInstanceId: result.appInstanceId});});Capacitor.Plugins.FirebaseAnalytics.setUserId({userId: userId});Purchases.logIn
Hi, Do you have any plans supporting Single Sign-On (or SSO) for example using Azure Active Directory? Thanks.Martin
Hi, how can i get subsciber attributes using APIThanks for help.
From what I saw on the document [https://www.revenuecat.com/docs/event-types-and-fields], can I confirm RENEWAL is the event that will be called monthly for a monthly subscription plan?
I already searched my issue on this platform, but i still havent solved it yet.why does this mistake occure? Error fetching offerings - PurchasesError(code=ConfigurationError, underlyingErrorMessage=There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from the Play Store.is it because of that? Credentials need attention Could not validate subscriptions API permissions Permissions to call inappproducts API Permissions to call monetization API
I have followed the guide for setting up the Stripe integration webhook and the webhook https://api.revenuecat.com/v1/incoming-webhooks/stripe/<my_revcat_app_id> does receive 200’s. However, no handling of the events are taking place on the revenue cat side for the customers involved in the webhook events. I suspect this may be due to revenuecat not being able to identify from the webhook payload which customer the event pertains to. What additionally needs to be done for this webhook to handle customer subscription updates from the stripe event? Is there a way to see why these events are not being handled?Thank you
If I have an app and I want to use ChatGPT, I know not to put the API key hardcoded in the app. So I put it on my own server. What is the strategy for making sure only allowed users can access my app?For instance, if in my app I require that the user have a subscription to access ChatGPT’s OpenAI endpoint, could I send the anonymous ID to my server, verify that the user is subscribed, and then perform the OpenAI endpoint relay?Or should I be doing some additional signing in, like with Sign in with Apple?Thanks!
I have updated product description on Google play console. But in my code I still get StoreProduct object with old description. What should be done to get updated description? I am using vs code, windows, flutter.
Hello, Im am going through the firebase docs for the implementation and I am on the final stage, where I check the entitlements via the firebase claims with the code belowgetAuth().currentUser.getIdTokenResult() .then((idTokenResult) => { // Confirm the user has a premium entitlement. if (!!idTokenResult.claims.activeEntitlements.includes("premium")) { // Show premium UI. showPremiumUI(); } else { // Show regular user UI. showFreeUI(); } }) .catch((error) => { console.log(error); });When I go to check the active entitlements with the code like so console.log(idTokenResult.claims.activeEntitlements) it returns undefined and when I check the returned object of just console.log(idTokenResult.claims) activeEntitlements doesn’t exist. Also I enabled claims in the firebase setupWhat can possibly be the fix for this? Thanks
We have an AppsFlyer Integration that occasionally uses the customer_user_id as the appsflyer_id. Does anyone know why this would happen?Here’s an (anonymized) example.{ "af_events_api": "true", “appsflyer_id": "aaaaBBBBCCC", "bundleIdentifier": "com.bundle.app, “customer_user_id": "aaaBBBBCCC", "eventCurrency": "USD", "eventName": "renewal_event", "eventTime": "2021-10-08 21:27:43.000", "eventValue": "{\"af_revenue\": \"5.99\", \"renewal\": \"true\", \"af_content_id\": \"monthly_plan\", \"af_currency\": \"USD\"}"}A correct appsflyer_id looks like a Unix Epoch timestamp with a random number appended like this. "appsflyer_id": "1617274484000-5786735",Does anyone know why it occasionally doesn’t have the correct Appsflyer ID?
We’ve got some integrations with Amplitude and other third parties and we’ve noticed all Subscriber Attributes are being sent through these integrations. I’d love to know if it’s possible to curate the list of Subscriber Attributes that are being sent with these events.
Hi there,is it recommended to use RevenuCat Webhooks to sync purchases to an external system instead of using the built-in Webhooks of App Store Connect and Google Play?Is it even possible to sync user subscriptions via App Store Connect webhooks? I'm not sure if Apple gives out the email addresses of the users.Can you please give me a brief summary of the pros and cons of App Store / Play Store webhooks and RevenueCat webhooks?Kind Regards,Marius
Firstore has a 1mb size limit. RevenueCat’s firestore extension creates a single customer record which holds all the purchases the user makes. There is a potential for a user to make so many purchases over time it would exceed the 1mb limit of firestore documents. How does Revenuecat handle this situation?
I want to refund the prorated amount to customer on subscription cancellation but I am using stripe customer portal for cancellation handling and it only gives option to add credit balance to customer for prorated amount. How can I handle refunds when this scenario happens?Thanks a lot!
Hello Guys,I have third party platform and every hour user data get from that platform using CRON JOB.That data valid and if data valid then grant-a-promotional-entitlement api and give lifetime access after some time or next time same data get then automatically revoke-promotional-entitlements call. all data valid and already verified. package used Axios(https://www.npmjs.com/package/axios) for grant-a-promotional-entitlementI will provide below sample codeimport axios from "axios";import config from "config";const grantPromotionalEntitlements = async (app_user_id: string, cronName: string) => { const PayloadObject = { url: revenueBaseAPI + `subscribers/${app_user_id}/entitlements/${"All_Features"}/promotional`, method: "POST", headers: { "content-type": "application/json", Authorization: `Bearer ${SECRATE_KEY}`, }, data: { duration: "lifetime", }, } as any; const res = await axios(PayloadObject) .then((res) => { return res.d
Dear Community,we are currently using RC for our subscribermanagement (full integration) and Appsflyer as attribution provider. Both Services are integrated in our app but until now we only had instagram paid ads for our native ios-App. We now want to use ads for our native android app. The goal event for our ads is the start of a trial. We have a monthly, quarterly and yearly subscription.I'm facing the issue, that our CMO asks for AF-Events with 3 different names depending what kind of subscription trial was started. As far as I know the RC to AF Integration is insufficient for that, because each trial start irrespectibly of the subscriptiontype sends the "Trial started event" (default name: rc_trial_started_event) to AF.Therefore I need to write code, that sends these 3 Events to AF. In my current implementation I send the Events in the "onCompleted" Callback of the "purchasePackage" Method.Here is the simple Code:Purchases.getSharedInstance().purchasePackage(this, pack, new Purchas
hi there, we just setup an integration to CleverTap but are getting very limited in using CleverTap to the best of it’s abilities due to what RevenueCat sends. See below WHAT WE WOULD LIKE TO DOIn CleverTap we would like to be able to target all users that have a specific subscription status say, all monthly subscribers or all subscribers who have cancelled WHAT RC SENDS TO CTRC sends each subscription event as “Events” and has the details of the subscription in the event properties of CleverTap REQUEST FOR CHANGEWe would love to be able to send user properties to CT and define the different user properties and send them based on the RC events. This way we can have user properties in CT, which would make it possible for us to target users
Hi there, I’m using this script to connect a stripe subscription to a RC User ID (aka posting receipts):curl -X POST \ https://api.revenuecat.com/v1/receipts \ -H 'Content-Type: application/json' \ -H 'X-Platform: stripe' \ -H 'Authorization: Bearer YOUR_REVENUECAT_STRIPE_APP_PUBLIC_API_KEY' \ -d '{ "app_user_id": "my_app_user_id", "fetch_token": "sub_xxxxxxxxxx" }'Sometimes I make a mistake and then delete the RC customer, so I can reconnect them again. But now I’m running into various issues.First, after deleting in RC, I still can’t post the receipt to another RC User ID. I get a "Failed: Bad Request" response.Second, even after deletion, I still see the user ID in Stripe (I’m using the RC plugin in Stripe to open the customer page on the right). So the user is after all not really deleted, what would the failed request explain.After deleting I can’t find the customer anymore in the RC UI though.Also, the original user ID didn’t have the entitlement although the stripe purcha
Kochava is a very useful attribution and measurement platform.https://www.kochava.com/Are there any plans on supporting them as an integration?
We connected stripe to revcat. This allows us to let users subscribe on our own website, and automatically unlock access to the same subscription. We send all our paywall events (Initial Purchase Event, Trial started Event, Trial Converted Event, etc) to Appsflyer; however we would like confirmation that the same paywall events coming from stripe are also making their way to Appsflyer. Can you confirm that it is being taken care of in your implementaion?Also, what attributes can we use to distinguish paywall events that are strictly from the mobile app (revenue cat) versus the ones that are go through stripe? --
Hi Team, We have a client for whom we are looking to integrate RevenueCat APIs to get some stats. Can someone please confirm if it is possible to get Retention rate and LTV as shown in the below screenshot via API? I did go through API documentation however wasn’t able to find relevant API.Inputs or workaround on this would really be helpful. If there are other stats accessible via API which can be used to derive LTV and Retention rate, that would also be helpful.Thank you!
I am trying to prepare an import script for adding our one-time (i.e. Lifetime) historically purchases from Stripe into RC. I am able to successfully use the API to create annual subscription but have not figured out how to get passed the "{"code":7103,"message":"The receipt is not valid."}" error I keep getting for my one-time purchase query. I am using the Stripe checkout key at the fetch_token and Postman to get test the syntax structure first. Here's my code:header 'Accept: application/json'header 'Authorization: Bearer [stripe_secret_key]'header 'Content-Type: application/json'header 'X-Platform: stripe'{"product_id": "prod_HMezcIkru867vf","price": 99.99,"currency": "USD","is_restore": "false","app_user_id": "ZOVwTCYttQagvnO0ALT7vhmoYWf2","fetch_token": "ch_3K8UhVEwxMCNONa5180XDbh7","introductory_price": 49.99}
I initially setup the Firebase integration with my revenuecat project, but have decided not to use it (going to use webhooks for my use case, which is adding/reloading a credit system on each billing date). However, I can’t find any option to remove/delete the firebase integration from my project?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.