Skip to main content
Registers a listener invoked for all not-granted outcomes — when the user dismisses the offer or no offers are available. This signals “Encore didn’t result in a purchase — run your original button logic.”
Register onPassthrough before calling show(). If not set, the SDK will log a warning.

Signature

onPassthrough(handler: (event: PassthroughEvent) => void): () => void

Parameters

NameTypeDescription
handler(event: PassthroughEvent) => voidCallback receiving the passthrough event

PassthroughEvent

FieldTypeDescription
placementIdstring?Which placement triggered this passthrough

Returns

An unsubscribe function. Call it to remove the listener.

When It Fires

ScenarioFires?
User dismisses without purchasingYes
No offer available for this userYes
Network or system errorYes
User accepts an offerNo — see onPurchaseRequest()

Usage

Cancel flow passthrough

const unsubscribe = Encore.onPassthrough(({ placementId }) => {
  switch (placementId) {
    case 'cancel_flow':
      proceedWithCancellation();
      break;
    case 'downgrade_flow':
      proceedWithDowngrade();
      break;
    default:
      console.log(`Passthrough for ${placementId}`);
  }
});
Use onPassthrough to ensure your original button logic still runs when Encore doesn’t intercept. For example, if a user taps “Cancel Subscription” and Encore has no offers, the passthrough handler lets you proceed with the cancellation flow.