Open Paywall Gallery 更新到 550 个 App:一个可持续维护的 iOS 订阅付费墙数据集

25 阅读5分钟

我们之前把 PaywallPro 的一部分数据开放到了 GitHub,做成了一个公开数据集:

Open Paywall Gallery
github.com/paywallpro/…

这是一个面向 iOS 订阅 App 的付费墙与 Onboarding 数据集。

第一批开放了 Top 500 iOS 订阅 App 案例。现在,我们完成了第一次周更新,仓库已经从 500 个 App 扩展到 550 个 App

后续我们会继续保持每周新增 50 个 App 的节奏。

这次更新了什么?

本次更新新增了 50 个 iOS 订阅 App,覆盖多个品类。

新增最多的几个品类包括:

Photo & Video10 个
Education:8 个
Utilities:7 个
Productivity:5 个
Social Networking:4 个
Health & Fitness:3 个
Sports:3

同时也补充了 Business、Lifestyle、Medical、Entertainment、Music、News、Reference 等品类。

这次新增的 App 里,有一些比较适合做订阅付费墙研究的案例,例如:

Photo Lab
Airbrush
PixVerse
OpusClip
CamScanner
Fantastical
Brilliant
codeSpark
Fender Play
Truecaller
Foodvisor
SmartGym
Reddit
Chordify

这些 App 覆盖了图片视频、效率工具、教育学习、健康健身、社交工具等多个典型订阅场景。

这个仓库里每个 App 包含什么?

Open Paywall Gallery 里的 App 条目主要以 Markdown 文件组织。

每个 App 会尽量包含这些信息:

App 基础信息
App Store 品类
付费墙截图
Onboarding 预览
定价模型
付费墙模式
部分 MRR / ARPU / RPD 等变现信号
PaywallPro 完整页面链接

这个结构有两个好处。

第一,普通用户可以直接在 GitHub 上浏览。

第二,开发者可以把这些 Markdown 文件当成半结构化数据源,进一步解析、统计和分析。

为什么要持续更新?

如果只看一两个竞品,结论很容易偏。

比如某个 App 使用免费试用,可能和它的品类、流量来源、品牌认知、用户付费动机有关。直接照搬这个策略,未必适合自己的产品。

更合理的方式是看一批同品类 App,观察它们之间的共性。

例如:

是否普遍提供免费试用?
是否普遍突出年付?
是否存在低价月付入口?
是否使用多套餐结构?
是否把 paywall 放在 Onboarding 后?
是否展示节省比例?
CTA 文案更偏功能,还是更偏结果?

样本越多,越容易从单个案例观察,转向模式判断。

这也是我们持续扩展 Open Paywall Gallery 的原因。

它更像是一个长期维护的订阅 App 研究数据集,而不是一次性截图集合。

开发者可以怎么使用?

如果你想进一步处理这个数据集,可以直接读取仓库里的 Markdown 文件。

比如后续可以做这些事情:

按品类统计 App 数量
按 paywall_type 分组
筛选有免费试用的案例
筛选包含年付方案的案例
统计不同品类的定价结构
把数据导出成 CSV
导入 Notion / Airtable / Google Sheets
做内部竞品研究表

一个简单的处理思路是:

import fs from "fs";
import path from "path";
import matter from "gray-matter";

const appsDir = "./apps";
const files = fs.readdirSync(appsDir).filter(file => file.endsWith(".md"));

const apps = files.map(file => {
  const content = fs.readFileSync(path.join(appsDir, file), "utf-8");
  const { data } = matter(content);

  return {
    appName: data.app_name,
    appId: data.app_id,
    category: data.category,
    paywallType: data.paywall_type,
    pricingModel: data.pricing_model,
    mrr: data.mrr,
    rating: data.rating,
    screenshotsCount: data.screenshots_count,
    url: data.app_detail_url
  };
});

console.log(apps.length);

拿到数组后,就可以继续做统计。

比如统计品类分布:

const categoryCount = {};

for (const app of apps) {
  const category = app.category || "Unknown";
  categoryCount[category] = (categoryCount[category] || 0) + 1;
}

console.table(categoryCount);

也可以统计付费墙模式分布:

const patternCount = {};

for (const app of apps) {
  const pattern = app.paywallType || "Unknown";
  patternCount[pattern] = (patternCount[pattern] || 0) + 1;
}

console.table(patternCount);

如果团队内部想进一步分析,也可以把数据导出成 CSV:

import { stringify } from "csv-stringify/sync";

const csv = stringify(apps, {
  header: true,
  columns: [
    "appName",
    "appId",
    "category",
    "paywallType",
    "pricingModel",
    "mrr",
    "rating",
    "screenshotsCount",
    "url"
  ]
});

fs.writeFileSync("./paywall-gallery.csv", csv);

这样就可以把它变成一个可搜索、可筛选、可协作的内部研究表。

适合做哪些分析?

对于做订阅 App 的团队来说,这个数据集可以用于几个典型场景。

第一,做同品类竞品研究。

比如你正在做 AI 工具,可以先看 Productivity、Photo & Video、Utilities 等品类下的 App,观察它们的付费墙结构和定价方式。

第二,做定价结构参考。

重点看周付、月付、年付、多套餐、免费试用、默认选中项、节省比例等字段。

第三,做 Onboarding 研究。

很多 App 的付费墙转化并不只发生在 paywall 页面本身,前面的 Onboarding 也会影响用户付费决策。

第四,整理 A/B 测试假设。

看完一批案例后,可以把观察转成可测试的问题,例如:

是否应该增加免费试用?
是否应该默认选中年付?
是否需要低价月付入口?
是否应该展示节省比例?
是否应该把 paywall 放在 Onboarding 后?
是否需要先让用户完成一次个性化流程?

这样,数据集就可以从“案例浏览”进一步变成“测试假设来源”。

后续会怎么更新?

Open Paywall Gallery 会继续保持每周新增 50 个 App 的节奏。

后续我们还会继续补充:

更多 App
更多品类
更多付费墙截图
更多 Onboarding 预览
更多付费墙模式分类
更多定价专题
更多案例合集

也欢迎大家通过 GitHub Issue 告诉我们:

想看哪个 App
想补哪个品类
希望增加哪些字段
是否需要 JSON / CSV 导出
是否需要更细的 trial_duration 字段
是否需要 default_selected_plan 字段

最后

Open Paywall Gallery 地址:

github.com/paywallpro/…

这次更新后,仓库已经从 500 个 App 增加到 550 个 App。

如果你正在做 iOS 订阅 App、AI 工具、出海产品、增长实验或 UX 研究,可以收藏一下。

如果觉得这个开放数据集有用,也欢迎点一个 Star。

我们会继续把更多真实 iOS 订阅 App 的付费墙、Onboarding、定价结构和部分变现信号整理出来,让订阅产品研究更系统、更可复用。