Overview
Encore allows you to present targeted offers to users in exchange for rewards (free trials, discounts, credits) at critical moments like cancellation flows or feature paywalls. The SDK provides multiple presentation methods to fit your app’s architecture. The SDK automatically manages entitlement state through isActivePublisher. Callbacks are optional - use them only when you need custom flow control (like proceeding with cancellation) or analytics tracking.Third-Party Paywall Integrations
For Superwall and RevenueCat integrations, see the dedicated guides:Using Superwall
Trigger Encore from Superwall paywalls and dismissals
Using RevenueCat
Trigger Encore from RevenueCat paywalls and dismissals
Native Integrations
Fluent Builder API (Recommended)
The most concise and flexible way to present offers in SwiftUI and UIKit - perfect for button actions.See the SDK Reference for complete API details: placement()
⚠️ Important: When presenting offers in critical flows (like cancellation), always ensure the user can proceed with their intended action. In the example above,proceedWithCancellation()is called inonNotGranted, ensuring users are never blocked from canceling their subscription.
SwiftUI: Async/Await
For when you need to await the result in Swift concurrency:See the SDK Reference for complete API details: placement()
SwiftUI: .encoreSheet() Modifier
The most declarative way to present offers using SwiftUI state:
See the SDK Reference for complete API details: .encoreSheet()
Global Listeners for Analytics
Set up global placement listeners once during app initialization to automatically track all placement events across your app independent of context:See the SDK Reference for complete API details: placement() - Global Listeners
Next Steps
- Tracking Entitlements - Monitor what entitlements users have
- User Management - Identify users and set attributes for personalized offers
- SDK Reference: placement() - Complete API documentation