'thankYou'
layout turns the moment right after a purchase into a complete branded thank-you. Use it
when the placement fires right after a successful transaction: a checkout confirmation, a
payment-success page, a subscription upgrade. For intercepting a user who didn’t
purchase, see Reduce Paywall Churn
instead.
The complete pattern
The options
placement() reference.
The receipt is per-transaction payment context passed to
show(): { amount: '$9.99', purpose: 'Pro Plan' }
renders “You paid $9.99 for Pro Plan” as the status subtitle. Render-only: it is never
sent to Encore’s servers.
Why immediate mode
For post-purchase surfaces, setredemptionMode: 'immediate' on the placement: a claim
opens the advertiser tab within the tap gesture and resolves { status: 'claimed' }.
One action, no follow-up, on a page the user is about to leave. The default deferred mode
instead records a claim for a later redeem()
call; use it only if your flow genuinely has a second host step (see
Redemption Modes).
Wire up analytics
To attribute the conversions and revenue this placement drives back to Encore offers, identify the user with your stable customer id (as in the pattern above) and forward your subscription events to Encore with that same id. Attribute Subscriptions to Offers is the how-to, including the simple path if RevenueCat already manages your subscriptions.Gotchas
- You own the payment copy. The receipt values and all
header/footerstrings come from your code; the layout renders no payment facts you didn’t pass. (header.titleis the one composed default: “Payment Successful” when you omit it.) receipt+header.subtitle: receipt wins (a warning is logged). For a fully custom status line, build the string yourself and pass it asheader.subtitleatshow()time (placement options are evaluated per call) instead of usingreceipt.- Format
amountyourself. Values render verbatim:'9.99'shows as “You paid 9.99”. offerContext.subtitleis a fallback. A campaignperkline on the active offer supersedes it and follows the carousel as the user pages. Put must-show copy inofferContext.title.- Unknown
layoutvalues fall back to'list'with a warning, so older SDK versions degrade gracefully. offerContext/footer/receiptneedlayout: 'thankYou'.headerworks in both layouts (onlyheader.iconis thankYou-specific).'thankYou'+'deferred'is legal but warned. The claim is recorded with no redirect and no primer; you own callingredeem()later, which renders the minimal reward story. See the legal decoupling.
Related
placement(): thePlacementOptionscontract.show(): thereceiptparameter and result statuses.- Redemption Modes: deferred vs immediate side by side.
- Reduce Paywall Churn: the deferred counterpart of this guide.