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 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

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. The Web SDK renders copy as plain text. Encore’s shipped default carries the native SDKs’ inline accent markup (*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.
  • unavailable is 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 claimed result.