Skip to main content
Solved

Exit offers: no client-side hooks + no way to control when they appear?

  • January 28, 2026
  • 2 replies
  • 106 views

Forum|alt.badge.img+2

Hey everyone 👋

We’ve been experimenting with exit offers and rewrote our paywall presentation flow on iOS. We moved from embedding PaywallView to using presentPaywallIfNeeded.

However, we encountered a couple of questions about exit offers during testing.

 

No client-side signal when an exit offer is shown

There’s no local callback or hook in the SwiftUI presenter API that tells us when an exit offer is displayed or which offering is shown.

We can see this in RevenueCat debug logs, but we found no way of observing it.

 

Since we track conversions and funnels via Mixpanel, this makes it hard to understand:

  • Whether an exit offer was shown
  • Whether a conversion came from the main paywall or the exit offer

 

Exit offers always show on dismiss

Exit offers appear every time the user dismisses the paywall. Many users open the paywall, quickly close it, and continue using the app.

If the exit offer always shows immediately on the first close, it feels like two paywalls back-to-back, defeating the purpose of an “exit” offer, especially if the second paywall is a better deal and always shown.

So as a user: I’d probably “learn” this behavior, no?

 

Ideally, we’d like to:

  • Programmatically suppress or delay exit offers (e.g., only show after N dismissals or not on first exposure).
  • Know locally when the exit offer is displayed to reason about user behavior and conversions.

 

So, have you guys also run into the same limitations? How are you tackling them?

Are you solely relying on server-side attribution (webhooks/dashboards) or have you found a clean client-side approach?

Can you control or conditionally disable exit offers per session or user? Is that intentionally not exposed?

 

Thanks :)

Best answer by alejandra-wetsch

Hey ​@d48643

Thank you for reaching out and for providing such a detailed description of what you are expecting from this feature!

Can you control or conditionally disable exit offers per session or user? Is that intentionally not exposed?

This is not currently supported. But I will make sure to share it internally with the team.

Are you solely relying on server-side attribution (webhooks/dashboards) or have you found a clean client-side approach?

Given that the current implementation of Exit Offers doesn’t support all the features you would like, I can propose a workaround that could help. 

Instead of configuring an Exit Offer in your Paywall, you could listen to the Paywall's dismiss callback and decide whether to display a discounted Paywall depending on your business logic. You could also leverage our Targeting feature to present different “Exit Offers” based on your users’ attributes, their countries, platforms, etc. That way, it can still be configured in the RevenueCat Dashboard without requiring additional code changes to update the audience of your Offers.

This is all great feedback, and I’ll share it internally with the Engineering team for them to review it and prioritize it accordingly!

Thanks!

This post has been closed for comments

2 replies

alejandra-wetsch
RevenueCat Staff
Forum|alt.badge.img+6

Hey ​@d48643

Thank you for reaching out and for providing such a detailed description of what you are expecting from this feature!

Can you control or conditionally disable exit offers per session or user? Is that intentionally not exposed?

This is not currently supported. But I will make sure to share it internally with the team.

Are you solely relying on server-side attribution (webhooks/dashboards) or have you found a clean client-side approach?

Given that the current implementation of Exit Offers doesn’t support all the features you would like, I can propose a workaround that could help. 

Instead of configuring an Exit Offer in your Paywall, you could listen to the Paywall's dismiss callback and decide whether to display a discounted Paywall depending on your business logic. You could also leverage our Targeting feature to present different “Exit Offers” based on your users’ attributes, their countries, platforms, etc. That way, it can still be configured in the RevenueCat Dashboard without requiring additional code changes to update the audience of your Offers.

This is all great feedback, and I’ll share it internally with the Engineering team for them to review it and prioritize it accordingly!

Thanks!


Forum|alt.badge.img+2
  • Author
  • New Member
  • January 31, 2026

Thanks, Alejandra for the great explanation!

Then we’ll internally think about integrating hard coded logic to show/hide the exit offers. It would be great if RC would expand on the exit offers in the future to support more control. :)