代理机构在搜索”子账户”,因为大多数工具用这个词来指代一个父级登录下管理多个客户账户的方式。在搭建任何东西之前,值得先弄清楚这个概念如何对应到 Shifter 上,因为正确的结构取决于此。
在 Shifter 上,计划内部并没有子用户。承担子账户职能的单位是工作空间:一个自成体系的空间,拥有自己的计划、钱包、账单和团队,同一个人可以属于多个工作空间,并通过侧边栏在它们之间切换。使用量是按计划追踪的。把这两个事实纳入你的结构,其余的一切都会随之而来。
子账户需要做到什么
抛开术语,代理机构对客户子账户的需求其实只有四点。
| 需求 | 含义 | Shifter 如何实现 |
|---|---|---|
| 隔离 | 一个客户的流量和预算永远不会和另一个客户混在一起 | 计划永远不会跨工作空间 |
| 归因 | 你能说清楚每个客户花了多少钱 | 使用量按计划报告 |
| 访问控制 | 合适的人看到合适的内容 | 每个工作空间有 Viewer、Billing 和 Admin 角色 |
| 干净的离场 | 客户离开时不会影响到其他人 | 移除成员,关闭该客户的计划 |
本指南接下来的内容,就是选择如何安排工作空间和计划,使上述四点同时成立。
两种可行的结构
客户拥有的工作空间
每个客户拥有自己的工作空间。客户为钱包充值并接收账单。代理机构的客户负责人作为 Admin 被邀请进入每个客户的工作空间,并从那里管理采集工作。
当客户愿意持有自己的账单关系时,这是最干净的安排。隔离是绝对的,归因不需要额外工作,因为每个客户的账单本身就是独立的,而离场就是客户把代理机构从其工作空间中移除。一个代理机构登录账号可以通过工作空间切换器访问每一个客户。
代理机构拥有的工作空间,每个客户一个计划
代理机构拥有一个工作空间,在其中为每个客户购买单独的计划,并根据每个计划的使用量向客户计费。
这适合把采集服务作为月费套餐一部分转售的代理机构。只要严格遵守规则,归因就能成立:一个客户,一个计划,绝不共享。在选择这种方式之前,有两个后果值得了解。
- 钱包是绑定在工作空间层级的,任何计划的超额用量都由该钱包承担。工作空间内的每个计划都从同一个资金池中支取,因此一个客户的用量激增可能会消耗掉另一个客户所依赖的余量。要密切关注每个计划的超额情况,或者为用量大的客户单独设置工作空间。
- 工作空间内的所有内容对其成员都是可见的。不要把客户联系人邀请进共享的代理机构工作空间,即便只是作为 Viewer,因为他们会看到其他所有客户的计划和账单。
许多代理机构最终会采用混合模式:为想要自己承担账单的大客户使用客户拥有的工作空间,同时用一个代理机构工作空间容纳按月计费的小客户的计划。
设置方法
无论采用哪种结构,操作方式都是相同的。
- 打开团队页面,在你想管理的工作空间中,从面板侧边栏进入。
- 通过邮箱邀请并选择角色。 已有 Shifter 账户的用户下次登录时会看到一键加入的选项,并保留自己原有的账户。新邮箱则会进入一个简短的注册流程,通过魔术链接完成,无需密码。
- 在工作空间之间切换,通过侧边栏的下拉菜单进行,一旦你属于多个工作空间,该菜单就会出现。屏幕上显示的一切,计划、钱包、账单、团队,都会随之切换。
- 在计划所属的工作空间中购买该客户的计划。 计划之后不会在工作空间之间转移,因此如果买错了工作空间,就得重新购买。
每个工作空间有 10 个席位的软上限。如果大客户需要更多席位,这需要与支持团队沟通,而不是一个硬性限制。工作空间的所有权也可以在客户关系发生变化时按需转移。
该功能本身在介绍 Shifter 的团队工作空间中有详细说明。
选择角色
角色应保持在每个人所需的最低限度。
| 角色 | 可以做什么 | 应授予谁 |
|---|---|---|
| Viewer | 查看计划、流量和账单;浏览产品目录 | 想查看使用情况的客户方相关人员,仅限于其所在的工作空间 |
| Billing | Viewer 的所有权限,外加为钱包充值、支付账单以及购买或升级计划 | 持有付款方式的一方,任何一侧均可 |
| Admin | Billing 的所有权限,外加管理计划和团队 | 负责运行采集工作的代理机构客户负责人 |
角色是按工作空间设置的,而非全局的。同一个人可以在一个客户的工作空间中是 Admin,而在另一个客户的工作空间中是 Viewer,实际生效的始终是当前所在工作空间的角色。
按客户追踪使用量
每个计划在面板中都有实时使用情况视图,可在仪表盘概览和计划自身页面中查看,每分钟更新一次。它显示当前周期内剩余的带宽、每日用量趋势,以及按主机名排列的主要流量目的地。
这三项数据合在一起,足以很好地支撑客户归因工作。
剩余带宽告诉你某个客户是否能在配额范围内完成本周期。
每日趋势显示用量何时发生变化,通常意味着有新任务开始、爬虫失控运行,或者客户在没有明说的情况下要求扩大范围。
按主机名排列的主要目的地是最容易被忽视但很有价值的一项。它能让你核实每个客户的计划是否确实在访问该客户的目标。如果某个计划的主要目的地属于另一个客户的竞争对手集合,那说明某个任务用错了凭据。
使用量追踪无法做到的是事后拆分某个计划的流量。它不会按会话 ID 或按你的哪个任务发出的流量来细分使用量。如果多个客户共用一个计划,之后就无法再区分它们,这正是”每个客户一个计划”这条规则如此重要的原因。
每月运营流程
归因是一种习惯,而不是只跑一次的报告。
- 在每个周期开始时,记录每个计划的初始配额和周期日期。
- 每周,将每个客户的用量与预期消耗速率进行比较,并按”已消耗带宽 ÷ 已过天数 × 周期总天数”重新预测月末用量。
- 当趋势出现跳变时,先检查主要目的地,再判断客户的范围是否真的扩大了。
- 在配额用尽之前,针对每个客户决定超额部分是从钱包扣款还是让任务暂停。住宅代理计划的超额部分会按该计划自身的每 GB 费率从钱包中扣款计费。
- 当客户离开时,移除其相关人员,从所有任务中撤下该计划的凭据,并关闭该计划。
每周核查所用的预测方法详见住宅代理带宽预测。
凭据是隔离的另一半
工作空间把计划分隔开。而你自己的系统必须把凭据分隔开。
每个计划都有自己的凭据。将凭据按客户存放在你的密钥管理系统中,只给每个客户的任务分配该客户自己的计划,绝不要为了图快而把一个客户的凭据复制到另一个客户的任务中,因为这正是归因悄悄失效的方式。不要记录完整的代理连接字符串,这是凭据最常见的泄露到日志聚合系统的方式。
会话 ID 依然可以由你自行命名。在前面加上客户代码,比如 sid-acme-serp-01,不需要任何成本,却能让你自己的日志变得可读,尽管面板本身不会按此拆分使用量。
常见问题
Shifter 的计划内部有子用户吗?
没有。访问权限是按工作空间管理的,共有三种角色,而客户之间的隔离来自于独立的计划,以及在需要时使用独立的工作空间。
一个代理机构登录账号能管理多少个客户?
一个登录账号可以属于任意数量所需的工作空间,并通过侧边栏在它们之间切换。10 个席位的软上限是按工作空间计算的,而不是按登录账号计算的。
客户能看到我们的其他客户吗?
跨工作空间是不能的。在同一个工作空间内,每个成员都能看到所有内容,这正是为什么客户联系人只应被邀请进入他们自己的工作空间。
我可以把一个计划从一个客户转移给另一个客户吗?
计划会留在购买时所在的工作空间中。从一开始就应该在该客户的工作空间中购买该客户的计划。
结论
代理机构在寻找的”子账户”,在 Shifter 上对应的就是工作空间,而归因的单位是计划。给每个客户配备专属计划,绝不例外;在客户希望自己承担账单时选用客户拥有的工作空间,在你转售服务时使用共享的代理机构工作空间;不要把客户联系人放入共享工作空间;并且每周而不是等到出账单时才查看每个计划的使用量。
按这种方式组织,隔离、归因、访问控制和离场流程都会自然而然地得到保障。相关产品见面向代理机构的住宅代理页面,费率见定价页面。