Skip to main content
Solved

Paywall Experiments with Paywall v2 not working in RN

  • April 25, 2025
  • 1 reply
  • 23 views

Forum|alt.badge.img

Hello everyone,

We recently launched a new paywall experiment designed to display our updated v2 paywalls. However, a subset of users were shown the legacy v1 paywall—which still advertises a trial we’ve discontinued—and were subsequently billed during what should have been their free trial. In an effort to stem support ticket volume amid our active marketing campaign, we removed the v1 paywall entirely. Now, we’re seeing users presented with a paywall configuration that doesn’t even exist in our dashboard (see attached image). Has anyone encountered this behavior on React Native with RevenueCat’s new v2 paywalls? We’d greatly appreciate any insights or urgent fixes, as this issue is impacting our current marketing efforts.

We’re on:

expo 52.0.36

react-native-purchases 8.9.1

react-native-purchases-ui 8.9.1

react-native 0.76.7
 

const handlePurchaseStarted = useCallback(({ packageBeingPurchased }: { packageBeingPurchased: PurchasesPackage }) => {
  posthog.capture("onboarding_paywall_purchase_started", {
    packageIdentifier: packageBeingPurchased.identifier,
  });
}, [posthog]);

const handlePurchaseCompleted = useCallback(async ({ storeTransaction }: { storeTransaction: PurchasesStoreTransaction }) => {
  posthog.capture("onboarding_paywall_purchase_completed", {
    transactionId: storeTransaction.transactionIdentifier,
    productIdentifier: storeTransaction.productIdentifier,
  });

  await onComplete();
}, [onComplete, posthog]);

const handleDismiss = useCallback(async () => {
  posthog.capture("onboarding_paywall_dismissed");
  await onComplete();
}, [onComplete, posthog]);

<RevenueCatUI.Paywall
  // only works for paywall v1
  options={{ displayCloseButton: isDismissible }}
  onPurchaseStarted={handlePurchaseStarted}
  onPurchaseCompleted={handlePurchaseCompleted}
  onDismiss={handleDismiss}
/>

 

Best answer by Jens

I think the paywall you are showing in your screenshot is the default paywall that shows when no paywall is assigned to the current offering.

I believe I know what your problem is. Experiments only enroll new customers. In other words, any new customers are split between the two offerings of your experiment. However, any customers that were first seen before the experiment started still receive whatever you have set as the default offering. The solution, then, is to change the default offering (eg. to one of the offerings that you are testing in the experiment). That way, customers who were first seen before you started the experiment don’t receive the old offering.

View original
Did this post help you find an answer to your question?
This post has been closed for comments

1 reply

Jens
RevenueCat Staff
Forum|alt.badge.img+7
  • RevenueCat Staff
  • 187 replies
  • Answer
  • April 25, 2025

I think the paywall you are showing in your screenshot is the default paywall that shows when no paywall is assigned to the current offering.

I believe I know what your problem is. Experiments only enroll new customers. In other words, any new customers are split between the two offerings of your experiment. However, any customers that were first seen before the experiment started still receive whatever you have set as the default offering. The solution, then, is to change the default offering (eg. to one of the offerings that you are testing in the experiment). That way, customers who were first seen before you started the experiment don’t receive the old offering.


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings