Skip to main content
Contracts for the Encore Android SDK: the methods you call, the controller you implement, and the types they exchange.
Looking for integration guides?

Core methods

configure()

Initialize the SDK with your public API key, purchase controller, and unlock mode

identify()

Associate your user ID with Encore for cross-device tracking

setUserAttributes()

Set structured attributes for targeting and analytics

reset()

Clear user identification and cached entitlements on logout

Presenting offers

placement()

Fluent builder for presenting offers, with suspending and callback forms

EncorePurchaseController

The controller your app registers so purchases run through your billing code

Encore.outcomes

SharedFlow of every placement resolution, for passive observers

Types and configuration

UserAttributes

Structured user attributes for targeting and personalization

PresentationResult

The factual record a presentation resolves to

DismissReason

How a presented offer sheet went away

Error handling

EncoreError

Errors the SDK reports, carried as values on the result record

Basic integration

show() never throws. Failures arrive as NotPresented(NotPresentedReason.Error(...)) on the PresentationResult, so fallback logic lives in one place.
For passive observation (analytics, logging, entitlement sync), collect the Encore.outcomes stream once at startup instead of repeating the work at every call site.