Overview
Encore presents a premium brand offer (a real perk a brand funds to acquire customers, such as a free trial, discount, or credit) at a moment you choose. Start with Reward Users: a reward sheet at a moment the user just earned, such as a completed purchase, a streak, or a milestone, at no cost to you. The other use case, Reduce Churn, presents offers in a cancel flow or after a paywall decline.Present an offer
show() resolves with the complete factual record of what happened, and it never rejects. Every failure, including “nothing was presented”, arrives as a value on the result, so there is no catch block to forget:
- Reward Users
- Reduce Churn
UseCase.rewardUsers on every reward placement. A reward placement never runs a purchase and never falls back to the paywall sheet, so it needs no subscription product and no purchase controller. The walkthrough, including per-call copy, is the Reward Placements guide.placement() · PresentationResult.
Read the result
A presented record carries two independent funnels plus how the sheet went away:
A single presentation can claim an offer and run a purchase, so the two funnels are recorded side by side rather than competing for one winning value.
There is deliberately no
unlocked boolean. What a claim means is a property of the variant flow that served it, so an SDK-computed verdict could contradict the flow that actually ran. Branch on the raw axes, as above. See PresentationResult.Purchases
This section applies to Reduce Churn placements only. A reward placement never runs a purchase, so an app that presents only reward placements can skip it. A user who accepts an offer that carries an in-app purchase triggers your purchase controller. Pass it toconfigure(); see Configure the SDK.
Observe outcomes globally
For analytics forwarding, app-owned state, or a debug overlay, subscribe to the outcomes stream. It appends rather than replacing, so several observers can listen at once.Full example: cancel flow
Bring users back to finish their gift
Put a Claim Reminder on your home tab. It stays hidden until the user claims a gift, then reminds them to finish. Once they do, it thanks them or steps aside. Encore manages that. You can also put a Gifts Button on your reward screen, so users can open their gifts there whenever offers are waiting. Both need version 2.4.0 or later of the SDK. See the trigger components quickstart.Next Steps
- Reward Placements - Reward a user at a moment they just earned, with copy you set per call
- Add Subscription Product - Reduce Churn only: set up the store subscriptions your controller purchases
- Integration Patterns - Where to put the call site, the controller, and the stream
- SDK Reference - Complete API documentation