---
title: Tailoring paywalls to the ad source and keyword intent
slug: paywall-by-acquisition-source
summary: Using attribution data inside the app to change the paywall by where the user came from — Adapty's keyword-tailored funnels (Apple Ads "Sora AI" searchers see a Sora-themed CPP, onboarding and paywall), higher prices for brand-intent traffic, longer trials for "free…" keywords, competitor-keyword paywalls, and Samet Durgun's no-trial paywall for Meta users.
domain: mobile-apps
tags: [monetization, paywall, user-acquisition, apple-ads, meta-ads, personalization, attribution]
related: [hard-paywall-by-traffic-source, apple-ads-keyword-revenue-optimization, custom-product-pages-for-ads, meta-qualified-trial-optimization-event, apple-ads-brand-vs-non-brand]
sources: [yt:ZRVB9O3vOX4, yt:kXXFtl0ocU0, yt:QdIGi-tKr28]
updated: 2026-10-24
---

# Tailoring paywalls to the ad source and keyword intent

## TL;DR
- If your SDK knows the **campaign / ad group / keyword** at the moment you fetch the paywall, you can show a paywall matching what the user searched for.[^1]
- **Keyword-tailored funnel:** a user searching "Sora AI" (or "Veo 3") gets a matching custom product page, onboarding and a paywall that highlights the Sora-powered video generator.[^1][^2]
- **Brand searchers** already know you. Adapty clients tested **higher prices** for them and saw higher revenue.[^5]
- **"Free …" keywords** (e.g. "free video generator"): try a longer trial, or lower prices, for higher LTV.[^5]
- **Competitor keywords:** spell out on the paywall why you differ from the app they searched for.[^5]
- **Meta traffic:** Samet Durgun suggests a **no-trial paywall** for paid Meta users, so Meta gets a purchase signal. Organic users, with less intent, may want to try first.[^3]

## Details
**The latency problem.** MMP attribution often arrives after the first paywall request, so the tailored paywall comes too late. Adapty's pitch is an SDK that waits for Apple Ads attribution before returning the paywall.[^1] Mykola Martynovets says you can run "at least 100" paywall variants without app releases.[^1]

**The full matched funnel** (Mykola): keyword → custom product page with matching screenshots → matching onboarding → matching paywall, applied to many keywords, not just one or two.[^2]

**Creative intent works the same way on Meta** (Murat Menzilci, Sep 2026). An AI calorie tracker gets users with different intents depending on the ad. Someone who came from a "lose weight" creative can get a different onboarding, paywall and offer, and even a different custom product page. It is the same app with "two completely different first five minutes".[^6] Adapty's case for its own attribution: MMP-based segmentation loses part of the users (Murat claims ~40%), and some teams add extra onboarding screens just to wait for MMP attribution before the paywall.[^7][^8]

**Meta segment** (Murat Menzilci, Samet): Adapty's Meta integration lets you build a "Facebook users" segment and show it a different paywall, e.g. one matching the ad creative, or one without a trial to strengthen the purchase signal.[^4][^3]

## Disagreements / caveats
- The simpler self-report version works without attribution SDKs: a "How did you hear about us?" screen that shows a hard paywall to social-ad users and a soft one to App Store search users ([[hard-paywall-by-traffic-source]]).
- Results here are qualitative vendor claims ("higher ARPU"). No test numbers were given. The one outcome quoted, Wellme tripling MRR in three months without more spend after adopting Adapty Attribution and personalised onboarding/offers, is a vendor case study with no breakdown.[^9]
- A no-trial paywall for Meta traffic conflicts with optimising Meta on (qualified) trials ([[meta-qualified-trial-optimization-event]]). Decide which event the campaign optimises on first.

## See also
- [[custom-product-pages-for-ads]] — the store-page half of the matched funnel
- [[people/mykola-martynovets]], [[people/samet-durgun]], [[people/murat-menzilci]]

[^1]: yt:ZRVB9O3vOX4 @ 40:35 — Mykola Martynovets
[^2]: yt:ZRVB9O3vOX4 @ 41:23 — Mykola Martynovets
[^3]: yt:kXXFtl0ocU0 @ 30:32 — Samet Durgun
[^4]: yt:kXXFtl0ocU0 @ 29:42 — Murat Menzilci
[^5]: yt:ZRVB9O3vOX4 @ 42:14 — Mykola Martynovets
[^6]: yt:QdIGi-tKr28 @ 12:09 — Murat Menzilci
[^7]: yt:QdIGi-tKr28 @ 39:25 — Murat Menzilci
[^8]: yt:QdIGi-tKr28 @ 40:13 — Murat Menzilci
[^9]: yt:QdIGi-tKr28 @ 18:43 — Murat Menzilci
