账户用一个全球广告系列买 web-to-app 安装,五条素材实验臂各占一个广告组;另加一个当天很晚才开跑的 德语区投放的前三个投放小时。按 UTC 日,这一天花费 $446.00,拿到 785 次安装,单次安装成本 (CPI)$0.568;前一天是 $445.83、766 次、$0.582。报表时钟、三种收入口径和预算区间的定义见附录。
| 2026-08-03 | 2026-08-04 | |
|---|---|---|
| 花费 | $445.83 | $446.00 |
| 展示次数 | 213,053 | 35,852 |
| CPM | $2.09 | $12.44 |
| 链接点击量 | 5,649 | 3,238 |
| CTR | 2.65% | 9.03% |
| 安装数(Meta) | 766 | 785 |
| 点击→安装 | 13.6% | 24.2% |
| CPI | $0.582 | $0.568 |
| 注册数(我们的) | 805 | 824 |
| 入账收入 | $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 节按安装日把它拆开。
投放那几列,每个比值的两边都用 Meta 的计量口径。付费用户数和收入用我们自己的。入账收入挂在付款小时 上,当日闭合收入和同期群挂在安装小时上。
| 小时 | 花费 | 展示 | CPM | CTR | 安装 | 点击→安装 | CPI | 入账$ | bROAS | 闭合$ | wROAS | 闭合付费 | 同期群$ | cROAS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00 | 13.24 | 844 | 15.69 | 9.48% | 17 | 21.2% | 0.779 | 57.71 | 4.36 | 17.97 | 1.36 | 1 | 17.97 | 1.36 |
| 01 | 12.20 | 1,066 | 11.44 | 7.50% | 19 | 23.8% | 0.642 | 26.65 | 2.18 | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
| 02 | 13.29 | 1,111 | 11.96 | 6.48% | 13 | 18.1% | 1.022 | 16.13 | 1.21 | 16.13 | 1.21 | 3 | 22.11 | 1.66 |
| 03 | 14.36 | 1,224 | 11.73 | 9.31% | 38 | 33.3% | 0.378 | 5.76 | 0.40 | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
| 04 | 16.90 | 1,281 | 13.19 | 8.98% | 26 | 22.6% | 0.650 | 13.81 | 0.82 | 10.75 | 0.64 | 2 | 10.75 | 0.64 |
| 05 | 17.50 | 1,372 | 12.76 | 7.43% | 41 | 40.2% | 0.427 | 18.54 | 1.06 | 5.71 | 0.33 | 1 | 5.71 | 0.33 |
| 06 | 17.42 | 1,276 | 13.65 | 7.60% | 29 | 29.9% | 0.601 | 11.93 | 0.69 | 17.86 | 1.03 | 3 | 21.42 | 1.23 |
| 07 | 10.59 | 671 | 15.78 | 10.43% | 18 | 25.7% | 0.588 | 39.28 | 3.71 | 54.16 | 5.11 | 1 | 54.16 | 5.11 |
| 08 | 19.66 | 1,316 | 14.94 | 8.13% | 31 | 29.0% | 0.634 | 14.65 | 0.75 | 50.67 | 2.58 | 2 | 50.67 | 2.58 |
| 09 | 18.65 | 1,358 | 13.73 | 6.48% | 18 | 20.5% | 1.036 | 77.39 | 4.15 | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
| 10 | 19.27 | 1,435 | 13.43 | 6.97% | 26 | 26.0% | 0.741 | 63.19 | 3.28 | 136.32 | 7.07 | 2 | 140.00 | 7.26 |
| 11 | 17.90 | 1,455 | 12.30 | 7.22% | 19 | 18.1% | 0.942 | 52.71 | 2.94 | 11.08 | 0.62 | 2 | 79.99 | 4.47 |
| 12 | 16.26 | 1,315 | 12.37 | 8.14% | 31 | 29.0% | 0.525 | 9.32 | 0.57 | 5.76 | 0.35 | 1 | 5.76 | 0.35 |
| 13 | 17.57 | 1,187 | 14.80 | 9.86% | 31 | 26.5% | 0.567 | 34.83 | 1.98 | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
| 14 | 13.53 | 1,114 | 12.15 | 9.25% | 25 | 24.3% | 0.541 | 21.95 | 1.62 | 5.93 | 0.44 | 1 | 27.00 | 2.00 |
| 15 | 21.34 | 2,034 | 10.49 | 10.67% | 36 | 16.6% | 0.593 | 8.89 | 0.42 | 5.76 | 0.27 | 1 | 16.44 | 0.77 |
| 16 | 24.16 | 2,652 | 9.11 | 8.60% | 40 | 17.5% | 0.604 | 77.88 | 3.22 | 23.64 | 0.98 | 3 | 37.88 | 1.57 |
| 17 | 28.73 | 2,512 | 11.44 | 8.92% | 42 | 18.8% | 0.684 | 63.15 | 2.20 | 22.42 | 0.78 | 1 | 22.42 | 0.78 |
| 18 | 26.14 | 2,211 | 11.82 | 8.68% | 46 | 24.0% | 0.568 | 27.96 | 1.07 | 9.98 | 0.38 | 2 | 12.97 | 0.50 |
| 19 | 20.62 | 1,877 | 10.99 | 8.74% | 48 | 29.3% | 0.430 | 79.21 | 3.84 | 32.85 | 1.59 | 3 | 48.03 | 2.33 |
| 20 | 19.13 | 1,672 | 11.44 | 12.08% | 55 | 27.2% | 0.348 | 39.46 | 2.06 | 27.05 | 1.41 | 3 | 32.80 | 1.71 |
| 21 | 20.75 | 1,608 | 12.90 | 12.44% | 55 | 27.5% | 0.377 | 49.42 | 2.38 | 51.61 | 2.49 | 2 | 51.61 | 2.49 |
| 22 | 26.32 | 1,638 | 16.07 | 11.48% | 44 | 23.4% | 0.598 | 96.77 | 3.68 | 71.36 | 2.71 | 3 | 71.36 | 2.71 |
| 23 | 20.47 | 1,623 | 12.61 | 10.23% | 37 | 22.3% | 0.553 | 15.26 | 0.75 | 11.69 | 0.57 | 2 | 54.87 | 2.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 时 之后的每一个同期群数字只算了已经到手的付款,后面还会涨。
只比较两天都有投放的小时。在这个账户上做日环比,时段结构是最大的混杂因素,所以哪一天缺的小时就整个 丢掉,不拿它去配空值。这一段跑在报表时钟上,用的是上表同一个加载器,因为花费、展示次数、点击和安装 都挂在 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 更高的小时数 | 更低的小时数 | 符号检验 |
|---|---|---|---|
| CPM | 19 个里 12 个 | 19 个里 7 个 | p = 0.359 |
| CTR | 19 个里 10 个 | 19 个里 9 个 | p = 1.000 |
| 点击→安装 | 19 个里 10 个 | 19 个里 9 个 | p = 1.000 |
| CPI | 19 个里 12 个 | 19 个里 7 个 | p = 0.359 |
符号检验把幅度扔掉,换回来的是不需要加权的方向:它回答这一天往哪边动,从不回答动了多少。
四个指标全都分不开。 按不加权的小时计数,四个投放比值在两天之间都是抛硬币。第 4 节合并的那一行 说的正相反,那里 CTR 读出 +246.9%、p = 0.000,两者打架正是同时跑这两种读法的意义。合并那一行按每 小时的投放量给它加权,而 08-03 有一个小时几乎投了全部。
全部共同投放小时,2026-08-03 → 2026-08-04。每一列、每个比值的两边都是 Meta 的计量口径。这里故意不 放收入:每小时的付费用户是 0 到 3 个,一列分小时收入等于把一个人的单笔金额当成比率来读。
| 小时 | 展示次数 | CPM | CTR | 点击→安装 | CPI |
|---|---|---|---|---|---|
| 04 | 515 → 1,281 | 10.97 → 13.19 | 11.26% → 8.98% | 17.2% → 22.6% | 0.565 → 0.650 |
| 05 | 2,009 → 1,372 | 9.78 → 12.76 | 9.41% → 7.43% | 20.1% → 40.2% | 0.517 → 0.427 |
| 06 | 2,471 → 1,276 | 9.97 → 13.65 | 8.98% → 7.60% | 27.5% → 29.9% | 0.404 → 0.601 |
| 07 | 2,804 → 671 | 9.93 → 15.78 | 8.63% → 10.43% | 22.3% → 25.7% | 0.516 → 0.588 |
| 08 | 3,420 → 1,316 | 8.81 → 14.94 | 7.78% → 8.13% | 23.3% → 29.0% | 0.486 → 0.634 |
| 09 | 3,726 → 1,358 | 7.98 → 13.73 | 7.89% → 6.48% | 26.2% → 20.5% | 0.386 → 1.036 |
| 10 | 3,203 → 1,435 | 9.22 → 13.43 | 7.81% → 6.97% | 24.4% → 26.0% | 0.484 → 0.741 |
| 11 | 1,046 → 1,455 | 8.68 → 12.30 | 9.46% → 7.22% | 35.4% → 18.1% | 0.259 → 0.942 |
| 13 | 1,590 → 1,187 | 11.85 → 14.80 | 6.98% → 9.86% | 22.5% → 26.5% | 0.754 → 0.567 |
| 14 | 182,805 → 1,114 | 0.59 → 12.15 | 1.64% → 9.25% | 2.0% → 24.3% | 1.757 → 0.541 |
| 15 | 823 → 2,034 | 9.84 → 10.49 | 9.23% → 10.67% | 27.6% → 16.6% | 0.386 → 0.593 |
| 16 | 1,080 → 2,652 | 13.14 → 9.11 | 8.70% → 8.60% | 25.5% → 17.5% | 0.591 → 0.604 |
| 17 | 1,267 → 2,512 | 12.65 → 11.44 | 8.13% → 8.92% | 23.3% → 18.8% | 0.668 → 0.684 |
| 18 | 1,181 → 2,211 | 15.50 → 11.82 | 9.06% → 8.68% | 29.9% → 24.0% | 0.572 → 0.568 |
| 19 | 1,263 → 1,877 | 16.98 → 10.99 | 9.58% → 8.74% | 27.3% → 29.3% | 0.650 → 0.430 |
| 20 | 1,141 → 1,672 | 16.28 → 11.44 | 10.17% → 12.08% | 34.5% → 27.2% | 0.464 → 0.348 |
| 21 | 1,046 → 1,608 | 19.05 → 12.90 | 12.33% → 12.44% | 26.4% → 27.5% | 0.586 → 0.377 |
| 22 | 859 → 1,638 | 15.90 → 16.07 | 11.06% → 11.48% | 37.9% → 23.4% | 0.379 → 0.598 |
| 23 | 771 → 1,623 | 16.89 → 12.61 | 9.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),这两天的任何合并比较,讲的主要都是它。
⚠ 花费和安装那两列是账户日口径。 Meta 不提供小时 × 国家的交叉表,所以分国家的投放数据只存在于 广告账户自己的 UTC-7 日上,无法重新拼接。收入那几列是 UTC 日按国家拆开的。两边相差七个小时,所以 这里的 ROAS 各列横跨两个窗口:这张表只能读结构,不能拿它的水平去和第 1 节或第 4 节比。按花费 排序。Meta 的入账数值放在括注里。
| 国家 | 花费 (账户日) | 安装 (账户日) | CPI | 入账 | bROAS (Meta) | 当日闭合 | wROAS | 同期群 24 小时 | cROAS |
|---|---|---|---|---|---|---|---|---|---|
| 印度 IN | $119.29 | 192 | $0.621 | 184.84 | 1.55 (2.04) | 136.79 | 1.15 | 186.20 | 1.56 |
| 美国 US | $50.11 | 35 | $1.432 | 163.84 | 3.27 (5.70) | 136.89 | 2.73 | 211.78 | 4.23 |
| 德国 DE | $48.35 | 20 | $2.418 | 25.41 | 0.53 (0.53) | 25.41 | 0.53 | 25.41 | 0.53 |
| 墨西哥 MX | $18.37 | 34 | $0.540 | 44.18 | 2.40 (3.55) | 40.77 | 2.22 | 40.77 | 2.22 |
| 英国 GB | $17.03 | 19 | $0.896 | 10.86 | 0.64 (0.64) | 0.00 | 0.00 | 0.00 | 0.00 |
| 土耳其 TR | $15.58 | 31 | $0.503 | 0.00 | 0.00 (0.00) | 0.00 | 0.00 | 0.00 | 0.00 |
| 印尼 ID | $13.38 | 59 | $0.227 | 0.00 | 0.00 (0.60) | 0.00 | 0.00 | 0.00 | 0.00 |
| 阿根廷 AR | $12.52 | 50 | $0.250 | 9.98 | 0.80 (4.79) | 4.99 | 0.40 | 4.99 | 0.40 |
| 马来西亚 MY | $11.53 | 24 | $0.480 | 5.38 | 0.47 (0.47) | 5.38 | 0.47 | 5.38 | 0.47 |
| 菲律宾 PH | $10.29 | 45 | $0.229 | 39.19 | 3.81 (5.25) | 0.00 | 0.00 | 0.00 | 0.00 |
| 澳大利亚 AU | $9.45 | 6 | $1.575 | 0.00 | 0.00 (1.64) | 0.00 | 0.00 | 0.00 | 0.00 |
| 加拿大 CA | $8.67 | 8 | $1.084 | 23.94 | 2.76 (1.50) | 4.99 | 0.57 | 4.99 | 0.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 节讨论它。
按 UTC 时钟,在两天都有投放的 19 个小时上合并。每个比值的两边都是 Meta 的计量口径。
| 花费 | 展示次数 | CPM | 点击 | CTR | 安装数 | 点击→安装 | CPI | |
|---|---|---|---|---|---|---|---|---|
| 2026-08-03 | $445.54 | 213,020 | 2.09 | 5,645 | 2.65% | 757 | 13.41% | $0.589 |
| 2026-08-04 | $376.65 | 30,292 | 12.43 | 2,785 | 9.19% | 667 | 23.95% | $0.565 |
跨小时合并比的是结构,而在这两天上这个比法会误导。 它按每小时的投放量加权,所以只要一天在时钟 上的买法变了,哪怕没有任何一个小时发生变化,这几行也会动。第 2 节把同样两天逐小时数了一遍,两个 比值都完全分不开。上面两个 p 值都由 08-03 的 14 时扛着,不能当成账户转化能力的变化来读。
固定到两天都在跑的单条素材上,按广告账户自己的时钟,只有两个检验过了 p < 0.05:
bodysuit 的点击→安装从 36.33% 掉到 25.55%,降幅 29.7%,p = 0.001。 这是整个对比里唯一一个 真的负面结果。它的 CPI 两天基本不动,$0.511 到 $0.506,所以动的是点击变成安装的比例,安装的价格 没动。08-04 在 H=6 上的覆盖率是 72%。bodysuit 在被比较的窗口里还从日预算 $100 提到了 $150, 所以这个下跌和一次预算变动共用同一段时间,在这份数据上分不开。spill 的点击→安装从 2.61% 升到 26.42%,p = 0.000。 这是被弃用的版本被它的副本替换掉,已经 记在 DECISION_LOG.md #50。它不是新信息,上面那个合并出来的改善就来自它。bikini(−10.2%,p = 0.224)、pool5(−11.9%,p = 0.240)和 mugshot(−31.4%,p = 0.052)分不开。 任何单条素材的安装→付费检验,两天都没有一个过 0.05。这些分素材检验取的是估算器按 Meta 时钟建的 单元格,所以它们的日界是账户日,总数和上面几张表对不上。
| 口径 | 2026-08-03 | ROAS | 2026-08-04 | ROAS | 当天结束后还会变吗? |
|---|---|---|---|---|---|
| 入账收入 | $709.35 | 1.59 | $921.86 | 2.07 | 已结算 |
| 当日闭合收入 | $397.69 | 0.89 | $588.70 | 1.32 | 从不 |
| 同期群 24 小时 | $474.05 | 1.06 (覆盖 100%) | $783.90 | 1.76 (覆盖 35%) | 08-04 仍在上升 |
| Meta 入账,供参考 | $738.83 | 1.66 | $862.96 | 1.93 |
两行里 Meta 的括注数字都按它自己的转化时钟报出,放在这里是为了让这一天能追溯到 Meta 将要报的数, 不是当第二套计量口径用。
各天的入账收入,按付款人安装的那一天拆开:
| 付款人安装于 | 2026-08-03 | 2026-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%) |
每一列的第一行就是当日闭合收入。正是这个恒等式,让入账与当日闭合之间的差额恰好等于继承来的同期群, 再无其他成分。
这一天每个广告组恰好只有一条广告在投,所以这里的广告组行就是广告行,各行按素材命名。这个等同 关系是这一天的事实,不是广告系列的属性:..._d100_spill 广告组下面挂着两条广告, vid_ww_spill_8s_9x16_v1 和它的副本,两者是一对替换关系,不是两条实验臂,前者在广告账户的 08-03 投放,后者从 08-04 开始,从来没有同时跑过。第 8 节的德语区投放才是这个账户上等同关系真正失效的 对象,一个广告组里挂着十五条素材。
单一时钟的投放切分,按 UTC 六小时一段。所有列都是 Meta 的计量口径。这里不放收入列,因为每条素材 每小时的付费用户是 0 到 2 个,什么也承载不了。
| 素材 | 时段 | 花费 | 展示 | CPM | CTR | 点击→安装 | CPI |
|---|---|---|---|---|---|---|---|
| bikini | 00–05 | 16.04 | 1,423 | 11.27 | 9.84% | 25.7% | 0.446 |
| bikini | 06–11 | 23.91 | 1,938 | 12.34 | 7.28% | 24.8% | 0.683 |
| bikini | 12–17 | 37.28 | 3,222 | 11.57 | 8.38% | 22.6% | 0.611 |
| bikini | 18–23 | 34.58 | 2,662 | 12.99 | 10.67% | 26.4% | 0.461 |
| bodysuit | 00–05 | 24.52 | 2,222 | 11.04 | 6.26% | 33.8% | 0.522 |
| bodysuit | 06–11 | 27.36 | 2,398 | 11.41 | 5.80% | 29.5% | 0.667 |
| bodysuit | 12–17 | 28.24 | 2,870 | 9.84 | 7.80% | 25.4% | 0.495 |
| bodysuit | 18–23 | 33.16 | 3,026 | 10.96 | 9.91% | 25.3% | 0.436 |
| pool5 | 00–05 | 26.58 | 2,127 | 12.50 | 8.56% | 26.4% | 0.554 |
| pool5 | 06–11 | 26.70 | 1,891 | 14.12 | 8.36% | 25.9% | 0.651 |
| pool5 | 12–17 | 24.20 | 1,907 | 12.69 | 9.75% | 19.4% | 0.672 |
| pool5 | 18–23 | 26.01 | 2,869 | 9.07 | 8.89% | 23.1% | 0.441 |
| mugshot | 00–05 | 20.35 | 1,126 | 18.07 | 9.06% | 18.6% | 1.071 |
| mugshot | 06–11 | 23.12 | 1,081 | 21.39 | 10.27% | 16.2% | 1.284 |
| mugshot | 12–17 | 24.36 | 1,987 | 12.26 | 11.27% | 11.6% | 0.937 |
| mugshot | 18–23 | 7.65 | 473 | 16.17 | 10.57% | 20.0% | 0.765 |
| spill2 | 06–11 | 2.40 | 203 | 11.82 | 8.87% | 27.8% | 0.480 |
| spill2 | 12–17 | 7.51 | 828 | 9.07 | 11.11% | 23.9% | 0.341 |
| spill2 | 18–23 | 20.36 | 1,360 | 14.97 | 15.37% | 26.3% | 0.370 |
| german_mature | 18–23 | 9.88 | 203 | 48.67 | 5.42% | 36.4% | 2.470 |
| latina_true | 18–23 | 1.79 | 36 | 49.72 | 8.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,所以整组素材并不共用同一个时段形状。
⚠ 花费和安装是账户日口径,和第 3 节一样;收入是 UTC 日。 只列花费超过 $5 的单元格,按花费排序。 收入是当日闭合收入。
| 素材 | 国家 | 花费 (账户日) | 安装 (账户日) | CPI | 当日闭合$ | wROAS |
|---|---|---|---|---|---|---|
| bikini | IN | 42.10 | 86 | 0.490 | 44.34 | 1.05 |
| bodysuit | IN | 26.37 | 44 | 0.599 | 50.67 | 1.92 |
| turkish_mature | DE | 18.69 | 3 | 6.230 | 0.00 | 0.00 |
| bodysuit | US | 18.31 | 9 | 2.034 | 37.96 | 2.07 |
| spill2 | IN | 18.00 | 30 | 0.600 | 26.70 | 1.48 |
| mugshot | IN | 17.64 | 11 | 1.604 | 0.00 | 0.00 |
| pool5 | IN | 15.17 | 19 | 0.799 | 11.52 | 0.76 |
| pool5 | US | 14.10 | 15 | 0.940 | 93.94 | 6.66 |
| bikini | US | 11.07 | 7 | 1.581 | 4.99 | 0.45 |
| german_mature | DE | 10.39 | 4 | 2.598 | 25.41 | 2.45 |
| german | DE | 9.28 | 4 | 2.320 | 0.00 | 0.00 |
| bodysuit | MX | 7.09 | 14 | 0.506 | 35.06 | 4.95 |
| pool5 | GB | 5.44 | 6 | 0.907 | 0.00 | 0.00 |
| pool5 | MX | 5.13 | 12 | 0.428 | 5.71 | 1.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 之下。所以这一天前两名实验臂的排序取决于一个人,而且无论他 在哪个国家,这一点都成立。
这几张地区图沿用第 3 节的口径说明,画在账户日的国家切分上。
下面三张表是固定素材区块,由 report_tables.py 生成后原样贴入。本系列每一份报告里,它们的列和列序 都相同,所以任意两天可以互读。每一行是当天有花费或有安装的广告对象,包括没有花费、却仍然收到晚归因 安装的那些。
每个比值的两边都是 Meta 的计量口径。我们自己的注册数不进这张表。
| 素材 | 花费 | 展示次数 | CPM | 点击 | CTR | 安装数 | 点击→安装 | CPI |
|---|---|---|---|---|---|---|---|---|
E2/bodysuit | $113.28 | 10,516 | 10.77 | 802 | 7.63% | 221 | 27.56% | $0.513 |
E2/bikini | $111.81 | 9,245 | 12.09 | 835 | 9.03% | 207 | 24.79% | $0.540 |
E2/pool5 | $103.49 | 8,794 | 11.77 | 781 | 8.88% | 184 | 23.56% | $0.562 |
E2/mugshot | $75.48 | 4,667 | 16.17 | 487 | 10.43% | 73 | 14.99% | $1.034 |
E2/spill2 | $30.27 | 2,391 | 12.66 | 319 | 13.34% | 82 | 25.71% | $0.369 |
DE/german_mature | $9.88 | 203 | 48.67 | 11 | 5.42% | 4 | 36.36% | $2.470 |
DE/latina_true | $1.79 | 36 | 49.72 | 3 | 8.33% | 1 | 33.33% | $1.790 |
earner/bodysuit | $0.00 | 0 | — | 0 | — | 6 | — | $0.000 |
earner/bikini | $0.00 | 0 | — | 0 | — | 4 | — | $0.000 |
earner/pool5 | $0.00 | 0 | — | 0 | — | 2 | — | $0.000 |
E2/spill | $0.00 | 0 | — | 0 | — | 1 | — | $0.000 |
每一列都是我们自己的口径。Meta 只能表达入账收入这一项,所以它以括注形式跟在那一列旁边,不单占一行。付费用户数的是去重的人,不是交易笔数。同期群观测时长 H=24h,这一天覆盖率 35%。报表时钟为 UTC。
| 素材 | 入账 | bROAS (Meta) | 当日闭合 | wROAS | 同期群@H | cROAS | 付费用户 | 付费率 | ARPU | ARPPU | 最大付费用户 |
|---|---|---|---|---|---|---|---|---|---|---|---|
E2/bodysuit | $192.57 | 1.70 (1.91) | $177.48 | 1.57 | $198.77 | 1.75 | 11 | 4.9% | 0.789 | 16.13 | 25.3% |
E2/bikini | $77.59 | 0.69 (0.97) | $54.67 | 0.49 | $89.24 | 0.80 | 8 | 3.5% | 0.241 | 6.83 | 23.6% |
E2/pool5 | $228.50 | 2.21 (1.95) | $228.50 | 2.21 | $343.34 | 3.32 | 12 | 6.2% | 1.190 | 19.04 | 38.9% |
E2/mugshot | $12.22 | 0.16 (0.38) | $6.32 | 0.08 | $6.32 | 0.08 | 1 | 1.3% | 0.082 | 6.32 | 100.0% |
E2/spill2 | $38.61 | 1.28 (1.37) | $38.61 | 1.28 | $59.54 | 1.97 | 4 | 4.7% | 0.449 | 9.65 | 54.2% |
DE/german_mature | $25.41 | 2.57 (2.57) | $25.41 | 2.57 | $25.41 | 2.57 | 1 | 25.0% | 6.351 | 25.41 | 100.0% |
DE/latina_true | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
earner/bodysuit | $193.40 | — (—) | $3.56 | — | $7.12 | — | 1 | 12.5% | 0.445 | 3.56 | 100.0% |
earner/bikini | $80.25 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
earner/pool5 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
E2/spill | $73.33 | — (—) | $54.16 | — | $54.16 | — | 1 | 50.0% | 27.082 | 54.16 | 100.0% |
16 付费用户门槛(#37):上表中付费用户数不足 16 的行,只能看方向,不能看幅度。
⚠ 这张表是账户日口径,不是 UTC 日。 Meta 不提供小时 × 国家的交叉表,所以分国家的投放数据只存在于广告账户自己的 UTC-7 日上,无法重新拼接。相对上面的 A、B 两表,它的窗口偏移七小时;只能读结构,不能拿它的水平去和那两张表比。
这张表说明 B 表里的某一行读不读得住。最后一列是该素材自己的当日闭合收入里来自美国的比例:当它远高于美国的花费占比时,这条素材买到的是一片地域,而不是挣到了一个结果。
| 素材 | 花费 | 印度占比 | 美国占比 | 其他占比 | 美国占其收入的比例 |
|---|---|---|---|---|---|
E2/bodysuit | $136.98 | 19.3% | 13.4% | 67.4% | 21.4% |
E2/bikini | $120.55 | 34.9% | 9.2% | 55.9% | 9.1% |
E2/pool5 | $104.14 | 14.6% | 13.5% | 71.9% | 41.1% |
E2/mugshot | $51.69 | 34.1% | 3.2% | 62.7% | 0.0% |
E2/spill2 | $62.87 | 28.6% | 7.9% | 63.4% | 0.0% |
DE/german_mature | $12.14 | 0.0% | 0.0% | 100.0% | 0.0% |
DE/latina_true | $1.79 | 0.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。
上面四张图里的空心点表示未过 16 付费用户门槛,这一天所有点都是空心的。安装不足 20 次的素材不进下面 的合成图,也不进第 6 节的地区图:四次安装出一个付费用户,在归一化的收入轴上就能顶到 1.0,把每一条 真实的实验臂都压到图底。
取自框架在 H=12 上的读数,按广告账户的时钟。结构中性是把每条广告的 ROAS 按它所在预算区间的合并 国家结构重算,保留它自己的成本效率和收入效率,从而去掉第 6 节暴露出来的地域混杂:
| 素材 | 预算区间 | 安装 | 花费 | CPM | CTR | 印度占比 | CPI | ROAS | 结构中性 |
|---|---|---|---|---|---|---|---|---|---|
| bikini | E2-R1 | 160 | 69.8 | 11.32 | 8.82% | 34% | 0.436 | 1.12 | 1.00 |
| bodysuit | E2-R1 | 111 | 56.2 | 12.58 | 6.90% | 17% | 0.506 | 1.05 | 1.08 |
| pool5 | E2-R1 | 111 | 66.7 | 14.88 | 9.93% | 15% | 0.601 | 1.00 | 0.81 |
| mugshot | E2-R1 | 95 | 80.9 | 16.97 | 8.64% | 22% | 0.852 | 0.21 | 0.25 |
| spill | E2-R1 | 85 | 111.1 | 0.61 | 1.67% | 7% | 1.308 | 0.05 | 0.07 |
| bikini | E2-R2 | 132 | 72.0 | 12.08 | 8.29% | 40% | 0.545 | 0.54 | 0.63 |
| bodysuit | E2-R2 | 106 | 57.9 | 10.17 | 7.02% | 25% | 0.546 | 1.12 | 1.17 |
| pool5 | E2-R2 | 81 | 54.1 | 12.39 | 8.59% | 15% | 0.668 | 3.34 | 1.93 |
| mugshot | E2-R2 | 50 | 49.0 | 14.92 | 10.95% | 22% | 0.981 | 0.00 | — |
| spill | E2-R2 | 35 | 10.8 | 9.34 | 10.64% | 23% | 0.309 | 2.46 | 3.81 |
| bikini | E2-R3 | 23 | 8.8 | 11.67 | 12.43% | 35% | 0.383 | 0.96 | 0.97 |
| bodysuit | E2-R3 | 32 | 11.0 | 11.24 | 12.00% | 12% | 0.343 | 2.39 | 2.06 |
| pool5 | E2-R3 | 37 | 8.6 | 9.60 | 10.60% | 0% | 0.232 | 2.16 | 1.89 |
| spill | E2-R3 | 24 | 9.0 | 14.92 | 15.18% | 12% | 0.377 | 0.64 | 0.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%。本报告里每一个分素材的 收入数字都只能看方向,不能看幅度。
这个投放在广告账户当天开得很晚,所以本 UTC 日只抓到它的前三个投放小时,落在 18–23 时段里。窗口内 只有两条素材有花费。它跑在一个广告组里,下面挂着十五条素材,所以它是账户上唯一一个广告组行与素材行 不是同一回事的对象。
| 广告 | 花费 | 安装 | CPI | 当日闭合$ |
|---|---|---|---|---|
german_mature_10s | $9.88 | 4 | $2.470 | 25.41 |
latina_true_10s | $1.79 | 1 | $1.790 | 0.00 |
| 合计 | $11.67 | 5 | $2.334 | 25.41 |
两点观察,都和哪条素材更好无关:
turkish_mature 在那个窗口的德国花了 $18.69,比任何一条德语区素材 都多,包括这里的两条。它离打平还有多远,读不出来。 一个付费用户,当日闭合收入 $25.41,占它所属素材和所属国家格的 100%。对照 16 付费用户门槛,诚实的说法是这个样本撑不起一个 ROAS。
spill 降到 $25,再之后 bodysuit 提到 $150。任何横跨全天的跨实验臂比较,都有 一部分是在比预算。bodysuit 的点击→安装下跌和它自己的预算变动共用同一段窗口,在这份数据上两者分不开。Payment error, 工具栏上挂着 "This ad account has a balance that needs to be paid before you can take this action." 投放期间没有中断。pool5 要么放在对齐的国家结构上读,要么就不要读。 它的原始结果在账户里领先,而在唯一一段 预算对齐的预算区间里,它的结构中性结果是同一条镜头的三条实验臂中最低的。两者必有一个是假象, 结构中性那一列指出了是哪一个。E2_ww_creative_5cell_260806 在 08-06 的 00:00 PT 开跑,五个单元分别是 bikini、bodysuit、 pool5、spill 和 lounge,跑五天(experiment_designs.md 第 7b 节)。
bodysuit 和 pool5,正是本报告显示受结构混杂影响最大的两条:pool5 的结果是一个只有两个付费用户的美国 格,bodysuit 则背着共同投放小时对比里唯一一个显著的漏斗下跌。在预算不对齐的实验臂上跑五天, 结果有一部分是预算对比,而在这个账户上预算是地域旋钮。lounge 进场时没有任何历史。 它在这个 UTC 日里没有花费,也没有一次展示,所以 E 单元从零开始, 另外四个各带着两天的学习。报表日是 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。所以这一天二十四个小时里有十七个小时是不对齐的。
_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