diff --git a/content/docs/dashboard/dashboard-campaigns/campaigns-placements-prioritized.mdx b/content/docs/dashboard/dashboard-campaigns/campaigns-placements-prioritized.mdx index 46ae112..866f68a 100644 --- a/content/docs/dashboard/dashboard-campaigns/campaigns-placements-prioritized.mdx +++ b/content/docs/dashboard/dashboard-campaigns/campaigns-placements-prioritized.mdx @@ -1,11 +1,11 @@ --- -title: "Prioritized Placements" -description: "Ensure your most important paywall is ready to display instantly by prioritizing a campaign's placements for preloading." +title: "Priority Placements" +description: "Preload your most important campaign's paywalls before the rest of your app's campaigns." --- By default, Superwall's SDK preloads every paywall attached to your campaigns when the app launches. For most apps, this works seamlessly. But if you have a paywall that needs to appear _immediately_ — like an onboarding paywall shown right at first launch — you can tell the SDK to preload that campaign's paywalls first. -That's what **prioritized placements** do. When you mark a campaign as prioritized, the SDK fetches and caches its paywalls before anything else. Other campaign paywalls are still preloaded afterward in the background. +That's what **Priority Placements** do. This feature is also referred to as **prioritized placements** or **prioritized campaign preloading**. When you mark a campaign as prioritized, the SDK fetches and caches that campaign's paywalls before anything else. Other campaign paywalls are still preloaded afterward in the background. Only **one campaign per app** can be prioritized at a time. If you prioritize a new campaign, the previously prioritized one is automatically deprioritized. @@ -27,7 +27,7 @@ In the campaign editor, look for the **flag icon** next to the **Placements** he ![](/images/campaigns-prioritize-placements.png) -Click the flag to prioritize the campaign. The flag turns green to indicate the campaign is now prioritized, and a tooltip confirms: **"Preload these placements first"**. +Click the flag to prioritize the campaign. The flag turns green to indicate the campaign is now prioritized. The dashboard describes this action as prioritizing campaign preloading. To deprioritize, click the green flag again — it will revert to its default state. @@ -45,7 +45,7 @@ Confirm to switch, or cancel to keep the current priority. When the SDK fetches its configuration and sees a prioritized campaign: 1. **Phase 1 — Prioritized preload:** The SDK identifies all paywalls belonging to the prioritized campaign and preloads them first. -2. **Phase 2 — Remaining preload:** After a short delay, the SDK preloads all remaining campaign paywalls in the background. +2. **Phase 2 — Remaining preload:** After a 5-second delay, the SDK preloads all remaining campaign paywalls in the background. This two-phase approach ensures the most important paywalls are cached and ready before others, without skipping preloading for the rest of your campaigns. The prioritized campaign's paywalls will be ready to present with no loading time, while other paywalls continue loading in the background. @@ -55,15 +55,16 @@ This two-phase approach ensures the most important paywalls are cached and ready ## SDK version requirements -Prioritized placements require the following minimum SDK versions: +Priority Placements require the following minimum SDK versions: | SDK | Minimum version | Notes | | --- | --- | --- | | iOS | **4.14.0** | Full support. | -| Android | _Coming soon_ | Not yet released. | -| Flutter | **2.4.11** | Supported on iOS via bundled iOS SDK 4.14.1. Android support pending. | -| Expo | **1.0.8** | Supported on iOS via bundled iOS SDK 4.14.1. Android support pending. | +| Android | **2.7.10** | Full support. | +| Flutter | **2.4.12** | Full support via bundled iOS SDK 4.14.2 and Android SDK 2.7.11. iOS-only support started in Flutter 2.4.11. | +| Expo | **1.0.11** | Full support via bundled iOS SDK 4.14.1 and Android SDK 2.7.11. iOS-only support started in Expo 1.0.8. | +| React Native | _Not yet supported_ | The current React Native SDK bundles native SDK versions that predate prioritized campaign preloading. | - On SDKs where Android support is pending, prioritization will work for iOS builds but will have no effect on Android builds. The feature is fully backward-compatible — older SDK versions simply ignore the prioritization flag and preload all paywalls in the default order. + Priority Placements are fully backward-compatible. Older SDK versions ignore the prioritization flag and preload all paywalls in the default order. diff --git a/content/docs/dashboard/dashboard-campaigns/campaigns-placements.mdx b/content/docs/dashboard/dashboard-campaigns/campaigns-placements.mdx index 015be3f..0581481 100644 --- a/content/docs/dashboard/dashboard-campaigns/campaigns-placements.mdx +++ b/content/docs/dashboard/dashboard-campaigns/campaigns-placements.mdx @@ -21,6 +21,10 @@ Superwall.shared.register(placement: "caffeineLogged") { In short, add placements for everything you want to feature gate, and things you may _want_ to in the future. + + If a campaign's paywall needs to be ready immediately, such as during onboarding or on first app launch, use [Priority Placements](/dashboard/dashboard-campaigns/campaigns-placements-prioritized) to preload that campaign before the rest of your app's campaigns. + + ### Placement parameters Placement parameters let you attach contextual data when registering a placement ([SDK docs](/sdk/quickstart/feature-gating)). That data travels with the placement into the dashboard so you can branch logic or personalize the experience without shipping new app code. diff --git a/content/shared/configuring/using-superwalloptions.mdx b/content/shared/configuring/using-superwalloptions.mdx index 0c12eb8..6f41a74 100644 --- a/content/shared/configuring/using-superwalloptions.mdx +++ b/content/shared/configuring/using-superwalloptions.mdx @@ -126,6 +126,10 @@ Paywalls are preloaded by default when the app is launched from a cold start. Th Paywalls are cached by default, which means after they load once, they don't need to be reloaded from the network unless you make a change to them on the dashboard. However, if you have a lot of paywalls, preloading may increase network usage of your app on first load of the paywalls and result in slower loading times overall. + + To make an onboarding or first-launch paywall load before the rest of your campaigns, prioritize the campaign from the dashboard with [Priority Placements](/dashboard/dashboard-campaigns/campaigns-placements-prioritized). Use the SDK methods below when you need to disable automatic preloading or manually preload specific placements. + + You can turn off preloading by setting `shouldPreload` to `false`: :::ios