useCase: 'rewardUsers' on a placement renders a branded
celebration screen with the offer carousel inline, and headline / subheadline let that
screen name the moment that triggered it. This is the
Reward Users use case; the canonical description
of why and when to use it lives on that page.
There is no setup step before this guide. Your app is granted its use cases when the app
is created. A moment with nothing to present is not an error either:
show() resolves
{ status: 'unavailable' }, same as no eligible offers.The complete pattern
Requires the current
@encorekit/web-sdk 2.x release. Upgrading an existing integration:
Updating to 2.x.The options
placement() reference; the
appearance contract lives on Advanced UI.
Where the copy comes from
Set it at the call site.headline and subheadline take the finished string for one
presentation:
*gift*), and on web those asterisks appear on screen verbatim, which
is a concrete reason to pass your own copy on a web reward surface.
One step, no follow-up
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
SDK renders nothing after the claim, so if the moment wants a closing beat, render it
yourself.
Keep result.transactionId: it is how a completion landing days later is traced back to
this user and app. It is optional on the result, because the transaction write can fail while
the claim genuinely happened, so handle its absence without treating the claim as failed.
Wire up analytics
To attribute the subscriptions and revenue this placement drives back to Encore offers, identify the user with your stable customer id (as in the preceding pattern) and forward your subscription events to Encore with that same id. Configure Analytics is the quickstart step that wires it up. Every offer-funnel event carries the use case that produced it, so your reporting separates reward placements from paywall saves without any extra wiring.The use-case values your reporting already keys on are unchanged by 2.x. The rename
applies to the values you type in your own code, not to anything Encore sends or stores.
Gotchas
- You pass the finished string. There is no streak-count or milestone-count parameter; Encore never assembles a sentence out of a count.
- A blank override is not an override. An empty or whitespace-only value falls through to the next source rather than clearing the line. To show less, omit the field.
unavailableis a normal outcome. No eligible offers, or a measurement control cohort. Render your own celebration screen without the offer and carry on.- A claim is not a conversion. The bounty is earned only when the brand-side completion
is verified on Encore’s servers. Never pay out or grant access on a
claimedresult.
Related
- Reward Users: the canonical description of this use case.
placement(): the fullPlacementOptionscontract.show(): the result statuses and the claim payload.- The Claim Flow: what a claim does, end to end.