Skip to main content
Reward a user the moment they accomplish something: a completed purchase, a kept streak, a cleared milestone. Setting useCase: 'rewardUsers' on a placement presents a celebration sheet with the offers 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

That is the whole option surface for this use case, and the full contract is in the 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:
Pass nothing and the sheet falls back to the copy Encore resolved for your app, then to the copy shipped with the screen, so it renders either way. Each field falls back on its own, and a blank string falls through rather than clearing the line. The full chain, and the shipped default’s exact wording, are on Where the copy comes from. Encore’s shipped default carries inline accent markup (*gift*), and the built-in web sheets show those asterisks literally (which sheets style them), 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' } when the sheet closes (The Claim Flow). One action, no follow-up, at the moment the user just earned. A served variant can show its own post-claim screen first; if the moment wants a closing beat beyond that, 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.
  • unavailable is a normal outcome. It means nothing was shown, for example because no offer is eligible for this user right now. 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 claimed result.