How Many CTAs Does the Median Paywall Have?
- By Ali Abouelatta
- n = 874
- Published
- Updated
- 2 min read
- paywall · checkout · monetization · ux-patterns · mobile
Short answer
The median mobile paywall has 2 distinct CTAs, based on 874 paywalls with extracted CTA rows in Lazyweb's corpus (p25=1, p75=3, mean 2.89).source[1] A plurality — 41.8% — have just one CTA, while 21.2% carry four or more.source[1] If you are deciding how many tappable actions to put on a paywall, one-to-three is the normal range and the median is two.
The median mobile paywall shows 2 distinct CTAs; 41.8% have just one and 21.2% have four or more, across 874 paywalls (Lazyweb Research, July 2026).
Bar chart · Share of 874
Share of 874 — CTA-count distribution
One block is about 1.5%
- 1
- 41.8%
- 2
- 25.7%
- 3
- 11.3%
- 4+
- 21.2%
The finding
Across 874 canonical paywalls with extracted CTAs, the median number of distinct CTA texts is 2 (p25=1, p75=3, mean 2.89).source[1] The distribution is front-loaded: 41.8% of paywalls have a single CTA, 25.7% have two, 11.3% have three, and 21.2% have four or more.source[1] Distinct-text dedup is used to avoid double-counting re-extractions; raw row counts have a long tail (one canonical had 114 rows), so the median-of-2 reflects distinct on-screen actions, not raw extraction volume.source[2]
CTA-count distribution
| Distinct CTAs | Paywalls | Share of 874 |
|---|---|---|
| 1 | 365 | 41.8% |
| 2 | 225 | 25.7% |
| 3 | 99 | 11.3% |
| 4+ | 185 | 21.2% |
Summary stats: median 2, p25 1, p75 3, mean 2.89.source[1]
How to apply it
One or two CTAs is the norm — typically a primary subscribe/continue action plus a secondary (restore, view all plans, or dismiss).source[1] The role mix across all 4,406 extracted CTAs is primary-heavy: 1,886 primary, 597 secondary, 196 dismiss.number[3] Four-plus-CTA paywalls exist (21.2%) but usually reflect multiple plan buttons plus footer links; if your paywall is drifting past three tappable actions, check whether extra plan buttons are pulling attention from the primary CTA.source[1]
Caveats
Counts are distinct CTA texts per canonical from the paywall CTA extraction (874 of 1,297 paywalls have extracted rows), so paywalls without extracted CTAs are excluded.source[1] Role figures are reported separately across the full 4,406-CTA set and 39% of rows are role-unknown, so treat the primary/secondary/dismiss split as the labeled subset.number[3]
Real in-market screens
Screens from real, in-market apps, tracked by Lazyweb Research.
The numbers
| # | Stat | Computed from |
|---|---|---|
| [1] | median 2 CTAs (p25=1, p75=3, mean 2.89); 1=365 (41.8%), 2=225 (25.7%), 3=99 (11.3%), 4+=185 (21.2%), n=874 | cta_count_per_paywall: median 2, p25 1, p75 3, mean 2.89; distribution 365/225/99/185 of 874 |
| [2] | 874 of 1,297 paywalls have extracted CTAs; max 114 raw rows on one canonical | cta_count_per_paywall: n=874, distinct-text dedup, max 114 rows |
| [3] | 4,406 CTAs: primary 1,886, secondary 597, dismiss 196, unknown 1,727 (39.2%) | cta_role_mix: 4,406 rows; primary 1,886, secondary 597, dismiss 196, unknown 1,727 |
Methodology
Universe: 874 canonical paywalls with extracted CTAs across ~800 tracked apps (4,406 CTAs, 252 companies). CTA count = distinct lowercased CTA texts per canonical. July 2026 pull. Key caveat: paywalls without extracted CTAs are excluded; role figures use the 2,679 labeled rows.
Sources
- [1]
Lazyweb Research analysis of 874 paywalls with extracted CTAs (~800 tracked apps), July 2026
Distinct CTA texts per canonical paywall from the paywall CTA table; distinct-text dedup to avoid re-extraction double counts.
- [2]
Lazyweb Research analysis of 4,406 paywall CTAs (252 companies, 874 canonicals), July 2026
Role mix across all extracted CTAs; 39.2% are role-unknown, so role-based figures reflect the 2,679 labeled rows.
Source: Lazyweb Research — proprietary analysis of real, in-market app screens. Cite as Lazyweb Research, 2026-07-07.



