TinyPilot:第 22 个月
原文由 Michael Lynch 于 发布,订阅该博客
一句话总结
我的钱都去哪儿了?
本月亮点
- TinyPilot 月收入达 5.8 万美元,却依然在亏损。
- 能够低延迟地掌握开发者的工时情况,比我想象中更重要。
- 时隔近两年,我再次尝试投放付费广告。
目标评分
每月初我都会定下当月想完成的目标,以下是完成情况:
发布一篇关于使用 TinyPilot 搭建家用实验室 NAS 服务器的博客文章和视频
- 结果:已接近完成,但尚未发布。
- 评分:D
这篇博客比预想的要长得多。我想把挑选配件时的思考过程都写进去,没想到会花这么多时间。希望能在接下来几周内收尾。
完成 TinyPilot 网站改版
- 结果:网站几乎没有任何设计上的变化。
- 评分:F
这场原计划六周完成的改版,如今已经进行了七个月。可耻的是,网站在用户可见的层面几乎没有任何变化。
我已经终止了与设计机构的合同,他们将在本月结束工作。希望他们能在剩下的几周内完成改版。如果做不到,我会另请一位开发者来收尾,因为这个项目已经拖得太久了。
发布支持通过 WebRTC 传输 H264 视频的实验性功能的 TinyPilot Pro 版本
- 结果:已向一位大客户提供了早期构建版本,但尚未公开发布。
- 评分:C
这个月的主旋律就是“比预想的多花了一点时间”。版本代码已经完成,但在向客户发布之前,还需要完成最后的手动测试。
TinyPilot 数据统计
| 指标 | 2022 年 3 月 | 2022 年 4 月 | 变化 |
|---|---|---|---|
| 独立访客 | 6,212 | 5,268 | -944 (-15%) |
| 总页面浏览量 | 13,375 | 11,974 | -1,401 (-10%) |
| 销售收入 | $65,171.82 | $43,771.00 | -$21,400.82 (-33%) |
| 企业订阅 | $47.75 | $47.75 | 0 |
| 版税 | $4,012.83 | $2,253.61 | -$1,759.22 (-44%) |
| 总收入 | $69,232.40 | $46,072.36 | -$23,160.04 (-33%) |
| 利润 | $-3,043.34 | $-19,392.76 | -$16,349.42 (inf%) |
四月对 TinyPilot 来说是艰难的一个月。无论是美国本土还是欧洲分销商,销量都跌至近六个月来的最低点。通常每个月靠几笔大额订单能带来 5000 至 10000 美元的收入,但四月一笔也没有。
目前还不清楚四月只是运气不好,还是因为经济衰退的信号导致人们收紧开支,亦或是竞争对手的新产品正在蚕食我们的销量。
我的钱都去哪儿了?
在上次回顾中,我提到 2022 年第一季度平均每月盈利 5300 美元。做账时我才发现,博客里公布的数字和实际账目对不上,实际上我每月要亏损 3000 美元。
这个数字让我很意外——月收入有 5.8 万美元,每台 TinyPilot 设备能赚 250 到 325 美元,怎么还会亏钱呢?
为了弄清楚原因,我仔细梳理了 2022 年第一季度的月均开支。

| 开支项目 | 月均成本 |
|---|---|
| 原材料 | $24,896.46 |
| 软件与技术支持外包 | $14,900.43 |
| 设计机构 | $7,938.32 |
| 硬件电路设计 | $5,291.07 |
| 履约人员 | $2,915.75 |
| 邮费 | $2,393.49 |
| 税费 / 关税 | $1,423.14 |
| 办公室租金 | $916.67* |
| 云服务 | $495.03 |
| 广告 | $106.78 |
| 其他 | $265.34 |
| 总计 | $61,542.47 |
* 实际租金是每月 550 美元,但第一季度的租金支出看起来偏高,是因为房东兑现支票的时间不太规律。
最大的开支是原材料,甚至比平时更高,因为为了应对供应短缺,我不得不为未来 18 到 36 个月囤积零配件。其中每月约有 6200 美元是用于购买能用几年的备件,等这波囤货结束后,每月的物料成本会大幅下降。
第二大开支是软件与技术支持,约 1.49 万美元。比平时略高是因为我短期聘请了一位外部顾问来协助集成一项新的视频技术。正常水平更接近 1.2 万美元,但即便如此也已经很高了。
对 TinyPilot Pro 收费本是为了覆盖开发和支持成本,但我们还没有实现许可证校验和到期提醒。约三分之一的 TinyPilot 用户的 Pro 许可证已经过期却毫无察觉,仍在免费获得支持和更新。未来几个月,我在软件方面的首要任务是重构 TinyPilot 的更新流程,让只有付费且有效的许可证才能获取最新的 Pro 版本。我还希望让用户更方便地开通自动续费,比如每年支付 80 美元自动续订,而不用在到期后再手动购买。
设计机构每月花费近 8000 美元,好在这笔开支马上就要结束了。我已经付了最后一笔款项,合同在五月底到期。之后我可能会请一位开发者来维护网站,工时会更少、费率也更低,预计每月只需 1000 到 2000 美元。
接下来是每月 5300 美元的硬件电路设计费用。未来两三个月这笔费用仍会居高不下,因为我的硬件合作方正在为 TinyPilot Voyager 2 重新设计以便于量产。设计工作完成后,预计会降至每月约 2000 美元,因为维护成本要远低于设计成本。
各项开支大致可分为三类:
- 固定成本:房租、人力等与销量无关的经常性开支。
- 物料与邮费:几乎完全随销量变动,但增速约为收入增速的三分之一。
- 临时性开支:如硬件重设计、囤积零配件等一次性支出。
我必须靠销售利润来覆盖固定成本,并为增长性开支留出空间。如果假设软件成本降至每月 1.2 万美元、硬件电路设计降至 2000 美元,那么固定成本约为每月 1.9 万美元。如果原材料约占收入的 30%,那意味着我需要做到 2.7 万美元的销售额才能维持收支平衡(2.7 万美元销售额扣除物料成本后净得约 2.2 万美元)。
做到月销 2.7 万美元感觉并不难,过去六个月我都远超这个数。不过销售额呈下滑趋势,加上经济衰退的迹象,我还是希望能持续超过盈亏平衡点,并为增长和一次性开支留出余量。
低延迟工时汇报的重要性
上次更新中,我列举了与设计机构合作时希望早点知道的诸多事项。四月,我又发现了一条必须补上的:工时汇报至关重要。
三月底,设计机构为改版提出了一个建议:换一套新的 Bootstrap 主题。TinyPilot 网站使用的是 Bootstrap CSS 框架。我们至今仍在用当初建站时从 Bootswatch 找来的免费第三方主题。在 Bootstrap 和第三方主题之外,我们还有大量自定义样式,往往是按页面或组件单独写的。
机构指出这种架构很混乱,建议用一套全站统一的自制 Bootstrap 主题来取代第三方主题和零散的自定义样式。他们估计只需几天就能完成。听起来挺有道理——否则后续的改版都得在三层 CSS 样式的冲突中艰难推进,换掉反而可能更快回本。
结果这项主题重构花了五周,总费用 6100 美元。至于用户能看到的变化,如下:


花费 6100 美元进行网站开发的前后对比:左侧为改版前,右侧为改版后
从长远看,这次重构是有益的,但我现在并不想做。改版已经延期六个月、超支五倍。我宁愿先有一个好看的网站,同时慢慢修补难看的代码,也不想要一个代码漂亮却外观平平的网站。
那么,我是怎么让这种事发生的?TinyPilot 的固定开发者很少会在我不希望的方向上越走越远,但和这家设计机构合作时却屡屡发生。
一个关键区别在于,TinyPilot 的开发者会让我低延迟地了解他们的时间花在了哪里。每次工作结束,他们都会记录工时,并用简短的备注说明在做什么。

TinyPilot 的内部开发者会随时汇报工时。
如果我在等他们交付,我就会查看工时记录。要是发现某项任务花了 14 小时,而我预期只需 2 小时,那就说明要么是我低估了难度,要么是我没把任务讲清楚。无论哪种情况,我都会去和开发者沟通,决定是继续还是及时纠偏。
而与设计机构的反馈循环要慢得多。他们每月 15 号只给我一个总工时数,月底才会发来详细的工时去向报告,但那时已经太晚了。


设计机构每月只汇报两次工时——月中一次,只有一个不透明的总时长(左);月末一次,才有按任务细分的明细(右)。
另一个问题是,设计机构只按月承诺工时,而不是按周。二月份,他们前三周几乎没有做任何开发工作,然后在最后十天里把所有工作都挤在一起。这加剧了反馈迟滞的问题,让我无法判断一项任务是耗时过长,还是根本还没开始。
如果以后再与设计机构合作,我一定会坚持使用能实时共享计费工时的工具。这些信息的价值太高,不能等上几周才看到,否则就无法及时发现预期与实际的偏差。
小试付费搜索广告
我在 TinyPilot 早期就尝试过投放付费广告,但一直没有好的效果衡量方法。我的销售网站用的是非标准的自建技术栈,很难与 Shopify 或 Google Analytics 上常规的转化跟踪工具对接。即使转化跟踪看似正常,也只能捕捉到约 30% 的订单,要么是我哪里没配置对,要么就是 70% 的用户都开了广告拦截。
后来在尝试联盟推广时,我意外解决了转化跟踪的问题。当用户通过联盟链接访问时,TinyPilot 网站会把联盟 ID 存到浏览器的本地存储中。用户下单时,我们再把该 ID 作为订单属性保存下来。这样就不依赖 Google Analytics,也不用和广告拦截插件对抗。
我意识到可以用同样的方法来跟踪付费广告。只需把广告链接中的来源信息当作联盟 ID 来处理就行。于是,我用这个办法重新尝试了付费推广,在 Google 和 Bing 上投放了广告。

我的第一条 Google 搜索广告。
| 指标 | Bing | |
|---|---|---|
| 广告花费 | $1,715.10 | $1,018.09 |
| 展示次数 | 15,623 | 7,023 |
| 点击次数 | 701 | 196 |
| 点击率(CTR) | 4.5% | 2.8% |
| 单次点击成本(CPC) | $2.45 | $5.19 |
| 转化收入 | $4,202.88 | $789.97 |
| 广告支出回报率(ROAS) | 2.45 | 0.78 |
Google 在几乎所有指标上都优于 Bing。Bing 的单次点击成本是 Google 的两倍,带来的收入却只有三分之一。
最重要的指标是广告支出回报率(ROAS),Google 上为 2.45。换句话说,在 Google 上每花 1 美元,就能带来 2.45 美元的收入。其中约 0.76 美元是零配件和人力成本。算下来大致是 2.45 美元收入 - 1 美元广告费 - 0.76 美元物料与人力成本 = 0.69 美元利润。
也就是说,在 Google 广告上花 1 美元能赚 0.69 美元利润,非常划算!而且这个收入还只是下限,因为如果用户在手机上点了广告,却在电脑上完成购买,我的统计就无法将这笔订单归因于 Google。实际收益可能比数据显示的还要高。
我还没有对广告文案或受众定向做任何优化。我猜如果交给营销机构来打理,回报还能显著提升。
我已将 Google 的日预算提高到 150 美元,只要还能盈利,就会继续加码。
我把 Bing 的日预算保持在 50 美元,并会做一些优化。Bing 把我的广告展示给了许多不相关的搜索词,比如“unifi 24 port switch”(功能完全不同的产品)和“kvms pro”(某种 CCTV 管理软件)。
我本来想在 DuckDuckGo 上投放广告,因为我觉得它的用户群体与我的产品很契合。奇怪的是,DuckDuckGo 并不直接销售广告,只能通过其直接竞争对手 Bing 间接购买。要在 DuckDuckGo 上投广告,就必须先在 Bing 上投放,然后开通 Bing 联盟合作伙伴的投放,其中包括 AOL、Yahoo 和 DuckDuckGo。

在 DuckDuckGo 上投放广告的唯一方式,就是同时在 Bing、Yahoo 和 AOL 上投放。
业余项目
PicoShare
我仍在乐此不疲地开发 PicoShare,这是一款我为了更方便地分享大文件而做的简易网页应用。
让我很兴奋的一个功能是访客上传链接。很多时候,尤其是在与 TinyPilot 的合作伙伴协作时,我需要让对方发给我一个超出邮件附件大小限制的文件,却又不想让对方为了传个文件去注册 Google Drive 或 Dropbox 之类的网盘服务。
借助 PicoShare 的访客上传功能,我可以像这样创建一个访客链接:

然后,PicoShare 会生成一个定制的访客链接,例如 https://picoshare.tinypilotkvm.com/g/sWy2Pi5Dm8afJuxs。访客打开该链接后,无需任何注册即可向我的 PicoShare 服务器上传文件:

我已经在 TinyPilot 中开始使用它,比之前用的 Mega.nz 和 Dropbox 要流畅得多。
我新增的另一个功能是支持为上传文件附加私有备注,方便你记录关于文件的细节:


PicoShare 现在支持为上传的文件添加私有备注。
总结
完成了什么?
- 付费搜索广告初见成效。
- TinyPilot Pro 的 2.4.1 版本已完成代码开发,支持 H264 视频。
- TinyPilot 向 uStreamer 贡献了文档,说明了如何通过 WebRTC 串流 H264 视频。
经验教训
- 与外包或机构合作时,需要低延迟的工时汇报。
- 否则,很容易在项目超支或偏离范围时未能及时察觉,等发现时为时已晚。
下月目标
- 发布一篇关于使用 TinyPilot 搭建家用实验室 NAS 服务器的博客文章和视频。
- 完成 TinyPilot 网站改版。
- 聘请一家营销机构或自由职业者。
随机一篇博客
评论
登录后参与讨论