Get help with webhooks, third-party integrations, and attribution providers.
Recently active
Hello everyone. We are doing user acquisition over Apple Search Ads and 90% of traffic is coming from there.In last 2-3 days most of my trial or purchase data do not show any Search Ads info like keywords etc on RevenueCat panel (on right side when I tap on purchase). Previously there was no issue. Anyone experiencing that? PS. I have not updated the app codebase since 2 weeks.
We had a few problems during the launch of our subscription. As part of that I deleted a user from the back end of the site, from stripe and from RC thinking this would reset the process. We now have the users set up in stripe again and the website but it seems a new account won’t create in RC, can I restore the deleted user - or set them up to link with the other existing accounts?
Info: Whole Backend = Firebase.That includes, Auth system, DB, Functions, Extensions etc.In the app, I have let's say an account with User 'X' with userId 'xid'. X makes a purchase through the RevenueCat SDK and it sends out webhooks that writes database entries in Firebase with the necessary User details, purchases and entitlements.I read these entitlements entries in the DB and unlock features within the App. Here in lies the dilemma.Let's say User 'X' has purchased a monthly subscription. Webhooks and Firebase Integration will give me the DB entries I need to do my unlocking features.All good so far. Now user 'X' has decided to delete their account having the userId 'xid' from the App. All good so far. Bear in mind that subscription is still active in Playstore/Appstore.Now user 'X' decides to create a new account again in the App. User 'X' now ends up with a new UserId of 'yid'. User 'X' now presses the 'Restore Purchases' button which calls "Purchases.restorePurchases()" function
I have a discrepancy between AppsFlyer and Revenucat, and the S2S event seems to have sent correctly. On RC, a particular conversion is listed as ASA sourced, but on Appsflyer it is not.On AppsFlyer, the default look back window for attributing from ASA is 7 days - so I’m wondering if this is the cause of the discrepancy. If RC’s look back window is longer than this, that could be why.Please could you provide info on the ASA look back window?
Couldn’t see the dropdown of connected account even if i can see them connected.
I’ve just installed the Firebase Extension and I see it on Google Functions page but the runtime version has a warning: Node.js 14 will be deprecated on Jan 30, 2024. Please update this function using the latest runtime version available.Any idea how to update it to the latest or min suggested version?
Hello! We are integrating Facebook Ads with RevenueCat. We found this point in RevenueCat documentation for Flutter: // Set the Facebook anonymous Id Purchases.setFBAnonymousID() What is that Anonymous ID in Facebook Ads?
Hi,When I go to Integrations > Mixpanel > scroll down to Integration Events, it looks like there are 2 simultaneous events each time, with different but related payloads. Can someone explain what’s going on? I’m not a dev (anymore :) so it might be obvious. I’ll paste the payloads below in case it’s helpful.Thanks,TOM//PAYLOAD 1:{ "event": "Subscription Renewed", "properties": { "$insert_id": "a292fb14-49ca-429d-aff5-79ce7b4ce650", "aliases": [ "01J1SRK36AYY0YE8JZP43XDNPR" ], "app_id": "appfaa70d11aa", "currency": "USD", "distinct_id": "01J1SRK36AYY0YE8JZP43XDNPR", "entitlement_id": null, "entitlement_ids": [ "standard" ], "environment": "SANDBOX", "expiration_at": "2024-07-06T01:29:12Z", "offer_code": null, "original_app_user_id": "01J1SRK36AYY0YE8JZP43XDNPR", "original_transaction_id": "2000000607884405", "period_type": "NORMAL", "presented_offering_id": "default", "product_id": "s2_standard_1m_699_1m0", "purchas
Is there an easy way to pass Apple Search Ads attribution to mix panel? Either within the client app, or from the dashboard? I don’t see a way to query the attribute data in the SDK, and Im not seeing a way to add this in the mix panel integration RC admin view. What am I missing?Thanks!
Hi there,We are using the Intercom integration in RevenueCat. For our stripe purchases, RevenueCat sends an RCAnonymousID instead of the app user id. When a stripe purchase is made, we call the receipts API from our backend and pass in the app_user_id, this correctly surfaces in RevenueCat linking the user id to the purchase. However, RevenueCat is creating an alias, and sending that alias to intercom instead of the app user id. Is there anyway to fix this? Thanks! Payload from RevenueCat to Intercom:{ "app_id": 1094850, "create_contact_payload": { "custom_attributes": { "expires_at": 1725546041, "latest_entitlement": null, "latest_store": "STRIPE" }, "external_id": "$RCAnonymousID:6948fc31576641ed98c9c171826ae506" }, "product_identifier": "prod_QCyCt8PLphAYgl", "search_contact_payload": { "query": { "field": "external_id", "operator": "=", "value": "$RCAnonymousID:6948fc31576641ed98c9c171826ae506" } }, "send_event_payload": {
Hi guys!I’m about to launch the new version of my app with Revenue Cat. I did enable the Firebase integration as I want to store info about my users in it. My application also need to store a few additional info about my user (extra metadata like locale or application specific info).My application communicates with my API (that needs to know the entitlements of my users, so I’m also using the Rest API).The thing is… I have data about my users dispatched at 3 different places:In RevenueCat (where I have useful information like the last app version, device version, last seen, etc...). In firebase (where i have entitlements and stuff from RevenueCat but not all the data enumerated above) In my API local MySQL database (where I store the additional data that I need for my user like locale or application specific stuff)So If I want a complete vision of my users, I need to aggregate all this different sources. It’s quite difficult as there is no way to retrieve the full list of users from t
This is a technical question for the revenue cat suppourt team.Please have a look into my account. I configured the webhook in my dashboard and verified that the test webhook is working which it does.Beyond that no, webhook events are sent to my server at all. I configured the sandbox testing in google which works well. The events are properly shown in the customer profile. But the webhooks are just not triggered.Here an example for an event that never triggered a webhook: { "app_id": "appbf2ba432f2", "app_user_id": "e54178d1-0ba0-4f52-b768-8b16da7ec516", "country_code": "DE", "currency": "EUR", "entitlement_ids": null, "environment": "SANDBOX", "event_timestamp_ms": 1660003974081, "expiration_at_ms": 1660004387520, "is_family_share": false, "is_trial_conversion": false, "offer_code": null, "price": 8.130577688229488, "price_in_purchased_currency": 7.99, "product_id": "pro_monthly", "purchased_at_ms": 1660004087520, "store": "PLAY_STORE", "takehome_percentage": 0.85,
Hello RevenueCat team and community!I’m trying to integrate Stripe with RC and so far i’ve been following the steps of this documentation.The documentation says “When using Stripe Checkout, you should listen to and send subscriptions to RevenueCat after both the customer.subscription.created and checkout.session.completed events.”It works when event is checkout.session.completed but it doesn`t if event is customer.subscription.created.This is script sample if ( self.event_type == "customer.subscription.created" or self.event_type == "checkout.session.completed" ): url = "https://api.revenuecat.com/v1/receipts" headers = { "Accept": "application/json", "Content-Type": "application/json", "X-Platform": "stripe", "Authorization": "Bearer strp_XXXXXXXXXX", } data = { "app_user_id": self.event_object.get("customer"), "fetch
In our old question there was a reply stating we’ve duplicate products & some of them has no entitlements. Unfortunately, the question’s comments were blocked for some reason so we couldn’t reply there. It’s true that we had duplicate products but those products were never connected through the dashboard nor we used the API to add them.They appear after we successfully submit stripe subscription id as fetch_token to https://api.revenuecat.com/v1/receipts. While product with same stripe product id already exists in the RC dashboard. We’re not sure why and how that’s happening. But it may be worth mentioning, we’re listening to the invoice.paid as we’re using stripe checkout session which automates a lot of stuff. But it shouldn’t matter because we’re submitting the correct subscription id. For further clarification, this is how we’re handling creating stripe session:And this how we’re sending the Stripe subscription id to RC servers
I’m hoping to get some clarification on how the Meta Ads Integration works. Our app consists of only subscriptions and we currently have the integration set up where we can see the events Trial Start and Subscription in the Meta Datasource. We have configured the events for SKADNetwork in the settings in the meta platform and I can see that the idfas and idfvs are properly being collected in the customer list on revcats platform. Our code (swift ios15+ app) in the application(didfinishlaunching:) has the ApplicationDelegate.shared.application(...) function then Purchases.configure(...) , collectDeviceIdentifiers(),setFBAnonymousId(...). I can see that we are successfully getting both subscription and trial start events, but why will our campaign not show any conversions in ads manager? What am I missing?
We’ve activated the Branch MMP integration in RevenueCat. The RevenueCat documentation mentions:In order to attach attribution data to the correct user, make sure the App User Ids for RevenueCat and Branch match. The easiest way to do this is to set the Branch SDK identity to match the Purchases App User Id whether you're providing your own ids or using our randomly generated ids. The issue is users can start a subscription before we identify them with our ID’s. This means when the trial start event gets sent to Branch it looks like this:{ "name": "rc_trial_started_event", "user_data": { "app_id": "XXXX", "developer_identity": "$RCAnonymousID:ETCETCETC" }}Then when later events come in, the identity is different:{ "name": "rc_expiration_event", "user_data": { "app_id": "XXXXXX", "developer_identity": "OUR IDENTIFIER" }}Will the RevenueCat Branch integration handle this and correctly match up the identifiers as the same user?
I’m working on setting up the Superwall integration, following the instruction on https://www.revenuecat.com/docs/integrations/third-party-integrations/superwall. I’m looking for advice on the best practices for making sure the user IDs match between RevenueCat and Superwall. Our iOS app uses a RevenueCat anonymous ID on first launch, then asynchronously generates a user ID and sends it to RevenueCat. However, the ID is not guaranteed to exist because it’s tied to the user’s iCloud account, so some users may just use the anonymous RevenueCat ID. The flow I was considering was something like this:After launch, retrieve the RevenueCat anonymous appUserID and send to Superwall. Attempt to generate iCloud-based ID. If iCloud-based ID is created successfully, send to RevenueCat and Superwall. Otherwise, do nothing.Does that seem correct? (Or is this something I need to take up with Superwall instead?)
Hello, I can find here https://www.revenuecat.com/docs/integrations/third-party-integrations/clevertap steps to make RevenueCat integration with CleverTap, I can find several programming languages how to do this, but unfortunately I can’t find (Dart) which is the programming language of Flutter.So is there any docs or steps how to implement this integration in a Flutter app?Also is it free or need to upgrade plan?Thanks in advance.
Slack occasionally (2-3 times per day) sends notifications about purchases that happened before RC integration (a few years ago purchases).I have an Android app and started using RC a few months ago.Slack sends me notifications about purchases which are just purchased, but also for purchases from a few years ago.I don't see any pattern, but the attached screenshot was captured at 6am on June 10th, 2024. You can see slack sent a purchase that happened in 2022.
In our app, we have 3 different subscriptions (entitlements) that users can purchase. On Android and iOS side everything works fine as expected. But, in web, when user subscribes through stripe checkout session, when we post the subscription id to RC server successfully, the subscription does show up with appropriate (stripe) product.But, for some reason the entitlement the product belongs to is not attached with the customer’s subscription. We do provide the accurate `app_user_id` and `fetch_token` (stripe subscription id) on the receipt.Our app uses the customer’s entitlement to unlock the level of feature. So, if there’s no entitlement attached to their purchase, the app can’t allow user to access the paid feature.
Hello everyone,I am facing an issue with the in-app subscription functionality in my Flutter app, which has suddenly stopped working. The subscriptions were functioning correctly until I logged into my RevenueCat account using a third-party app from the App Store that provides access to the RevenueCat dashboard on my phone.Issue Description: When I attempt to access the paywall in my app, the subscription process does not proceed as expected. This issue started after logging into the third-party RevenueCat dashboard app. Before this, the subscriptions were working perfectly.Steps to Reproduce:Open the app. Navigate to the paywall screen. Attempt to initiate a subscription.Expected Result: The subscription process should proceed normally, allowing the user to complete the purchase.Actual Result: The subscription process fails to initiate. I have confirmed that my Apple Developer Program membership is active, and there are no reported issues on the RevenueCat status page. Has anyone else
We created a mobile game through Unity that features firebase authentication for sign-up/login of user accounts. The app would be both available for Google Play Store and IOS. We want to integrate in-app purchasing with both consumable and subscription products however, the current IAP we were planning to use have its limitations such as associating google subscription through the active google account rather than the existing firebase user. After some research, I read that RevenueCat can be integrated with Firebase so the IAP will be connected to each Firebase users instead. Would this be possible and are there any documentations we can refer to in order to achieve such feature?
We have a Netflix model where most of our service value is via website. We have a mobile app where users can subscribe, and I want to use revenuecat to send IAP subscriptions to Stripe, which is our source of truth for subscription status. It seems like all of revenuecat documentation is stripe → revenuecat → iap whereas we need iap → revenuecat → stripe. When testing iap, I see the subscriptions show on revenuecat, but not on stripe. how do I get iap subscriptions to show up as customers / subscriptions on stripe.
Is it normal for webhooks to only be sent when you open the paywall in your app? I’m testing on Android. Apparently, you get renewals in 5 minutes, but nothing happens until I actually open the paywall in the app.
The documentation says “The subscription has set to be paused at the end of the period. Please note: You should not revoke access when receiving a SUBSCRIPTION_PAUSED event, but only when receiving an EXPIRATION event (which will have the expiration reason SUBSCRIPTION_PAUSED).”However, an EXPIRATION event is never triggered. Is this just an issue with sandbox?
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.