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. In a game, that is a moment the player just earned: a cleared level, a daily streak, a completed purchase. This is the Reward Users use case, and it costs you nothing to give. Call.UseCase(UseCase.RewardUsers) for this. A placement with no UseCase call is UseCase.ReduceChurn, the Reduce Churn use case.
Present an offer
Build a placement with an ID that names the moment, set the copy, and awaitShowAsync(). The Encore SDK draws the sheet above your game. ShowAsync() never throws: every outcome, including “nothing was presented”, is a value on the returned PresentationResult.
Show(Action<PresentationResult>) takes a callback instead. The result, from either form, arrives on the Unity main thread. Contract: Placement().
Your game keeps running under the sheet on every platform. On Android the sheet draws in your game’s own window, so OnApplicationPause does not fire while it is open. If your game stops timers or audio on pause, stop them yourself while a sheet is open, for example from OnLoadingStateChange and the result.
Read the result
result.Claim is the offer the player claimed, or null. It means the player went to the brand, not that they finished the offer. Keep Claim.TransactionId: it carries the attribution. When no sheet appeared, result.Reason says why; NoOffers, UseCaseUnavailable, and Error are the common reasons. Treat each as a normal outcome for a reward moment: show your own celebration and carry on. Every field is on PresentationResult.
To see every result in one place, for analytics, subscribe to Encore.Outcomes.
Next steps
Reward placements
Where the copy comes from, and the gotchas
Gifts Button
Let the player open the sheet when they choose