dev.to #ai短讯
我不再检测机器人,而是开始向它们收费:HTTP 402 + USDC 处理代理流量
作者指出爬虫和 AI 代理抓取页面会导致带宽浪费且无法产生广告或联盟收入。在尝试检测并拦截机器人无效后,作者转向通过 HTTP 402 状态码配合 USDC 支付来对 AI 代理流量收费的方案。
我的推荐和广告收入存在结构性问题。当页面被爬虫或读取标记后离开的代理抓取时,会同时发生三件事:请求消耗了带宽和源站算力,广告位从未向真人展示,联盟链接也从未被点击转化为购买。访问确实发生了,但所有的收入模型都无法识别它。
所以我先着眼于显而易见的修复方案:检测机器人并区别对待。结果发现这是错误的切入点,而理解其背后的原因才是更有价值的部分。
用户代理字符串是一种声明,而非事实。任何客户端都可以在头部发送 GPTBot 标识,且爬虫经常更改、伪造或省略其名称。基于此构建的任何机制都只是一种伪装成决策的猜测。因此,分类应停留在其应有的位置——分析领域:我记录请求是否看似自动化,仅用于报告,绝不据此授予或拒绝访问。
这就剩下了诚实的选项:为请求本身定价。
“为请求定价”究竟意味着什么
受保护的内容并未嵌入到页面中。它在自己的端点响应,首次回复是一份报价而非内容本身:
GET /functions/paid-link?slug=example-resource
HTTP/1.1 402 Payment Required
{
"scheme": "exact",
"network": "eip155:8453",
"amount": "1000000",
"asset": "0x…",
"payTo": "0x…",
"description": "example resource"
}该响应中不包含资源的任何部分。只知道如何抓取页面的客户端只能得知价格,别无其他,这正是预期的结果。
专为 x402 协议构建的客户端会读取报价,检查金额和收款地址,并为该特定请求签署授权。它将签名后的有效载荷放入 payment-signature 头部并再次请求。服务器验证授权,支付结算,随后才释放有效载荷。
有两个细节比表面看起来更重要:
价格属于资源,而非访客。对真人、爬虫和代理收取的金额相同,且在获得任何授权之前即可见。这意味着无需依赖爬虫名称即可实现支付,且屏蔽与定价绝不会混淆。
授权不等于结算。签名的有效载荷证明的是意图,而非资金已转移。我的服务器自行检查链上收据:交易必须成功,且转账必须与付款人、收款人、金额以及请求中的授权非ces数相匹配。重定向、成功标志或客户端在正文中发布的数字均不被视为支付证明。
五件看起来简单实则困难的事
- 在不自欺的情况下统计收入。我的仪表板将估算价值和已验证收据分列两栏,因为它们并非同一数值。被报价的请求不是收入,签署的授权也不是收入。只有与成功链上收据匹配的转账才算收入,测试网络代币被标记为无货币价值。每个请求都带有支付状态,因此尚未确认的结算仍显示为未确认,而不是悄无声息地混入总收入中。
- 使失败的尝试可恢复,而非可重复。支付流程最糟糕的情况是失败:客户端不确定资金是否已转移。我最初的直觉是重试,但这会导致重复付费。相反,每次授权都会被哈希并存储,使用相同授权发起的第二次尝试会返回冲突提示,包含原始交易哈希及恢复路径。恢复路径会检查最初付款钱包的所有权,且从不要求二次付款。“请勿再次付款”是整个产品中最重要的一句话。
- 过期窗口。授权载荷包含 validAfter 和 validBefore。如果买家在支付页面停留时间过长,窗口就会关闭。我在联系任何结算基础设施之前会检查该窗口,并返回特定错误,而不是提交一笔无法结算的付款。
- 测试环境和生产环境是不同的产品。我在每条记录中都写入模式,对测试网络运行相同的路由,而测试资源无法接受主网付款。将两者混用会导致你最终无法解释自己的账目。
- robots.txt 和定价是两个独立的问题。爬取权限关乎访问许可,价格关乎条款。我将付费端点排除在爬取范围之外,且付款并不意味着拥有爬取权。将二者混淆会创造出一种无法诚实描述的产品。
这并不包括什么
它本身不会将流量转化为收入。只有当客户端能够且愿意为其请求的内容付款时,才会进行支付,这就是全部条件。没有承诺的付费访问量、转化率或月度数据。如果每个客户都拒绝该报价,则报价被送达但内容不交付,你损失的仅仅是字节。
它也不替代信用卡结账。同一网站通过 Stripe 以信用卡出售静态电商资源,因为大多数买家不想签署交易来下载文件。加密结算是面向机器付款者以及已经持有该代币的人的一种途径,而非面向所有人的支付策略。
它也不是 payout( payouts)系统。结算资金直接落入公共网络上的钱包,没有银行存款步骤,没有 payout 时间表,也没有为你处理的税务事项。
为什么我认为这是有趣的部分
代理流量将持续增长,其中大部分将是阅读有人付费制作的内容。目前互联网提供的两个选项是“阻止它”或“忽略它”。在请求中设置价格是一个第三种选择,而且它令人耳目一新地缺乏光环:无需检测军备竞赛,无需维护爬虫名称黑名单,无需归因建模。要么请求付款并交付内容,要么不付款,双方都不再浪费彼此的时间。
如果你运营着一个有大量自动读取的网站,我真心想知道这在你那里哪里行不通。该端点是一条受支付门控的交付路径,而非免费 API,因此请将此报价视为价格而非演示。机制详情见 payperai.ai/ai-link-monetization,主题页面为 payperai.ai/monetize-ai-agent-traffic。
译文已达到本站中文翻译的字数上限,剩余内容请查看原文。