Feature-wall contextual paywall
Show a paywall tailored to the specific Pro feature the user just tried to use, instead of a generic one.
Use this when your product has several distinct Pro features and users try different ones; a single headline paywall underserves all of them. Don't use this when there is only one Pro feature worth selling; the generic paywall already talks about it.
Goal
A generic "Upgrade to Pro" paywall has to speak to everyone, so it speaks to nobody. The user who just tapped "Export to PDF" is not shopping for the abstract idea of premium — they want to export a PDF right now. This recipe intercepts the feature tap, fires a paywall whose hero section is about that exact feature, and preserves the user's intent to complete the export on conversion.
Setup
The recommended primary shape is a single campaign that handles every gated feature and lets the app pick the matching paywall screen locally. It keeps the dashboard small even when you ship more Pro features. (See Variants for a per-feature alternative.)
In the dashboard
Create one campaign
feature-wall.Trigger: event
FeatureGateTriggered. No property filter onfeature— you will branch in the app.Conditions:
subscription_status = "free".Action: fire
yourapp://paywall/feature-wall?feature={{feature}}. The app reads thefeaturequery parameter and chooses the right paywall screen.Frequency: unlimited — the user keeps hitting features; keep offering the relevant paywall.
On conversion, resume the blocked action (see engineering hand-off).
In the app (engineering hand-off)
On a Pro feature tap, track the gate event with a
featureproperty instead of showing a generic paywall:Register a single deeplink handler for
yourapp://paywall/feature-wall. Read thefeaturequery parameter and route to the matching paywall screen locally.Ship each contextual paywall screen in the build before the campaign goes live. The deeplink cannot introduce new screens.
When the user converts, resume the feature action the user originally tapped. Do not dump them back on the home screen.
How it runs
Free user taps "Export to PDF" on a report screen.
App fires
FeatureGateTriggered { feature: "pdf_export", source_screen: "report_detail" }.Amply evaluates event-triggered campaigns.
feature-wallmatches.Amply fires
yourapp://paywall/feature-wall?feature=pdf_export. The app readsfeature=pdf_exportand opens the PDF-export paywall screen with its own hero and preview.User taps subscribe, completes purchase,
subscription_statusbecomes"pro".App returns the user to the report screen and completes the export automatically.
A different free user taps "Offline mode." Same flow —
feature-wallmatches again, the deeplink carriesfeature=offline_mode, and the app opens the offline-mode paywall screen instead.
Variants
If you need to target or schedule paywalls per feature independently — for example, running a limited-time discount only on the export-to-PDF paywall — use one campaign per feature:
feature-wall-pdf-export,feature-wall-offline-mode,feature-wall-custom-themes.Each campaign triggers on
FeatureGateTriggeredwith afeature = "pdf_export"property filter and fires its own deeplink (yourapp://paywall/pdf-export, etc.).Each contextual paywall can be activated, cancelled, or re-audienced independently.
This scales poorly as the Pro feature set grows — prefer the single-campaign variant unless you need per-feature control.
Metrics to watch
Conversion rate per feature gate. Compare to the generic paywall baseline — expect significant lift on the features users actually reach for.
Gate-to-convert time. Contextual paywalls usually convert faster because the intent is already there.
Top-converting features. This data tells you which Pro features to invest more in.
Post-purchase action completion. If most converters never actually export a PDF after subscribing, the intent-preservation path is broken.
Related
Paywall versioning — shipping and testing each contextual paywall
Second-chance paywall — complementary, triggered by session count instead of feature intent
Campaigns — configuring event-triggered campaigns
Tracking events — the
FeatureGateTriggeredpatternHandling deeplinks — resuming the gated action after conversion
AI-assisted integration — describe this campaign in plain language and have your AI assistant build it
Last updated