Why I'm abandoning AdSense on two sites and betting on affiliate monetization

Why I’m abandoning AdSense on two sites and betting on affiliate monetization

为什么我决定在两个网站上放弃 AdSense,转而押注联盟营销变现

The first AdSense rejection was predictable. I’d launched three directory sites on Vercel and hadn’t added custom domains immediately. Google won’t approve a *.vercel.app site — the subdomain pattern can’t carry a credible publisher identity and the policy requirement for a real contact address on the privacy page can’t be met on a free subdomain. Custom domains fixed that. I resubmitted. 第一次被 AdSense 拒绝是在意料之中的。我在 Vercel 上发布了三个目录网站,但没有立即添加自定义域名。Google 不会批准 *.vercel.app 这样的网站——子域名模式无法承载可信的发布者身份,且隐私页面上关于真实联系地址的政策要求也无法在免费子域名上满足。后来我添加了自定义域名并重新提交了申请。

Two weeks later: rejected again. This time for “valuable inventory,” which is AdSense’s way of saying the content doesn’t meet the quality bar they need to place ads against. The reviewer flagged scaled content. Open Alternative To has 80 pages for 80 different paid tools. Even though Claude Haiku generates genuine editorial text for each one, the programmatic pattern triggered AdSense’s classifier. 两周后:再次被拒。这次的理由是“价值库存不足”(valuable inventory),这是 AdSense 的委婉说法,意指内容未达到他们投放广告所需的质量标准。审核员标记了“规模化内容”。Open Alternative To 网站为 80 种不同的付费工具创建了 80 个页面。尽管 Claude Haiku 为每个页面生成了真实的编辑文本,但这种程序化的模式还是触发了 AdSense 的分类器。

That second rejection forced me to actually run the economics I’d been deferring. The asymmetry between affiliate and AdSense for a zero-traffic site: AdSense has an approval gate. Affiliate programs don’t. For a site in month one, that asymmetry is the entire decision. Display ad revenue on a brand-new site with essentially no traffic is effectively zero regardless of whether you’re approved — there’s nothing to monetize. The path to positive earnings requires: getting approved, building traffic, then earning CPM-based revenue at scale. 第二次被拒迫使我不得不去计算那些我一直拖延的经济账。对于一个零流量的网站,联盟营销(Affiliate)和 AdSense 之间存在不对称性:AdSense 有准入门槛,而联盟营销计划没有。对于一个刚上线一个月的网站来说,这种不对称性决定了一切。在一个几乎没有流量的全新网站上,展示广告收入实际上为零,无论你是否通过了审核——根本没有东西可以变现。实现盈利的路径要求:通过审核、积累流量,然后通过大规模的 CPM(千次展示收益)模式获利。

Affiliate revenue has no approval step. The first conversion earns commission the day the link is live. The earning curve is still terrible at low traffic, but the timeline starts earlier. I’ve been deliberately honest in this series about not having numbers to report yet. The sites launched April 23, 2026; I’ll publish month-one metrics in June. But the structural argument for pivoting now — before I have revenue data — is that the two monetization models have different minimum viable conditions. AdSense requires approval. Affiliate requires a user who clicks and buys. 联盟营销收入没有审核环节。链接上线的第一天,只要产生转化就能获得佣金。虽然在低流量时收益曲线依然很惨淡,但获利的时间线提前了。我在这个系列文章中一直坦诚地表示目前还没有数据可以报告。这些网站于 2026 年 4 月 23 日上线;我将在 6 月发布首月指标。但在没有收入数据的情况下选择转型的结构性理由是:这两种变现模式有着不同的最小可行性条件。AdSense 需要审核,而联盟营销只需要用户点击并购买。

Why I didn’t pivot all three sites

为什么我没有让所有三个网站都转型

Three sites, three different audiences: 三个网站,三个不同的受众群体:

SitePrimary intentMonetization strategyRationale
Top AI ToolsDiscover and adopt AI toolsAffiliate (Amazon, SaaS programs)Purchase intent — evaluating paid tools
Find Games LikeFind similar indie gamesAffiliate (Steam, Humble Bundle)Purchase intent — close to a buy decision
Open Alternative ToReplace paid software with open-sourceAdSense (when approved)Anti-purchase intent — display ads monetize page views
网站主要意图变现策略逻辑
Top AI Tools发现并采用 AI 工具联盟营销 (Amazon, SaaS 项目)购买意图 — 正在评估付费工具
Find Games Like寻找类似的独立游戏联盟营销 (Steam, Humble Bundle)购买意图 — 接近购买决策
Open Alternative To用开源软件替代付费软件AdSense (待审核通过)反购买意图 — 展示广告通过页面浏览量变现

The pivot logic turns on purchase intent. Someone browsing AI tools is probably evaluating whether to pay for a Pro plan. Someone looking for games similar to one they liked is close to a Steam purchase. Affiliate commissions trigger on exactly those decisions — the user was already considering the purchase. The OSS alternatives audience is explicitly trying to not spend money. An affiliate link for “buy the paid version you were trying to avoid” is a misalignment. Display ads monetize the page view regardless of purchase intent, so AdSense is the structurally correct model for Open Alternative To — when the editorial quality clears approval. 转型的逻辑核心在于“购买意图”。浏览 AI 工具的人可能正在评估是否要购买 Pro 计划;寻找类似游戏的人则接近于在 Steam 上下单。联盟佣金正是基于这些决策触发的——用户本来就在考虑购买。而 OSS(开源软件)替代方案的受众明确是在试图省钱。放置一个“购买你试图避开的付费版本”的联盟链接是不合适的。展示广告无论购买意图如何都能通过页面浏览量变现,因此对于 Open Alternative To 来说,AdSense 是结构上正确的模型——前提是编辑质量能通过审核。

This means ossfind stays on the quality-improvement track. I’m implementing a content quality gate that limits which pages are indexable, reducing the scaled-content signal that triggered the rejection. The target: resubmit with a smaller set of genuinely thick pages and the rest marked noindex. 这意味着 ossfind 仍需继续进行质量改进。我正在实施一个内容质量门控,限制哪些页面可以被索引,从而减少触发拒绝的“规模化内容”信号。目标是:重新提交时只保留一小部分真正高质量的页面,其余页面标记为 noindex。

The implementation: monetization mode as env var, not deletion

实现方式:将变现模式设为环境变量,而非直接删除

The cleanest part of this pivot was choosing not to delete the AdSense components. Deletion would make the decision permanent before I have revenue data. Instead I added a PUBLIC_MONETIZATION_MODE env var to the shared monetization package: 这次转型中最简洁的部分在于,我选择不删除 AdSense 组件。删除会让这个决定在没有收入数据支撑的情况下变得不可逆。相反,我在共享的变现包中添加了一个 PUBLIC_MONETIZATION_MODE 环境变量:

export type MonetizationMode = "adsense" | "affiliate";

export function getMonetization(): MonetizationConfig {
  const mode: MonetizationMode = process.env.PUBLIC_MONETIZATION_MODE === "adsense" ? "adsense" : "affiliate";
  return {
    mode,
    enabled: {
      // AdSense only renders when mode=adsense AND client ID is set.
      // Default "affiliate" means env leftovers can't accidentally surface ads.
      ads: mode === "adsense" && !!adsenseClient,
      amazon: !!amazonTag,
    },
  };
}

The default is “affiliate”. If I forget to set the env var on a new deployment, AdSense doesn’t accidentally appear and damage my publisher account reputation. To re-enable AdSense on ossfind when the quality work is done, it’s one env var change in the Cloudflare Pages dashboard. This is the same “safe default” principle I apply elsewhere in the stack — the post-deploy JSON-LD audit ensures broken structured data can’t reach Google undetected; the monetization default ensures AdSense can’t appear on a site that hasn’t been approved. 默认值是“affiliate”。如果我在新部署时忘记设置环境变量,AdSense 不会意外出现并损害我的发布者账户信誉。当质量改进工作完成后,只需在 Cloudflare Pages 仪表板中更改一个环境变量,即可重新启用 ossfind 上的 AdSense。这与我在技术栈其他部分应用的“安全默认”原则一致——部署后的 JSON-LD 审计确保损坏的结构化数据不会在未被发现的情况下传给 Google;变现默认设置确保 AdSense 不会出现在未获批准的网站上。

I also added affiliate disclosure pages to both pivoted sites. The FTC requires disclosure when affiliate links appear; Amazon Associates adds its own ToS requirement. Each site now has /affiliate-disclosure with a footer link. The copy renders from the shared shared/legal package using a privacyPolicy(site, { ads }) function that switches between AdSense and affiliate text based on the monetization config. One source of truth for both modes. 我还为两个转型的网站添加了联盟营销披露页面。FTC(美国联邦贸易委员会)要求在出现联盟链接时进行披露;Amazon Associates 也有其自己的服务条款要求。现在每个网站都有一个 /affiliate-disclosure 页面,并在页脚处有链接。文案由共享的 shared/legal 包渲染,使用 privacyPolicy(site, { ads }) 函数,根据变现配置在 AdSense 和联盟营销文本之间切换。两种模式共用一个事实来源。

What affiliate programs I’m actually using

我目前正在使用哪些联盟营销计划

For Top AI Tools: 针对 Top AI Tools:

  • Amazon Associates — primarily for AI-adjacent hardware (GPUs for local inference, books on practical ML) and tools that have physical product lines. Not every AI tool maps to an Amazon purchase, so this is supplementary coverage. Amazon Associates — 主要用于 AI 相关硬件(用于本地推理的 GPU、机器学习实践书籍)以及拥有实体产品线的工具。并非每个 AI 工具都能对应到亚马逊上的商品,所以这是一种补充覆盖。
  • Direct SaaS programs — a handful of tools in the directory offer 20-30% recurring commission through their own partner programs. I’m applying to these individually. Slower to set up but higher per-conversion yield than Amazon. 直接 SaaS 项目 — 目录中的少数工具通过其自身的合作伙伴计划提供 20-30% 的循环佣金。我正在逐一申请这些项目。虽然设置起来较慢,但单次转化的收益比亚马逊更高。

For Find Games Like: 针对 Find Games Like:

  • Humble Bundle Partner — covers Steam purchases through the Humble store. The commission on game sales is modest but consistent with audience behavior on a discovery site. Humble Bundle Partner — 涵盖通过 Humble 商店进行的 Steam 购买。游戏销售的佣金虽然不高,但与发现类网站的受众行为非常契合。
  • itch.io — no formal affiliate program. I link directly with no commission. Dropping itch games from the site to avoid the zero-commission awkwardness would be the wrong call; the in… itch.io — 没有正式的联盟营销计划。我直接链接且不收取佣金。为了避免零佣金的尴尬而从网站上删除 itch 游戏是不对的;因为……