Audiences
Conditions on country, platform, app version, subscription status, entitlements, spend, dates, attribution and custom attributes.
Feature
RevenueDot lets you show different offerings to different customers and A/B test two of them, with no app release. Audiences filter customers by country, platform, spend and attributes. Ordered targeting rules and placements pick the offering. An experiment splits customers deterministically and reports conversion, revenue and the chance the new offering wins.
Free up to $10,000 a month in tracked revenue. Works with the RevenueCat SDK you already ship.
Conditions on country, platform, app version, subscription status, entitlements, spend, dates, attribution and custom attributes.
The first live rule that matches decides the current offering. Reorder rules and set start and end times.
Ask for the offering of a spot in your app, such as onboarding_end, and target it separately.
Customers per variant, conversions, trials, revenue, revenue per customer and the chance the treatment converts better.
Your app asks for the current offering, or for the offering of a placement. RevenueDot answers per customer, in this order: an offering you assigned to that one customer through the API, then your live targeting rules from the top, then the project's current offering.
An audience is a set of conditions. Conditions in a group must all be true, and separate groups are alternatives. Preview shows how many of your customers match today.
active, trialing, expired, never), active entitlements, total spent, first and last seen, latest product, email, attribution (campaign, media source) and any customAttribute:<key>.Your app code stays the same. It reads the offering the way it does today, and RevenueDot decides which one comes back.
let offerings = try await Purchases.shared.offerings()
// The offering your targeting rules chose for this customer.
let paywallOffering = offerings.current
// The offering for a placement you named in a rule.
let onboarding = offerings.currentOffering(forPlacement: "onboarding_end") Steps
An experiment compares two offerings: a control (a) and a treatment (b). Each offering can carry its own paywall.
Make the control and the treatment offering in your catalog, with the packages and the paywall each one should show.
Open Experiments and select New experiment. Pick both offerings, an optional audience and the share of customers to enroll.
Select Start. Matching customers are enrolled the next time the app fetches offerings and always keep the same variant.
Wait for at least 100 customers in each variant, then compare conversions, trials, revenue per customer and the chance the treatment converts better.
Pause keeps enrolled customers on their variant and enrolls nobody new. Stop ends the experiment for good.
Enrollment is deterministic: a customer who matches always lands in the same variant. Enrolling sends an EXPERIMENT_ENROLLMENT webhook once per customer and experiment, and enrolled customers' purchase, renewal and cancellation webhooks carry an experiments list, so your analytics tool can split by variant.
Audiences live at /v2/projects/{project_id}/audiences and targeting rules at /v2/projects/{project_id}/targeting_rules. Experiments live at /v2/projects/{project_id}/experiments, with .../results per variant. Start, pause and stop are actions on the experiment. An experiment compares two offerings, so test several ideas one after the other.
FAQ
Create two offerings, each with its own paywall, then create an experiment in RevenueDot that enrolls a share of your customers and sends half to each offering. Customers keep their variant, and the results page shows conversions, revenue and the chance the new offering wins. No app release is needed.
Yes. Create an audience with a country condition, then a targeting rule that gives that audience a different current offering. The offering carries its own paywall. The first live rule that matches the customer decides.
A placement is a named spot in your app, such as onboarding_end. A targeting rule can assign a different offering to each placement, and the app asks for it with offerings.currentOffering(forPlacement:).
RevenueDot suggests waiting for at least 100 customers in each variant before you read the chance the treatment converts better. Small samples swing a lot, so let the experiment run until both variants have enough customers.
Enrollment is per experiment and deterministic, so a customer always keeps the same variant in an experiment. To keep results clean, give overlapping experiments different audiences.
Get started
Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue, or move an existing RevenueCat app with one line of code.
Already have an account? Sign in · Prefer your own servers? Self-host free