每日投放报告 — 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%)

同期群价值 —— d0 / d3 / d7 的 ARPU 与 ARPPU

按安装日计算,从每个用户自己的安装时刻起算:dN 是他自己的前 (N+1) x 24 小时。ARPU 取自 Adjust,也就是合作方后台看到的那一套;ARPPU 取自我们自己的支付流水,因为 Adjust 没有累计去重付费人数这个字段。窗口还没走完的档位留空,不写 0。

应用ARPU (d0)ARPU (d3)ARPU (d7)ARPPU (d0)ARPPU (d3)ARPPU (d7)安装数
Vloom$0.8048$1.0228$1.2639$15.76$18.07$20.33901

展示次数那几列不要读。 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% 的涨幅全部出在这里。

入账的钱里有三分之一是继承来的。 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%,是被弃用的那版 spill(DECISION_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分国家

2026-08-23T12:43:18.741892 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ IN US DE MX GB TR MY ID AR PH AU FR 0 20 40 60 80 100 120 140 USD delivery raked onto the report clock against two measured margins; revenue is the report day Spend against within-day revenue by country — 2026-08-04 spend within-day revenue
分国家的花费对当日回收
2026-08-23T12:43:18.778214 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ −0.04 −0.02 0.00 0.02 0.04 USD per install Cost per install by country — 2026-08-04 (report clock)
分国家的单次安装成本

(一)大盘分国家,2026-08-04。 按报表时区。 Meta 不提供小时 × 国家的交叉表,所以每一份国家切片都要从它自己的账户日折算到 UTC;自有口径本就在 UTC 上。

国家花费占比展示次数CPM注册数 (自有)单次注册成本当日回收wROAS付费用户
IN$102.9523.1%13,736$7.50193$0.533$136.791.3327
US$43.459.7%903$48.1336$1.207$136.893.159
DE$33.507.5%604$55.4417$1.970$25.410.761
MX$14.943.3%1,410$10.5925$0.597$40.772.735
GB$14.933.3%389$38.4019$0.786$0.000.001
TR$12.272.8%652$18.8222$0.558$0.000.000
MY$10.542.4%1,096$9.6220$0.527$5.380.511
ID$10.472.3%1,608$6.5139$0.268$0.000.000
AR$10.272.3%860$11.9438$0.270$4.990.492
PH$9.522.1%2,130$4.4735$0.272$0.000.001
AU$8.391.9%160$52.347$1.198$0.000.000
FR$7.841.8%300$26.1018$0.436$0.000.000

其余 189 个国家未列出, $166.94 合计(占本表 37.4%)。

对账:哪些是实测的,哪些是折算的。 每一个分国家单元格都是一次跨小时的分配;每一个总计都是实测的。B1(UTC-7)$104.91 来自账户日 2026-08-03、$341.09 来自账户日 2026-08-04,实测的 UTC 日总计是 $446.00。

上表中没有出现的账户: Nomad Node, KBM1, HR1. 它们的花费在每一张日粒度的表里都有;缺的只是国家切片。

(二)同一切片,每一个账户,2026-08-04.

B1

国家花费占比展示次数CPM注册数 (自有)单次注册成本当日回收wROAS付费用户
IN$102.9523.1%13,736$7.50193$0.533$136.791.3327
US$43.459.7%903$48.1336$1.207$136.893.159
DE$33.507.5%604$55.4417$1.970$25.410.761
MX$14.943.3%1,410$10.5925$0.597$40.772.735
GB$14.933.3%389$38.4019$0.786$0.000.001
TR$12.272.8%652$18.8222$0.558$0.000.000
MY$10.542.4%1,096$9.6220$0.527$5.380.511
ID$10.472.3%1,608$6.5139$0.268$0.000.000
AR$10.272.3%860$11.9438$0.270$4.990.492
PH$9.522.1%2,130$4.4735$0.272$0.000.001
AU$8.391.9%160$52.347$1.198$0.000.000
FR$7.841.8%300$26.1018$0.436$0.000.000

其余 189 个国家未列出, $166.94 合计(占本表 37.4%)。

Nomad Node —— 没有国家小节:它这一天什么都没有投出去,是实测的零。

KBM1 —— 没有国家小节:它这一天什么都没有投出去,是实测的零。

HR1 —— 没有国家小节:它这一天什么都没有投出去,是实测的零。

前一日,2026-08-03,同样两张表。

(一)大盘分国家,2026-08-03。 按报表时区。 Meta 不提供小时 × 国家的交叉表,所以每一份国家切片都要从它自己的账户日折算到 UTC;自有口径本就在 UTC 上。

国家花费占比展示次数CPM注册数 (自有)单次注册成本当日回收wROAS付费用户
IN$108.1524.3%91,101$1.19216$0.501$97.680.9033
US$33.097.4%762$43.4123$1.439$4.990.154
GB$14.243.2%986$14.4318$0.791$16.901.191
PH$13.993.1%12,670$1.1042$0.333$5.630.402
ID$13.363.0%3,374$3.9642$0.318$15.961.204
MY$12.872.9%3,555$3.6219$0.678$11.740.911
TR$12.802.9%826$15.5027$0.474$53.224.163
MX$11.352.5%2,365$4.8019$0.597$11.421.016
FR$11.002.5%1,530$7.1915$0.733$31.152.832
AR$10.072.3%1,695$5.9429$0.347$0.000.001
AU$8.021.8%257$31.266$1.337$0.000.001
ES$7.901.8%1,645$4.8015$0.526$38.844.922

其余 191 个国家未列出, $188.99 合计(占本表 42.4%)。

对账:哪些是实测的,哪些是折算的。 每一个分国家单元格都是一次跨小时的分配;每一个总计都是实测的。B1(UTC-7)$49.92 来自账户日 2026-08-02、$395.91 来自账户日 2026-08-03,实测的 UTC 日总计是 $445.83。

上表中没有出现的账户: Nomad Node, KBM1, HR1. 它们的花费在每一张日粒度的表里都有;缺的只是国家切片。

(二)同一切片,每一个账户,2026-08-03.

B1

国家花费占比展示次数CPM注册数 (自有)单次注册成本当日回收wROAS付费用户
IN$108.1524.3%91,101$1.19216$0.501$97.680.9033
US$33.097.4%762$43.4123$1.439$4.990.154
GB$14.243.2%986$14.4318$0.791$16.901.191
PH$13.993.1%12,670$1.1042$0.333$5.630.402
ID$13.363.0%3,374$3.9642$0.318$15.961.204
MY$12.872.9%3,555$3.6219$0.678$11.740.911
TR$12.802.9%826$15.5027$0.474$53.224.163
MX$11.352.5%2,365$4.8019$0.597$11.421.016
FR$11.002.5%1,530$7.1915$0.733$31.152.832
AR$10.072.3%1,695$5.9429$0.347$0.000.001
AU$8.021.8%257$31.266$1.337$0.000.001
ES$7.901.8%1,645$4.8015$0.526$38.844.922

其余 191 个国家未列出, $188.99 合计(占本表 42.4%)。

Nomad Node —— 没有国家小节:它这一天什么都没有投出去,是实测的零。

KBM1 —— 没有国家小节:它这一天什么都没有投出去,是实测的零。

HR1 —— 没有国家小节:它这一天什么都没有投出去,是实测的零。

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分广告组,分小时

这一天每个广告组只有一条广告在投,所以广告组行就是广告行,各行按素材命名。第 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 都高于其余每一条实验臂。bodysuit、pool5 和 mugshot 各自最便宜的安装都出现在 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,wROAS 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.000—0—6—$0.000
earner/bikini$0.000—0—4—$0.000
earner/pool5$0.000—0—2—$0.000
E2/spill$0.000—0—1—$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.12—112.5%0.4453.56100.0%
earner/bikini$80.25— (—)$0.00—$0.00—00.0%0.000——
earner/pool5$0.00— (—)$0.00—$0.00—00.0%0.000——
E2/spill$73.33— (—)$54.16—$54.16—150.0%27.08254.16100.0%

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

C. 分素材:国家结构

⚠ 本表按账户日切,而本页其余各表都在 UTC 时钟上。 Meta 不提供小时 × 国家的交叉表,所以分国家的投放数据只存在于广告账户自己的 UTC-7 日上,无法重新拼接。相对上面的 A、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口径与边界

下面这个同期群数字发布时的覆盖率是 35%,此后已经走完。 在完整的 24 小时观测时长上,2026-08-04 的同期群是 $817.43,也就是2026-08-05 那份报告前一日列里带的数字;本页显示的是同一批人在更低覆盖率下的读数,不是另外一个数字。对比 08-03 已走完的 $474.05,这一天是 +72.4% —— 也就是本页当时拒绝给出的那个对比。当日回收与入账收入不受影响:本页发布时它们已经封存与结清。

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

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

E2_ww_creative_5cell_260806 在 08-06 的 00:00 PT 开跑,五个单元分别是 bikini、bodysuit、 pool5、spill 和 lounge,跑五天(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.