Skip to main content
Question

Does Experiment Logic Override Targeting Rules in RevenueCat?

  • June 27, 2025
  • 1 reply
  • 11 views

Forum|alt.badge.img+4

I’m using RevenueCat Experiments and would like to clarify how targeting rules interact with experiment variants. I’ve reviewed the documentation here: RevenueCat Targeting FAQ, which states that experiments are evaluated before custom targeting. However, based on my testing, it appears that RevenueCat respects targeting rules first before applying any experiments.

My setup:

  • I’ve defined a custom subscriber attribute called subscription_type, which can be either "Free" or "Premium".

  • For the appLaunch placement, I’ve added the following RevenueCat targeting logic:

    • If subscription_type == "Free" → show a paywall.

    • If subscription_type == "Premium" → no paywall/offering should be shown.

  • I’ve also created an experiment on the same appLaunch placement that tests two different paywall variants.

What I’m observing:

  • Users with subscription_type == "Free" are correctly entered into the experiment and see one of the A/B tested paywalls.

  • Users with subscription_type == "Premium" do not see a paywall, even though the experiment is active for that placement.

My question:

If a user has subscription_type == "Premium", could the experiment logic ever override the targeting rule and still show a paywall?

Or does RevenueCat always evaluate the targeting condition first, and only apply the experiment if the user qualifies to see a paywall based on that condition?

My goal is to ensure that Premium users never see a paywall at appLaunch, even if there is an experiment active on that placement by solely relying on the custom attribute or targeting of RevenueCat.

Thanks in advance for any clarification on how the evaluation order works!

This post has been closed for comments

1 reply

hussain
RevenueCat Staff
Forum|alt.badge.img+3
  • RevenueCat Staff
  • 51 replies
  • July 1, 2025

Hi,

Thanks for your question. Happy to help!

Here’s how RevenueCat evaluates which offering to present to the user under the hood.

  1. Experiments

    • First, RevenueCat checks if there’s an active experiment and whether the user is eligible to be enrolled in the experiment (based on the experiment’s enrollment criteria).

    • If the user is enrolled in the experiment, they’ll see an offering based upon whichever variant the experiment assigns them.

  2. Targeting Rules

    • If the user isn’t in an experiment, RevenueCat next evaluates your custom targeting rules in the order you’ve defined them.

    • Whichever matching rule fires, that determines what offering the user sees.

  3. Default Offering

    • If neither an experiment nor any targeting rule applies, RevenueCat falls back to the default offering you’ve configured for your project.

So to be crystal clear: experiments run before custom targeting.

As of now experiments do not support defining enrollment criteria based upon custom subscriber attributes. In your case I’d recommend to only fetch an offering/display a paywall on app launch by wrapping that logic in an if statement that checks to see that the subscription_type == "Free"

Hope that clears things up! Let me know if you need help with anything else. 😊

Best,

Hussain


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