Skip to main content
One call presents the offer carousel at a named placement:
Full contract: show() reference. That is the whole flow. Claiming opens the advertiser in a new tab inside the claim gesture, and the SDK renders nothing afterward, so there is no second call to make and no pending state to track. A claimed result carries the offer, the campaign, the advertiser’s name, and the transactionId that carries attribution:
The Claim Flow covers what a claim does and what its payload carries.

Placement ids and options

The placement id is attributed on the offers request. The second argument carries the per-presentation options:
Full options contract: placement(). Restyling the sheet beyond this is advanced configuration, covered in Advanced UI.

Results are not conversions

A claimed result means the presentation succeeded and the user was handed off. Advertiser completion happens later, asynchronously, and is verified on Encore’s side. Never gate real access on a client-side result.

Optional: get notified when the conversion lands

Because the conversion is verified later and on Encore’s side, the browser never learns about it. If your server needs to react (grant a reward, credit a balance, mark a task done), you can have Encore POST an offer_completed event to a URL you own the moment a completion is verified. This is entirely optional. Nothing above depends on it, and a Web SDK integration is complete without it. Add it only when you have server-side work to do on completion.
You configure the URL and copy the signing secret in the dashboard under Settings; the delivery is signed with HMAC-SHA256 so you can verify it. Two things to know before you rely on it: userId is the value you passed to identify(), echoed back verbatim (the usr_… above is just a sample placeholder, not a shape Encore imposes), so call identify() or the id won’t resolve to a user in your database. And delivery is fire-and-forget with no retries, so acknowledge fast and reconcile anything financial from your dashboard analytics. Full contract (headers, payload, signature verification, delivery guarantees): Offer Completed Webhook.
Don’t confuse this with Webhook Ingestion, which runs the opposite direction: there, you POST your own subscription lifecycle events into Encore for incrementality measurement. This section is about Encore calling your server.

Next steps