大家好,
最近,我爱上了各种数据分析。
当我在寻找副业时,我探索了不同的选择,并偶然发现了数字产品的世界。 Gumroad、Ko-fi 等平台主导了这个市场。
但我一开始就遇到了障碍:有数百种产品。
那么,我应该卖哪一个呢?
研究了各种文章和平台后,我意识到没有足够的可靠数据来做出明智的决定。
这促使我开始跟踪最大的数字产品市场之一的趋势:Gumroad。
我从一个简单的 JavaScript 脚本开始,该脚本对公开可用的 Gumroad API 执行基本的 API 请求。您可以在浏览器的“网络”选项卡中轻松查看这些请求:
https://gumroad.com/products/search?&tags[]=vrchat&from=10
这是一个好的开始。我决定跟踪 10 个最受欢迎的标签并每天获取数据。
我使用的技术堆栈:
效果很好。我连续几天收集数据,发现它足够有趣,可以进一步扩展。我也在 X 上得到了社区的支持,所以我决定采取下一步。
我意识到仅仅了解最受欢迎的标签是不够的——真正的潜力在于识别正在增长的标签。
在下一次迭代中,我从最受欢迎的利基市场收集了子标签,并以这种方式收集了 5,000 多个标签。
这每天会产生超过 20,000 行数据,所以我需要一个存储解决方案。
由于仍然可以在 MongoDB Atlas 上托管免费集群,并且 MongoDB 与 JavaScript 配合得很好,所以我选择它作为我的存储选项。现在,数据已存储,我可以运行各种分析。
另一个挑战是收集数据所需的时间。
最初花了五个小时。就在那时我了解了代理。设置多个代理服务器并行处理数据后,收集时间从 5 小时缩短到仅 30 分钟。
我手动运行所有脚本,所以我决定自动化该过程。
我将源代码托管在 Hetzner 上的远程服务器上,并通过 crontab 设置 cron 作业。
0 18 * * * /usr/bin/node index.js collect-data 0 21 * * * /usr/bin/node index.js collect-totals
第一个作业收集数据,第二个作业将其聚合以形成摘要。它会删除重复项并计算与前一天相比的增长。
const [mode = 'collect-data'] = process.argv.slice(2); if (mode === 'collect-data') { return collectData(); } if (mode === 'collect-totals') { return collectTotals(); }
我决定为这个项目创建一个简单的 UI 并公开分享。这就是gumroadtrends.com 的推出方式。
我用过:
用户界面如下所示:
仅靠 7 天的数据很难了解趋势,因此我计划继续收集自动驾驶仪的数据,并在几周后重新审视它以获得更深入的见解。
我很高兴分享我用来构建此产品的任何内容。这是我对我所在的#buildinpublic 社区的一点小贡献。
祝您的项目顺利!
如果您对此主题感兴趣,请随时与我们联系。在 X 上关注我
以上是这就是我构建数字产品分析工具的方式的详细内容。更多信息请关注PHP中文网其他相关文章!