每日投放报告 — 2026-08-04,对比 2026-08-03

账户用一个全球广告系列买 web-to-app 安装,五条素材实验臂各占一个广告组;另加一个当天很晚才开跑的 德语区投放的前三个投放小时。按 UTC 日,这一天花费 $446.00,拿到 785 次安装,单次安装成本 (CPI)$0.568;前一天是 $445.83、766 次、$0.582。报表时钟、三种收入口径和预算区间的定义见附录。

1总览

2026-08-032026-08-04
花费$445.83$446.00
展示次数213,05335,852
CPM$2.09$12.44
链接点击量5,6493,238
CTR2.65%9.03%
安装数(Meta)766785
点击→安装13.6%24.2%
CPI$0.582$0.568
注册数(我们的)805824
入账收入$709.35 · ROAS 1.59 (Meta 1.66)$921.86 · ROAS 2.07 (Meta 1.93)
当日闭合收入$397.69 · ROAS 0.89$588.70 · ROAS 1.32
同期群 24 小时$474.05 · ROAS 1.06 (覆盖率 100%)$783.90 · ROAS 1.76 (覆盖率 35%)

展示次数那几列不要读。 08-03 有 85.4% 的展示次数来自某一条实验臂坏掉的版本在一个小时里跑出来的 量,所以上表里每一个展示侧的合并对比,都是那一小时离场,不是账户变了。第 2 节把同样两天逐小时读了 一遍,什么也没读出来。

这一天要读当日闭合收入。 同期群 24 小时在 08-04 只覆盖 35%,08-03 是 100%,而且还在往上走,两者 不可比。当日闭合收入两天都已封存:0.89 → 1.32

这一天涨的是客单价,不是付费人数。 两天收盘时的当日闭合付费用户都正好是 39 个,付费率从 4.8% 走到 4.7%,ARPPU(每付费用户收入)从 $10.20 走到 $15.09。48% 的涨幅全部出在这里,而且很集中:一个付费 用户就占全天的 15.1%。

入账的钱里有三分之一是继承来的。 08-04 入账收入的 36.1% 来自更早几天安装的人,这正好是入账 2.07 与当日闭合 1.32 之间的差。第 4 节按安装日把它拆开。

2分小时:2026-08-04

投放那几列,每个比值的两边都用 Meta 的计量口径。付费用户数和收入用我们自己的。入账收入挂在付款小时 上,当日闭合收入和同期群挂在安装小时上。

小时花费展示CPMCTR安装点击→安装CPI入账$bROAS闭合$wROAS闭合付费同期群$cROAS
0013.2484415.699.48%1721.2%0.77957.714.3617.971.36117.971.36
0112.201,06611.447.50%1923.8%0.64226.652.180.000.0000.000.00
0213.291,11111.966.48%1318.1%1.02216.131.2116.131.21322.111.66
0314.361,22411.739.31%3833.3%0.3785.760.400.000.0000.000.00
0416.901,28113.198.98%2622.6%0.65013.810.8210.750.64210.750.64
0517.501,37212.767.43%4140.2%0.42718.541.065.710.3315.710.33
0617.421,27613.657.60%2929.9%0.60111.930.6917.861.03321.421.23
0710.5967115.7810.43%1825.7%0.58839.283.7154.165.11154.165.11
0819.661,31614.948.13%3129.0%0.63414.650.7550.672.58250.672.58
0918.651,35813.736.48%1820.5%1.03677.394.150.000.0000.000.00
1019.271,43513.436.97%2626.0%0.74163.193.28136.327.072140.007.26
1117.901,45512.307.22%1918.1%0.94252.712.9411.080.62279.994.47
1216.261,31512.378.14%3129.0%0.5259.320.575.760.3515.760.35
1317.571,18714.809.86%3126.5%0.56734.831.980.000.0000.000.00
1413.531,11412.159.25%2524.3%0.54121.951.625.930.44127.002.00
1521.342,03410.4910.67%3616.6%0.5938.890.425.760.27116.440.77
1624.162,6529.118.60%4017.5%0.60477.883.2223.640.98337.881.57
1728.732,51211.448.92%4218.8%0.68463.152.2022.420.78122.420.78
1826.142,21111.828.68%4624.0%0.56827.961.079.980.38212.970.50
1920.621,87710.998.74%4829.3%0.43079.213.8432.851.59348.032.33
2019.131,67211.4412.08%5527.2%0.34839.462.0627.051.41332.801.71
2120.751,60812.9012.44%5527.5%0.37749.422.3851.612.49251.612.49
2226.321,63816.0711.48%4423.4%0.59896.773.6871.362.71371.362.71
2320.471,62312.6110.23%3722.3%0.55315.260.7511.690.57254.872.68

花费在一天里基本是平的,$10.59 到 $28.73,没有哪个小时超过全天的 6.4%。CPI 在 $0.348 到 $1.036 之间, 在这个时钟上看不出干净的时段形状:最便宜的四个小时是 20、21、03、05。收入那几列在这个颗粒度上读不 出来。 每小时的当日闭合付费用户是 0 到 3 个,一个人就能整个抬起一小时:10 时两个付费用户读出当日 闭合 ROAS 7.07,07 时一个人读出 5.11。

同期群那一列随一天推进逐级变薄。覆盖率到 09 时为止是 100%,10 时是 96%,从 11 时起是 0%,所以 10 时 之后的每一个同期群数字只算了已经到手的付款,后面还会涨。

2026-08-05T10:30:30.023766 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 3 6 9 12 15 18 21 hour (UTC) 0 5 10 15 20 25 30 USD Spend by hour 0 3 6 9 12 15 18 21 hour (UTC) 750 1000 1250 1500 1750 2000 2250 2500 2750 impressions Impressions and installs by hour impressions installs 20 30 40 50 installs (Meta Leads) The day's motion — whole account, 2026-08-04 (UTC)
这一天的走势:分小时花费,以及展示次数对安装数
2026-08-05T10:30:30.231979 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 4 8 12 16 20 hour (UTC) 7 8 9 10 11 12 CTR % CTR 0 4 8 12 16 20 hour (UTC) 9 10 11 12 13 14 15 16 USD per 1,000 impressions CPM 0 4 8 12 16 20 hour (UTC) 20 25 30 35 40 installs / clicks % Click → install 0 4 8 12 16 20 hour (UTC) 0.4 0.5 0.6 0.7 0.8 0.9 1.0 USD Cost per install Delivery by hour — whole account, 2026-08-04 (UTC)
分小时的 CTR、CPM、点击→安装和 CPI,整个账户

对比 2026-08-03,逐小时一一对齐

只比较两天都有投放的小时。在这个账户上做日环比,时段结构是最大的混杂因素,所以哪一天缺的小时就整个 丢掉,不拿它去配空值。这一段跑在报表时钟上,用的是上表同一个加载器,因为花费、展示次数、点击和安装 都挂在 Meta 的投放小时上,跨两个账户日能精确重新拼接。

按 UTC 时钟,两天都有投放的小时:04、05、06、07、08、09、10、11、13、14、15、16、17、18、19、20、 21、22、23。2026-08-04 另外还在 00、01、02、03、12 有投放。只比较共同投放小时。

数一下每个共同投放小时指向哪一边。这个数法不需要加权,只问方向:

指标2026-08-04 更高的小时数更低的小时数符号检验
CPM19 个里 12 个19 个里 7 个p = 0.359
CTR19 个里 10 个19 个里 9 个p = 1.000
点击→安装19 个里 10 个19 个里 9 个p = 1.000
CPI19 个里 12 个19 个里 7 个p = 0.359

符号检验把幅度扔掉,换回来的是不需要加权的方向:它回答这一天往哪边动,从不回答动了多少。

四个指标全都分不开。 按不加权的小时计数,四个投放比值在两天之间都是抛硬币。第 4 节合并的那一行 说的正相反,那里 CTR 读出 +246.9%、p = 0.000,两者打架正是同时跑这两种读法的意义。合并那一行按每 小时的投放量给它加权,而 08-03 有一个小时几乎投了全部。

逐小时完整对照,2026-08-03 → 2026-08-04

全部共同投放小时,2026-08-03 → 2026-08-04。每一列、每个比值的两边都是 Meta 的计量口径。这里故意不 放收入:每小时的付费用户是 0 到 3 个,一列分小时收入等于把一个人的单笔金额当成比率来读。

小时展示次数CPMCTR点击→安装CPI
04515 → 1,28110.97 → 13.1911.26% → 8.98%17.2% → 22.6%0.565 → 0.650
052,009 → 1,3729.78 → 12.769.41% → 7.43%20.1% → 40.2%0.517 → 0.427
062,471 → 1,2769.97 → 13.658.98% → 7.60%27.5% → 29.9%0.404 → 0.601
072,804 → 6719.93 → 15.788.63% → 10.43%22.3% → 25.7%0.516 → 0.588
083,420 → 1,3168.81 → 14.947.78% → 8.13%23.3% → 29.0%0.486 → 0.634
093,726 → 1,3587.98 → 13.737.89% → 6.48%26.2% → 20.5%0.386 → 1.036
103,203 → 1,4359.22 → 13.437.81% → 6.97%24.4% → 26.0%0.484 → 0.741
111,046 → 1,4558.68 → 12.309.46% → 7.22%35.4% → 18.1%0.259 → 0.942
131,590 → 1,18711.85 → 14.806.98% → 9.86%22.5% → 26.5%0.754 → 0.567
14182,805 → 1,1140.59 → 12.151.64% → 9.25%2.0% → 24.3%1.757 → 0.541
15823 → 2,0349.84 → 10.499.23% → 10.67%27.6% → 16.6%0.386 → 0.593
161,080 → 2,65213.14 → 9.118.70% → 8.60%25.5% → 17.5%0.591 → 0.604
171,267 → 2,51212.65 → 11.448.13% → 8.92%23.3% → 18.8%0.668 → 0.684
181,181 → 2,21115.50 → 11.829.06% → 8.68%29.9% → 24.0%0.572 → 0.568
191,263 → 1,87716.98 → 10.999.58% → 8.74%27.3% → 29.3%0.650 → 0.430
201,141 → 1,67216.28 → 11.4410.17% → 12.08%34.5% → 27.2%0.464 → 0.348
211,046 → 1,60819.05 → 12.9012.33% → 12.44%26.4% → 27.5%0.586 → 0.377
22859 → 1,63815.90 → 16.0711.06% → 11.48%37.9% → 23.4%0.379 → 0.598
23771 → 1,62316.89 → 12.619.47% → 10.23%39.7% → 22.3%0.449 → 0.553

合并对比的全部内容就是 14 时这一个小时。 08-03 的 14 时投出 182,805 次展示,CPM $0.59, CTR 1.64%,而这一天其余小时是每小时 515 到 3,726 次展示、CPM $7.98 到 $19.05、CTR 6.98% 到 12.33%。这一个小时占了 08-03 在被比较窗口内展示次数的 85.8%。它就是被弃用的那版 spillDECISION_LOG.md #50),这两天的任何合并比较,讲的主要都是它。

2026-08-05T10:30:30.520001 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 hour (UTC) 2 4 6 8 10 12 CTR % CTR 2026-08-03 2026-08-04 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 hour (UTC) 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 USD per 1,000 impressions CPM 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 hour (UTC) 5 10 15 20 25 30 35 40 installs / clicks % Click → install 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 hour (UTC) 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 USD Cost per install Delivery by hour — 2026-08-04 against 2026-08-03, shared hours only (UTC)
同样四个比值,把前一天叠在这一天上,只取共同投放小时

3分国家

花费和安装那两列是账户日口径。 Meta 不提供小时 × 国家的交叉表,所以分国家的投放数据只存在于 广告账户自己的 UTC-7 日上,无法重新拼接。收入那几列是 UTC 日按国家拆开的。两边相差七个小时,所以 这里的 ROAS 各列横跨两个窗口:这张表只能读结构,不能拿它的水平去和第 1 节或第 4 节比。按花费 排序。Meta 的入账数值放在括注里。

国家花费 (账户日)安装 (账户日)CPI入账bROAS (Meta)当日闭合wROAS同期群 24 小时cROAS
印度 IN$119.29192$0.621184.841.55 (2.04)136.791.15186.201.56
美国 US$50.1135$1.432163.843.27 (5.70)136.892.73211.784.23
德国 DE$48.3520$2.41825.410.53 (0.53)25.410.5325.410.53
墨西哥 MX$18.3734$0.54044.182.40 (3.55)40.772.2240.772.22
英国 GB$17.0319$0.89610.860.64 (0.64)0.000.000.000.00
土耳其 TR$15.5831$0.5030.000.00 (0.00)0.000.000.000.00
印尼 ID$13.3859$0.2270.000.00 (0.60)0.000.000.000.00
阿根廷 AR$12.5250$0.2509.980.80 (4.79)4.990.404.990.40
马来西亚 MY$11.5324$0.4805.380.47 (0.47)5.380.475.380.47
菲律宾 PH$10.2945$0.22939.193.81 (5.25)0.000.000.000.00
澳大利亚 AU$9.456$1.5750.000.00 (1.64)0.000.000.000.00
加拿大 CA$8.678$1.08423.942.76 (1.50)4.990.574.990.57

美国用五个人扛起全天当日闭合收入的 23.3%。 它的 $136.89 来自五个去重付费用户,其中最大的一个占 65.0%,前两个合起来占 86.9%。对照这个账户用的 16 付费用户门槛(#37),诚实的说法是该样本量下读不 出来水平;这一行只能看方向,不能看幅度。

印度是它的镜像,付费用户数是当天所有国家里最多的:$136.79 背后有 13 个去重付费用户,占全天当日闭合 收入的份额和美国一样,而安装买价是 $0.621,同一口径下美国是 $1.432。它最大的付费用户占 32.8%,所以 连印度也未过门槛。德国单次安装成本 $2.418,是这个口径下最贵的一格,是印度的 3.9 倍,第 8 节讨论它。

2026-08-05T10:30:30.702793 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ IN US DE MX GB TR ID AR MY PH AU CA 0 20 40 60 80 100 120 140 USD spend and installs are a META-day cut (no hour x country grid exists); revenue is the report day Spend against within-day revenue by country — 2026-08-04 spend within-day revenue
分国家的花费对当日闭合收入
2026-08-05T10:30:30.785709 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ IN US DE MX GB TR ID AR MY PH AU CA 0.0 0.5 1.0 1.5 2.0 2.5 USD per install Cost per install by country — 2026-08-04 (META day)
分国家的单次安装成本

4汇总:两日对比

按 UTC 时钟,在两天都有投放的 19 个小时上合并。每个比值的两边都是 Meta 的计量口径。

花费展示次数CPM点击CTR安装数点击→安装CPI
2026-08-03$445.54213,0202.095,6452.65%75713.41%$0.589
2026-08-04$376.6530,29212.432,7859.19%66723.95%$0.565

跨小时合并比的是结构,而在这两天上这个比法会误导。 它按每小时的投放量加权,所以只要一天在时钟 上的买法变了,哪怕没有任何一个小时发生变化,这几行也会动。第 2 节把同样两天逐小时数了一遍,两个 比值都完全分不开。上面两个 p 值都由 08-03 的 14 时扛着,不能当成账户转化能力的变化来读。

固定到两天都在跑的单条素材上,按广告账户自己的时钟,只有两个检验过了 p < 0.05:

bikini(−10.2%,p = 0.224)、pool5(−11.9%,p = 0.240)和 mugshot(−31.4%,p = 0.052)分不开。 任何单条素材的安装→付费检验,两天都没有一个过 0.05。这些分素材检验取的是估算器按 Meta 时钟建的 单元格,所以它们的日界是账户日,总数和上面几张表对不上。

口径2026-08-03ROAS2026-08-04ROAS当天结束后还会变吗?
入账收入$709.351.59$921.862.07已结算
当日闭合收入$397.690.89$588.701.32从不
同期群 24 小时$474.051.06 (覆盖 100%)$783.901.76 (覆盖 35%)08-04 仍在上升
Meta 入账,供参考$738.831.66$862.961.93

两行里 Meta 的括注数字都按它自己的转化时钟报出,放在这里是为了让这一天能追溯到 Meta 将要报的数, 不是当第二套计量口径用。

各天的入账收入,按付款人安装的那一天拆开:

付款人安装于2026-08-032026-08-04
当天本身$397.69 (56.1%)$588.70 (63.9%)
前一天$109.64 (15.5%)$95.77 (10.4%)
前两天$137.54 (19.4%)$116.35 (12.6%)
前三天$58.74 (8.3%)$102.09 (11.1%)
前四天或更早$5.74 (0.8%)$18.95 (2.1%)

每一列的第一行就是当日闭合收入。正是这个恒等式,让入账与当日闭合之间的差额恰好等于继承来的同期群, 再无其他成分。

2026-08-05T10:30:30.865355 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ booked within-day cohort @ 24h 0 200 400 600 800 USD 1.59 0.89 1.06 2.07 1.32 1.76 the number above each bar is that measure's ROAS against the same day's spend The three revenue measures, 2026-08-03 against 2026-08-04 (UTC) 2026-08-03 2026-08-04
两天的三种收入口径,每根柱子上方标 ROAS
2026-08-05T10:30:30.925229 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 2026-08-03 2026-08-04 0 200 400 600 800 USD the bottom segment IS the within-day figure: the same number seen twice Booked revenue by the day its payer installed (UTC) the day itself one day earlier two days earlier three days earlier four or more
入账收入按付款人安装的那一天拆分

5分广告组,分小时

这一天每个广告组恰好只有一条广告在投,所以这里的广告组行就是广告行,各行按素材命名。这个等同 关系是这一天的事实,不是广告系列的属性:..._d100_spill 广告组下面挂着两条广告, vid_ww_spill_8s_9x16_v1 和它的副本,两者是一对替换关系,不是两条实验臂,前者在广告账户的 08-03 投放,后者从 08-04 开始,从来没有同时跑过。第 8 节的德语区投放才是这个账户上等同关系真正失效的 对象,一个广告组里挂着十五条素材。

单一时钟的投放切分,按 UTC 六小时一段。所有列都是 Meta 的计量口径。这里不放收入列,因为每条素材 每小时的付费用户是 0 到 2 个,什么也承载不了。

素材时段花费展示CPMCTR点击→安装CPI
bikini00–0516.041,42311.279.84%25.7%0.446
bikini06–1123.911,93812.347.28%24.8%0.683
bikini12–1737.283,22211.578.38%22.6%0.611
bikini18–2334.582,66212.9910.67%26.4%0.461
bodysuit00–0524.522,22211.046.26%33.8%0.522
bodysuit06–1127.362,39811.415.80%29.5%0.667
bodysuit12–1728.242,8709.847.80%25.4%0.495
bodysuit18–2333.163,02610.969.91%25.3%0.436
pool500–0526.582,12712.508.56%26.4%0.554
pool506–1126.701,89114.128.36%25.9%0.651
pool512–1724.201,90712.699.75%19.4%0.672
pool518–2326.012,8699.078.89%23.1%0.441
mugshot00–0520.351,12618.079.06%18.6%1.071
mugshot06–1123.121,08121.3910.27%16.2%1.284
mugshot12–1724.361,98712.2611.27%11.6%0.937
mugshot18–237.6547316.1710.57%20.0%0.765
spill206–112.4020311.828.87%27.8%0.480
spill212–177.518289.0711.11%23.9%0.341
spill218–2320.361,36014.9715.37%26.3%0.370
german_mature18–239.8820348.675.42%36.4%2.470
latina_true18–231.793649.728.33%33.3%1.790

spill2 在 18–23 时段拿到全账户最高的 CTR,15.37%;在它有量的两个时段里安装也最便宜,$0.341 和 $0.370。mugshot 的 CPM 是 12 到 21,同伴是 9 到 15;它把 11.6% 到 20.0% 的点击转成安装,同伴是 19% 到 34%,所以它跑过的每一个时段,CPI 都高于其余每一条实验臂。bodysuitpool5mugshot 各自最便宜的安装都出现在 18–23 时段,也就是广告账户的上午晚些到下午;bikini 最便宜的是 00–05, spill2 是 12–17,所以整组素材并不共用同一个时段形状。

2026-08-05T10:30:31.010100 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 4 6 8 10 12 14 16 18 CTR % CTR by hour — every asset, 2026-08-04 (UTC) E2/bodysuit E2/bikini E2/pool5 E2/mugshot E2/spill2 DE/german_mature
分小时 CTR,每条素材一条线
2026-08-05T10:30:31.218575 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0 10 20 30 40 50 60 installs / clicks % Click → install by hour — every asset, 2026-08-04 (UTC) E2/bodysuit E2/bikini E2/pool5 E2/mugshot E2/spill2 DE/german_mature
分小时点击→安装,每条素材一条线
2026-08-05T10:30:31.315723 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 USD Cost per install by hour — every asset, 2026-08-04 (UTC) E2/bodysuit E2/bikini E2/pool5 E2/mugshot E2/spill2
分小时单次安装成本,每条素材一条线
2026-08-05T10:30:31.114267 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 10 20 30 40 50 USD per 1,000 impressions CPM by hour — every asset, 2026-08-04 (UTC) E2/bodysuit E2/bikini E2/pool5 E2/mugshot E2/spill2 DE/german_mature
分小时 CPM,每条素材一条线

6分广告组 × 国家

花费和安装是账户日口径,和第 3 节一样;收入是 UTC 日。 只列花费超过 $5 的单元格,按花费排序。 收入是当日闭合收入。

素材国家花费 (账户日)安装 (账户日)CPI当日闭合$wROAS
bikiniIN42.10860.49044.341.05
bodysuitIN26.37440.59950.671.92
turkish_matureDE18.6936.2300.000.00
bodysuitUS18.3192.03437.962.07
spill2IN18.00300.60026.701.48
mugshotIN17.64111.6040.000.00
pool5IN15.17190.79911.520.76
pool5US14.10150.94093.946.66
bikiniUS11.0771.5814.990.45
german_matureDE10.3942.59825.412.45
germanDE9.2842.3200.000.00
bodysuitMX7.09140.50635.064.95
pool5GB5.4460.9070.000.00
pool5MX5.13120.4285.711.11

pool5 在每一个收入口径上仍然排第一,而扛着它的那一格只有两个人。 它 $228.50 的当日闭合收入 里有 $93.94、也就是 41.1%,来自美国这一格,而这一格恰好只有两个付费用户,金额是 $88.95 和 $4.99。其中较大的那一笔占这一格的 94.7%,占这条素材全天所有收入的 38.9%。同一条素材在同一窗口里 往印度花了 $15.17,在那里的当日闭合 ROAS 是 0.76。

这一个付费用户同时也占整个账户当日闭合收入的 15.1%。把他去掉,pool5 的当日闭合 ROAS 从 2.21 掉到 1.35,落到 bodysuit 未受影响的 1.57 之下。所以这一天前两名实验臂的排序取决于一个人,而且无论他 在哪个国家,这一点都成立。

2026-08-05T10:30:31.436603 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ E2/bodysuit E2/bikini E2/pool5 E2/spill2 E2/mugshot 0 20 40 60 80 100 % of that asset's spend Where each asset bought — share of its own spend by region, 2026-08-04 (META day) IN US DE MX GB TR other
每条素材买在哪里:各地区占它自己花费的比例
2026-08-05T10:30:31.550342 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ E2/bodysuit E2/bikini E2/pool5 E2/spill2 E2/mugshot 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 USD per install Cost per install by region — every asset, 2026-08-04 (META day) IN US DE MX GB TR
分地区单次安装成本,全部素材
2026-08-05T10:30:31.632235 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ E2/bodysuit E2/bikini E2/pool5 E2/spill2 E2/mugshot 0 20 40 60 80 USD Within-day revenue by region — every asset, 2026-08-04 (META day) IN US MX
分地区当日闭合收入,全部素材

这几张地区图沿用第 3 节的口径说明,画在账户日的国家切分上。

7分广告组:汇总,三种收入口径

下面三张表是固定素材区块,由 report_tables.py 生成后原样贴入。本系列每一份报告里,它们的列和列序 都相同,所以任意两天可以互读。每一行是当天有花费或有安装的广告对象,包括没有花费、却仍然收到晚归因 安装的那些。

A. 分素材:投放端

每个比值的两边都是 Meta 的计量口径。我们自己的注册数不进这张表。

素材花费展示次数CPM点击CTR安装数点击→安装CPI
E2/bodysuit$113.2810,51610.778027.63%22127.56%$0.513
E2/bikini$111.819,24512.098359.03%20724.79%$0.540
E2/pool5$103.498,79411.777818.88%18423.56%$0.562
E2/mugshot$75.484,66716.1748710.43%7314.99%$1.034
E2/spill2$30.272,39112.6631913.34%8225.71%$0.369
DE/german_mature$9.8820348.67115.42%436.36%$2.470
DE/latina_true$1.793649.7238.33%133.33%$1.790
earner/bodysuit$0.00006$0.000
earner/bikini$0.00004$0.000
earner/pool5$0.00002$0.000
E2/spill$0.00001$0.000

B. 分素材:三种收入口径

每一列都是我们自己的口径。Meta 只能表达入账收入这一项,所以它以括注形式跟在那一列旁边,不单占一行。付费用户数的是去重的人,不是交易笔数。同期群观测时长 H=24h,这一天覆盖率 35%。报表时钟为 UTC

素材入账bROAS (Meta)当日闭合wROAS同期群@HcROAS付费用户付费率ARPUARPPU最大付费用户
E2/bodysuit$192.571.70 (1.91)$177.481.57$198.771.75114.9%0.78916.1325.3%
E2/bikini$77.590.69 (0.97)$54.670.49$89.240.8083.5%0.2416.8323.6%
E2/pool5$228.502.21 (1.95)$228.502.21$343.343.32126.2%1.19019.0438.9%
E2/mugshot$12.220.16 (0.38)$6.320.08$6.320.0811.3%0.0826.32100.0%
E2/spill2$38.611.28 (1.37)$38.611.28$59.541.9744.7%0.4499.6554.2%
DE/german_mature$25.412.57 (2.57)$25.412.57$25.412.57125.0%6.35125.41100.0%
DE/latina_true$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000
earner/bodysuit$193.40(—)$3.56$7.12112.5%0.4453.56100.0%
earner/bikini$80.25(—)$0.00$0.0000.0%0.000
earner/pool5$0.00(—)$0.00$0.0000.0%0.000
E2/spill$73.33(—)$54.16$54.16150.0%27.08254.16100.0%

16 付费用户门槛(#37):上表中付费用户数不足 16 的行,只能看方向,不能看幅度。

C. 分素材:国家结构

这张表是账户日口径,不是 UTC 日。 Meta 不提供小时 × 国家的交叉表,所以分国家的投放数据只存在于广告账户自己的 UTC-7 日上,无法重新拼接。相对上面的 A、B 两表,它的窗口偏移七小时;只能读结构,不能拿它的水平去和那两张表比。

这张表说明 B 表里的某一行读不读得住。最后一列是该素材自己的当日闭合收入里来自美国的比例:当它远高于美国的花费占比时,这条素材买到的是一片地域,而不是挣到了一个结果。

素材花费印度占比美国占比其他占比美国占其收入的比例
E2/bodysuit$136.9819.3%13.4%67.4%21.4%
E2/bikini$120.5534.9%9.2%55.9%9.1%
E2/pool5$104.1414.6%13.5%71.9%41.1%
E2/mugshot$51.6934.1%3.2%62.7%0.0%
E2/spill2$62.8728.6%7.9%63.4%0.0%
DE/german_mature$12.140.0%0.0%100.0%0.0%
DE/latina_true$1.790.0%0.0%100.0%

这一天没有任何一条实验臂达到 16 付费用户门槛。 B 表里最高的是 pool5 的 12 个,其次是 bodysuit 的 11 个。所以上面每一行收入都只能看方向,而十二个付费用户的实验臂和十一个付费用户的 实验臂之间的差距不构成结果。

三张表放在一起读,这一天分得很干净。A 表说 spill2 买到全账户最便宜的安装,$0.369,CTR 也最高, 13.34%;mugshot 只把 14.99% 的点击转成安装,同伴是 24–28%,而价格约为它们的两倍。B 表说 pool5 在三种收入口径和两个人均口径上都领先五条全球实验臂,付费率 6.2%,ARPPU $19.04。C 表说 pool5 收入 的 41.1% 来自一个只占它 13.5% 花费的国家,差 28 个百分点;除它之外,只有 bodysuit 在这个差值上是 正的,八个百分点。

关于 B 表的水平还有一条提醒:全天 $588.70 当日闭合收入里有 $57.72、也就是 9.8%,来自两条完全没有 花费的实验臂,对应的是晚归因到已关停版本上的安装。实际买了媒体的五条全球实验臂,用 $434.33 的花费 收回 $505.58,当日闭合 ROAS 是 1.16,而不是全天头条的 1.32。

2026-08-05T10:30:31.734620 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 08-01 08-02 08-03 08-04 day (UTC) 0 1 2 3 4 5 6 7 8 payers / installs % Payer rate by day — every asset (UTC) earner/bodysuit earner/bikini E2/bikini E2/bodysuit E2/pool5 E2/mugshot earner/pool5 E2/spill E2/spill2
分日付费率,每条素材一条线
2026-08-05T10:30:31.835193 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 08-01 08-02 08-03 08-04 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 1.2 within-day USD per install ARPU by day — every asset (UTC) earner/bodysuit earner/bikini E2/bikini E2/bodysuit E2/pool5 E2/mugshot earner/pool5 E2/spill E2/spill2
分日 ARPU,每条素材一条线
2026-08-05T10:30:31.936165 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 08-01 08-02 08-03 08-04 day (UTC) 0 5 10 15 20 25 within-day USD per payer ARPPU by day — every asset (UTC) earner/bodysuit earner/bikini E2/bikini E2/bodysuit E2/pool5 E2/mugshot earner/pool5 E2/spill E2/spill2
分日 ARPPU,每条素材一条线
2026-08-05T10:30:32.063870 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 08-01 08-02 08-03 08-04 day (UTC) 0.0 0.5 1.0 1.5 2.0 revenue / spend Within-day ROAS by day — every asset (UTC) earner/bodysuit earner/bikini E2/bikini E2/bodysuit E2/pool5 E2/mugshot earner/pool5 E2/spill E2/spill2
分日当日闭合 ROAS,每条素材一条线

上面四张图里的空心点表示未过 16 付费用户门槛,这一天所有点都是空心的。安装不足 20 次的素材不进下面 的合成图,也不进第 6 节的地区图:四次安装出一个付费用户,在归一化的收入轴上就能顶到 1.0,把每一条 真实的实验臂都压到图底。

2026-08-05T10:30:32.204487 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ CTR click→install CPI payer rate * ARPU * wROAS * 0.0 0.2 0.4 0.6 0.8 1.0 normalised across the day (1.0 = best of the pack) * axis sits under the 16-payer bar on most days: direction only, never a level. Assets under 20 installs on the day are not plotted. Composite — every asset across every measure, 2026-08-04 E2/bodysuit E2/bikini E2/pool5 E2/mugshot E2/spill2
合成图:全部素材在全部口径上的表现,按当天归一化

同预算区间、结构中性的切分

取自框架在 H=12 上的读数,按广告账户的时钟。结构中性是把每条广告的 ROAS 按它所在预算区间的合并 国家结构重算,保留它自己的成本效率和收入效率,从而去掉第 6 节暴露出来的地域混杂:

素材预算区间安装花费CPMCTR印度占比CPIROAS结构中性
bikiniE2-R116069.811.328.82%34%0.4361.121.00
bodysuitE2-R111156.212.586.90%17%0.5061.051.08
pool5E2-R111166.714.889.93%15%0.6011.000.81
mugshotE2-R19580.916.978.64%22%0.8520.210.25
spillE2-R185111.10.611.67%7%1.3080.050.07
bikiniE2-R213272.012.088.29%40%0.5450.540.63
bodysuitE2-R210657.910.177.02%25%0.5461.121.17
pool5E2-R28154.112.398.59%15%0.6683.341.93
mugshotE2-R25049.014.9210.95%22%0.9810.00
spillE2-R23510.89.3410.64%23%0.3092.463.81
bikiniE2-R3238.811.6712.43%35%0.3830.960.97
bodysuitE2-R33211.011.2412.00%12%0.3432.392.06
pool5E2-R3378.69.6010.60%0%0.2322.161.89
spillE2-R3249.014.9215.18%12%0.3770.640.98

E2-R1 是这个账户至今唯一一段所有实验臂预算相同的时间。在它里面,pool5 的原始 1.00 在国家结构中性 化之后变成 0.81,落到 bikini 的 1.00 和 bodysuit 的 1.08 之下。E2-R2 里它从 3.34 掉到 1.93, E2-R3 里从 2.16 掉到 1.89。结构中性那一列在三个预算区间里都把 pool5 往下移,而其余任何一条实验臂 被它往下移的幅度都不超过 0.33,这和第 6 节从另一头得到的结论是同一个。E2-R3 各行只有 23 到 37 次 安装,承载力也就相应地小。

收入到底能不能撑起分素材的判定:在 1,596 次安装、81 个付费用户上(5.1%,均值 $0.690,标准差 $5.321),变异系数是 7.72,而所需样本量随它的平方增长。

要分辨的差异每条实验臂的安装数每条实验臂的媒体花费
50%3,739$1,309
30%10,384$3,634
20%23,363$8,177
10%93,452$32,708

账户里最大的同预算区间实验臂有 160 次安装,只有分辨 20% 差异所需量的 1%。本报告里每一个分素材的 收入数字都只能看方向,不能看幅度。

8德语区投放

这个投放在广告账户当天开得很晚,所以本 UTC 日只抓到它的前三个投放小时,落在 18–23 时段里。窗口内 只有两条素材有花费。它跑在一个广告组里,下面挂着十五条素材,所以它是账户上唯一一个广告组行与素材行 不是同一回事的对象。

广告花费安装CPI当日闭合$
german_mature_10s$9.884$2.47025.41
latina_true_10s$1.791$1.7900.00
合计$11.675$2.33425.41

两点观察,都和哪条素材更好无关:

  1. 展示的价格是全球投放的四倍。 同一窗口下,德语区的 CPM 是 $48.83,五条全球实验臂是 $12.20; CPI 是 $2.334 对 $0.566,差 4.1 倍。这是这个投放真正的约束,三个小时就足以看清。
  2. 它第一天剩下的投放落进了 08-05。 另有三条德语区素材在广告账户的 08-04 有花费,全部发生在账户 时间 17:00 之后,所以它们属于下一个 UTC 日,不在上面任何一张表里。第 3 节和第 6 节能看到它们, 是因为那两处是账户日口径:turkish_mature 在那个窗口的德国花了 $18.69,比任何一条德语区素材 都多,包括这里的两条。

它离打平还有多远,读不出来。 一个付费用户,当日闭合收入 $25.41,占它所属素材和所属国家格的 100%。对照 16 付费用户门槛,诚实的说法是这个样本撑不起一个 ROAS。

9口径与边界

10要把这些问题定下来,需要什么

11交给五实验臂测试的东西

E2_ww_creative_5cell_260806 在 08-06 的 00:00 PT 开跑,五个单元分别是 bikinibodysuitpool5spilllounge,跑五天(experiment_designs.md 第 7b 节)。

12附录:时钟、口径与预算区间

报表日是 UTC 日。 Meta 的分小时导出打的是广告账户自己的时区 UTC-7 的时间戳,所以一个 UTC 日等于 账户 08-03 的 17:00–23:59 加上账户 08-04 的 00:00–16:59,上面每一个投放数字都是从这两份导出重新 拼接出来的。时钟取 UTC,是为了让报告和 Adjust 直接对齐,谁都不用在脑子里换算。

三种收入口径贯穿每一张表,从不混用。

口径统计什么当天结束后还会变吗?
入账收入在这一天内到账的钱,不论付款人哪天安装午夜后几小时结算,之后固定。Meta 自己的数字用的就是这个基准
当日闭合收入当天安装,并且在当天结束前付了钱从不。午夜已封存
同期群 H 小时收入当天的安装,每个人只统计到自己安装后 H 小时为止,因此不受一个人在哪个小时到来的影响一直上升,直到每一次安装都活满 H 小时。引用时必须带上覆盖率

三种口径读的都是我们自己的支付记录。Meta 只能表达入账收入,所以它的数字以括注形式出现在那一列旁边, 不单占一行。

口径校验不跑在这个时钟上。 Meta 的转化价值挂在它的转化小时上,是唯一一列无法诚实地重新拼接进 UTC 日的数据。按广告账户自己的时钟跑,08-04 的校验读数是 1.04,08-03 是 0.98,都在已记录的 0.91–1.06 区间内。

预算区间指的是广告组日预算没有变动的那一段时间。 它之所以重要,是因为在这个账户上预算是地域 旋钮:预算提上去,买到的国家更宽也更便宜,所以跨越预算变动去衡量两条素材,比的是两批不同的人群 (DECISION_LOG.md #47)。预算区间按广告账户的时钟记录。本 UTC 日在 E2-R1 内部开始,包含它最后七个小时,之后跑完整个 E2-R2,再加上 E2-R3 的前四个小时。E2-R1 是这个账户唯一 一段所有实验臂都在同一个 $100 预算上的时间;E2-R2 里 spill 是 $25,其余是 $100;E2-R3 把 bodysuit 提到 $150。所以这一天二十四个小时里有十七个小时是不对齐的。

13复现

_runs/2026-08-05_0804_settled/
  exports/ads_hourly_aug4_settled.csv        Meta, ads x hour, account day 08-04, settled
  exports/ads_hourly_aug5.csv                Meta, ads x hour, account day 08-05
  exports/ads_day_jul1_aug5.csv              Meta, ads x day, 36 days
  exports/ads_country_day_jul1_aug5.csv      Meta, ads x country x day
  ../2026-08-04_e2_start_and_0803_report/exports/ads_hourly_aug3_settled.csv
                                             Meta, ads x hour, account day 08-03, settled
  lum/{users,payments,joined}.csv            our registrations and payments, cut 10:59 UTC 08-05

一个 UTC 日除了自己那天的分小时导出,还需要前一个账户日的。 UTC 08-04 等于账户 08-03 的 17:00–23:59 加账户 08-04 的 00:00–16:59,所以 ads_hourly_aug3_settled.csv 在这里是承重的;缺了 它,measures.py 会按文件名报错,而不是少算了事。

各计量口径的执行命令,在仓库根目录下带 PYTHONIOENCODING=utf-8 运行:

python -m ad_ops.measures      --config _runs/2026-08-05_0804_settled/run_config.json \
                               --day 2026-08-04 --prev 2026-08-03
python -m ad_ops.cohort_arpu   --config _runs/2026-08-05_0804_settled/run_config.json \
                               --days 2026-07-31,2026-08-01,2026-08-02,2026-08-03,2026-08-04
python -m ad_ops.report_tables --config _runs/2026-08-05_0804_settled/run_config.json \
                               --day 2026-08-04 --prev 2026-08-03
python -m ad_ops.report_charts --config _runs/2026-08-05_0804_settled/run_config.json \
                               --day 2026-08-04 --prev 2026-08-03 \
                               --days 2026-08-01,2026-08-02,2026-08-03,2026-08-04 \
                               --out ad_ops/figures/2026-08-04 --relpath figures/2026-08-04

report_tables --prev 除了第 7 节那三张固定表,还会输出第 2 节的共同投放小时对照和第 4 节的合并 漏斗。report_charts 生成全部十九张图,以及按节分块的图片链接。

第 4 节的分素材检验和预算区间表跑在广告账户的时钟上,用的是同级配置 run_config_meta.json,它和 UTC 那一份只有 tz 一项不同:

python -m ad_ops.day_compare   --config _runs/2026-08-05_0804_settled/run_config_meta.json \
                               --today 2026-08-04 --prev 2026-08-03 --h 6
python -m ad_ops.asset_estimator hourly \
                               --config _runs/2026-08-05_0804_settled/run_config_meta.json
Internal — noindex. Not for distribution outside the team.