Superwall

registerPlacement()

A function that registers a placement that can be remotely configured to show a paywall and gate feature access.

Purpose

Registers a placement so that when it's added to a campaign on the Superwall Dashboard, it can trigger a paywall and optionally gate access to a feature.

Signature

Future<void> registerPlacement(
  String placement, {
  Map<String, Object>? params,
  PaywallPresentationHandler? handler,
  Function()? feature,
})
Future<void> registerPlacement(
  String placement, {
  Map<String, Object>? params,
  PaywallPresentationHandler? handler,
})

Parameters

NameTypeDescription
placementStringThe name of the placement you wish to register.
paramsMap<String, Object>?Optional parameters to pass with your placement. These can be referenced within campaign rules. Keys beginning with $ are reserved for Superwall and will be dropped. Nested maps and lists are currently unsupported and will be ignored. Defaults to null.
handlerPaywallPresentationHandler?A handler whose functions provide status updates for the paywall lifecycle. Defaults to null.
featureFunction()?A callback representing the gated feature. It is executed based on the paywall's gating mode: called immediately for Non-Gated, called after the user subscribes or if already subscribed for Gated.

Returns / State

This function returns a Future<void>. If you supply a feature callback, it will be executed according to the paywall's gating configuration, as described above.

Usage

await Superwall.shared.registerPlacement(
  "premium_feature",
  params: {"source": "onboarding"},
  feature: () {
    // Code that unlocks the premium feature
    openPremiumScreen();
  },
);
await Superwall.shared.registerPlacement(
  "onboarding_complete",
  params: {"source": "onboarding"},
  handler: myHandler,
);

How is this guide?