'reduceChurn' claim waits for this call; a 'rewardUsers' claim never does. When each one opens the advertiser:
The Claim Flow.
When to use this
show()resolvedclaimedon a'reduceChurn'placement, and your own step (a trial start, a completed cancel) is done.- A user comes back on a later page with a claim still waiting.
Signature
redeem() never rejects: a failure resolves dismissed with the error, and the claim stays
saved for a later call.
RedeemOptions
RedeemResult
reason is a NotGrantedReason.
getPendingTransaction()
Returns the claimredeem() would take, without showing anything, so you can render your own
prompt before calling redeem(). Pass a placement id to look only at that placement.
Returns null when nothing is saved, or before configure().
Examples
Gotchas
- A saved claim lasts 7 days. After
expiresAt,redeem()resolvesunavailable. - It belongs to this browser and origin, not the user. The claim is stored locally, so
it survives a reload unless the browser blocks storage, but not a different browser,
device, or origin.
identify()does not clear it; callreset()at logout so the next user on the browser can’t redeem it. - The advertiser opens from the SDK’s button, not yours.
redeem()shows a screen, and the tap on that screen opens the advertiser, so you can callredeem()from any moment. If the browser still blocks the new tab,redeem()resolvesdismissedwith an error and the claim stays saved. claimedalso means the user closed the primer. The claim is saved either way. If you callredeem()straight aftershow(), a user who closed the primer gets the redemption screen next.
Related
- The Claim Flow: when the advertiser opens for each use case.
show(): the claim thatredeem()completes.placement(): the placement id a claim is saved under.