独立开发周记 144:一小时内下载量超一万但是零收入 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vulgur
V2EX    写周报

独立开发周记 144:一小时内下载量超一万但是零收入

  •  
  •   vulgur 8 天前 450 次点击

    2025,1110-1116

    这周最大的快乐来自于,在闲鱼上以超低价收了两套豪华仓鼠笼子,又购入了一大堆笼内用品,还买了一只刚满月的虎纹白腰金丝熊妹妹,这下儿女双全了,每天被萌得晕头转向。

    本周工作

    单词游戏 上架

    我的单词游戏(对,是游戏),正式名称是 Word Hack , 终于是上架 App Store 了,从 git 第一个 commit 到上架,正正好好四个月。

    上架过程

    周二上午做好了所有的截图,让 AI 准备好所有的元数据,还让 AI 顺手做了个 Landing page,下午提交审核。截图就是在 Figma 里找了个 App Store Screenshots 模板,把截图丢进去,改一下每张图的文字就搞定了。Landing page 是把所有截图和元数据都交给 AI ,然后让 AI 生成了一个静态网页,我一行代码也没改,就直接部署到 Vercel 上了。

    周三收到了审核失败的通知,问题不大,是年龄分级填写的问题。我趁此机会又提交了一个新的 build ,把最低支持的系统改到了 iOS 17.6 。周四早上一醒来就看到了审核通过的邮件,不过我没有立刻进行宣传,因为还有好多个问题没有解决。

    Admob

    虽然是提前接入了 Admob ,但是 App 上架后还是没能加载正式的广告,因为 app-ads.txt 的验证没有通过,整个 App 的 Admob 是还没有审核通过的。上一次给 iOS App 加上 Admob 还是 2016 年,我记得那时候不需要这个 app-ads.txt ,但是现在是必需的了。

    为了通过 Admob 的审核,必须修改在 App Store 里的营销 URL ,这就意味着必须提交一个新的 App 版本。正好我发现了一个小 bug ,又顺便清理了一下无用的文件,App 体积从 280MB 降到了 20MB ,终于是在周五上午 App Store 通过审核并上架了 1.0.1 。

    我又紧接着准备了 ProductHunt 的资料,并且在几个群里宣传了一下,其中一个群友是点了广告,而那一天只有一次展示,估计就是这位群友帮忙贡献的了,感激!

    备案

    因为没有提前准备备案,导致 Word Hack 现在是环中国大陆上架的状态。

    周一上午我开始准备申请备案,发现原来的云服务器上面的备案额度已经用光了,只好又买了一个轻量云服务器,就为了这个 App 的备案。上午提交了备案申请,我是按照工具类 App 提交的备案,备注是“通过游戏化的方式帮助用户学习并记忆英语单词”,下午被腾讯云驳回,就是 App 备注那里的出的问题,如图所示。我修改成了“通过字母组合猜单词的工具”,还是被驳回了。接到了腾讯云人员的电话,说凡事涉及“英语、单词、学习”这些词的都属于校外培训,也不能出现“游戏”二字 ……最后是他帮我做了些“优化”,然后提交到了管局审核。一周过去了,审核还没进一步的消息。

    穿山甲

    等待备案的同时,我开始着手为国内版接入穿山甲。

    之前听其他开发者说,国内的广告平台基本只有穿山甲和优量汇这两个选择,在群友的推荐下,我先接触了穿山甲。

    一打开网站,全是看不懂的术语,而且不论干什么操作都必须先签署合同,好在资料都齐全,一下午就都搞定了。然后就是接入 SDK ,2025 年了,而且马上就要 2026 年了,居然首推的 SDK 集成方式是 Cocoapods……我上次用这个东西还是 9 年前。穿山甲有一个所谓的可视化接入工具,就是分四步帮你接入。 第一步,SDK 引入,我选择了本地引入(实在是不想用 Cocoapods ),下面显示请参考本地接入文档,打开后是一片空白。但其实不是空白,只是这个文档好像是动态加载出来的,有一个很大的延迟才会显示,我试了好几次都以为是空白页就直接关掉了,也导致后面遇到了很多问题。 第二步,初始化对接,参考代码有 objc 和 swift 两种,还有各种注意事项,我反正都交给 AI 来处理了。 第三步,广告对接,我新建了一个激励广告的 slot ,同样把参考代码交给 AI 。 第四步,测试工具,这里的示例代码只有 objc ,即使选择了 swift ,显示的也是 objc 。

    走完这四步,编译没问题,但是一加载初始化代码就会崩溃。折腾了半天,才发现原因是本地接入 SDK 的话需要 Xcode 做一些设置才可以正常调用,而这些在上面说的那个加载很慢的文档里我才看到。除了设置权限和 Build Settings ,还需要添加 34 个依赖库,看到这里我震惊了!比起用 SPM 的 Admob ,穿山甲还是落后啊。

    更诡异的是,我没有严格按照文档里所需的库和 linker flag 都添加到项目里,最后也能正常运行了。只不过点击广告后不展现,错误码是 40006 ,看文档里说是“广告位 ID 不合法”,但是我的穿山甲的 appId 和 slotId 都没问题,也不知道这个所谓的“广告位 ID”是什么。另外我的 App 在穿山甲一直是“审核中”的状态,说是两三个小时就能完成,但是已经过去三天了,还没有任何进展,广告不展现也不知道跟这个审核状态有关。哪怕像 Admob 那样给个测试 URL 或者接口也行啊,淦。

    搞了一下午加一晚上最终也没看到广告,心烦意乱,心灰意冷,心力交瘁,一怒之下 git reset --hard !

    准备接入优量汇。去看了下文档,示例代码居然连 swift 都没有,只有 objc ,不过有关于如何桥接的说明。需要添加的系统库没有穿山甲那么多,只有 14 个,其余的权限和 linker flag 也没有穿山甲那么多。

    接下来看看能不能搞定优量汇吧。

    突如其来的下载量

    周三晚上发现极简时钟在一小时内下载量超过了 1 万,而且 99.99%都来自于日本,我赶紧看了下收入和排名,并没有任何变化。小红书上的开发者让我看看是不是下载设备都是“台式电脑”,我一看还真是,他说那就是“机构购买”了,又过了两天,Connect 的分析页面里果然在下载来源里显示了这一笔“机构购买”。

    可惜啊,极简时钟是免费下载的,所以这 1 万下载量也都是零元购。另外,机构购买的下载量也不参与 App Store 的排名,不然名次肯定蹭蹭往上蹿啊。

    错过了一个亿?

    在鼓捣 Word Hack 的 Admob 配置的时候我才发现,原来这么多年,极简时钟 GP 版的 app-ads.txt 一直是未验证的状态,但是不影响广告的加载和显示。我问了一下 ChatGPT 如果缺少这个 txt 会有什么影响。

    最后,ChatGPT 的总结是:不加不会导致广告消失,但会让你的收入和广告质量持续变差。必须尽快添加。 难道我这么多年竟然错过了财务自由的机会?我还奇怪为什么广告收入一直这么低,而且低到离谱。于是我赶忙给极简时钟 GP 加上了这个 app-ads.txt ,然后我也咨询了两个 Admob 行家,他们都说影响不大……事实也确实如此,之后三天收入并没有显著增加,到时 eCPM 有了变化,也不知道是否是正常波动。

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2900 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 20ms UTC 14:06 PVG 22:06 LAX 06:06 JFK 09:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86