Skip to main content
The dismissal axis of a presented flow’s Outcome: how the sheet actually ended. These are business outcomes, not errors. Genuine failures arrive as values in NotPresented(NotPresentedReason.Error(...)), never here. value is the analytics wire value: the same string lands in decline_reason on sdk_offer_sheet_dismissed, unmapped.

Definition

Cases

dismissal always records how the sheet actually ended: FlowCompleted when the SDK closed it on its own, and the user’s gesture when a post-claim or success screen kept it up and they closed it themselves. The last three cases (OfferClaimed, AppBackgrounded, AppTerminated) are emission-only analytics values. Outcome.dismissal never carries them: a claim is advertiser-axis data, and the two lifecycle interruptions fire while the sheet is still up.
Reasons a sheet never appeared at all (NoOffers, ExperimentControl, NotConfigured, AlreadyPresenting, NoForegroundActivity, UseCaseUnavailable, IapFirstDeclined, Error) live on NotPresentedReason, not here.

Usage

Most apps never branch on the dismissal: the canonical check is on the claim and purchase facts, and every non-success falls through to the original flow.
  • PresentationResult, the record dismissal is one axis of
  • EncoreError, genuine failures carried as values on NotPresented(NotPresentedReason.Error(...))