⚠️ Demonstration mock — react-native-encore-mock is not the real Encore SDK and will be deleted after the demo.
Sponsored Offers

Sponsored Offers

Encore’s headline monetization feature is Brand-Sponsored Premium Trials. When a user declines your paywall or starts a cancellation flow, Encore can present offers from premium partner brands — Disney+, Netflix, Spotify, Amazon Music, HelloFresh, ClassPass, and more — where the brand sponsors the user’s entitlement. You recover a churning user, and it costs you nothing.

“When users decline your paywall, a brand sponsors your Premium trial.” Offers that feel like gifts, not ads.

How it differs from a paid offer

Retention (paid) offerSponsored offer
Who paysThe user, via your billingThe partner brand
Callback pathonPurchaseRequest → your billing → completePurchaseRequestnone — resolves directly
result.status'granted''completed'
Your coderun billingjust entitle the user

Both are “wins,” so the demo treats them the same:

import { isGranted } from '../lib/encore';
 
const result = await Encore.placement('cancellation_flow').show();
if (isGranted(result)) {
  // status === 'granted'  → paid purchase completed
  // status === 'completed' → brand-sponsored trial accepted
  entitleUser(result.entitlement);
}

This is the key architectural point: the partner catalog, the sponsored-trial UI, partner selection, the affiliate redirect, and the revenue split are all handled by Encore’s backend and native SDK. Your job is only to:

  1. Present the placement at the right moment — Encore.placement(id).show().
  2. Configure the sponsored campaign in the Encore dashboard (which partners, eligibility).
  3. React to result.status and entitle the user on granted / completed.

In this demo (mock mode)

Because there’s no native SDK in mock mode, the mock models Encore’s native carousel so you can see the flow:

  • A sponsored offer renders a scrollable list of partner cards.
  • Picking a partner resolves { status: 'completed', entitlement, offerId, campaignId } and fires onPurchaseCompletewithout touching your billing.
  • The example game Hotspot Havoc chains it as a win-back: decline the Pro paywall and the sponsored partners (from DEFAULT_PARTNERS) appear as a second-chance offer.

Offers and the partner catalog are configurable when you create the client:

import { createMockEncore, DEFAULT_PARTNERS } from 'react-native-encore-mock';
 
const Encore = createMockEncore({
  offers: {
    cancellation_flow: {
      type: 'sponsored',
      placementId: 'cancellation_flow',
      campaignId: 'winback_2026',
      entitlement: 'subscription',
      title: 'Wait — a gift before you go',
      subtitle: 'A partner brand will sponsor your next months.',
      partners: DEFAULT_PARTNERS,
      dismissLabel: 'No thanks',
    },
  },
});

Going live

Install the real native SDK and the partner carousel is rendered for you — no UI to build. Configure the campaign and partners in the Encore dashboard; attribution and the revenue split are handled on Encore’s side. Your placement().show() + isGranted(result) code is unchanged. See Mock vs Live Mode.