同预算区间重做:预算、小时、同期群成熟度都固定住之后,还剩下什么

归类:参考。 数据截至 2026-08-01 16:38 PT。广告系列 bailingxia_meituan_ww_cvr_260730, 广告组 ww_broad_purchase_adv_cbo150,CBO,Purchase,全球投放,Android。本文每一个数字都来自 python -m ad_ops.asset_estimator hourly,见复现

这份报告走的是广告账户自己的时钟,UTC-7,对它要测的东西来说这是对的。 每日投放报告在 2026-08-05 改用了 UTC 日,为的是和 Adjust 对齐,所以从那边过来的读者会发现这里的数字换了一套 口径。预算区间是两次预算改动之间的一段,而预算改动发生在账户自己时钟上的某一个钟点:这件事 本身就是"账户时间 12:31"。把同预算区间的同期群改按 UTC 日分桶,等于让每个区间的边界和定义它的 那次改动错开七小时(daily_report_format.md § 报表时钟)。

这份报告执行 DECISION_LOG.md #47 下达的重做:每一条单素材结论都在同预算 区间、固定成熟度的分小时同期群上重算一遍,不再沿用旧的。#47 指定的决定性检验,是只在 $875 预算区间内部拿 bikinibodysuit:如果两者的国家结构在那里是齐的,素材比较就站得住;如果 连区间内部 bikini 都更偏印度,那么每一条素材结论其实都是地域结论,只是挂着素材的名字。

1一句话结论

这个账户里没有任何东西能确定这两条素材谁更好,而想给出答案的四次尝试,各自因为不同的原因 失败了。

#47 提出的地域假设被推翻了:在 $875 预算区间内部,bikini 拿到的印度量比 bodysuit , 31.8% 对 39.3%,p = 0.007;而这点结构差异值多少钱,是 −0.9%,95% 置信区间 [−21.2%, +27.5%], 和零分不开。两个方向上都没有地域修正可做。

但它本来要解释的那个差距,同样读不出来。每安装收入的变异系数是 6.68;要在观察到的差距上把 两条素材分开,每臂需要大约 19,000 次安装,而这个账户跑出过的最好窗口只有 732 和 488, bootstrap ROAS 是 1.18× [0.64–1.82]1.45× [0.54–2.58]

投放侧的结论也一样站不住。在素材真正控制得了的每一个环节上,CTR、点击→安装、付费率,两条素材 都分不开。唯一把它们分开的指标是 CPM,而 CPM 由竞价决定,不由视频决定,并且它在 Meta 加量的时候出现、停手的时候消失(每小时 $1.6 时是 0.98×,每小时 $20 以上是 1.43×,对该广告 自己的每小时花费回归 R² = 0.79)。

这一切底下还有一层:Meta 的分配不是证据。 在 $875 那一步,它手上有两个已经停投的实验臂, 它重新启动的是只有 1 笔交易的那个,而不是有 13 笔的那个,然后一路把它抬到 76% 的预算,其间它的 累计 ROAS 只有 0.21。原因是产能,一个实验臂花不掉 $875/天,而不是 Meta 判断出了什么。

2#47 要求做的那个检验

预算区间 R4($875/day,07-31 17:21 → 08-01 04:10 PT)是唯一一个两条素材都跑出量、而且跑在 同样这十个小时里的窗口。安装级别的国家来自 Lum 注册频道;每一次安装都归到产生它的那个投放小时。

bikinibodysuit
R4 内安装数732488
印度占比31.8% [28.6–35.3]39.3% [35.1–43.7]−7.5pp,p = 0.007
美国占比1.9% [1.1–3.2]2.7% [1.6–4.5]−0.8pp,p = 0.38
这个结构值多少钱,按合并国家价格$0.483$0.504−0.9%,置信区间 [−21.2%, +27.5%]

bikini 是往远离印度的方向偏,不是往印度偏,而且这点差异值不出一个能测出来的数。 印度 这个差距本身是实的,底下压着 732 和 488 次安装。它的价格不是。把它换算成钱要用的那些国家 价值,本身就是估计值:印度的每安装收入压在几百次安装上,美国压在几十次上,一个大额付费用户 就能把任何一边推动。对合并后的安装重抽样、每抽一次就重建一遍国家表,得到的价值差距是 −0.9%,从 −21% 到 +28%,跨过了零,而且跨得很宽。

这个答案比往任何一个方向倒都更有用:素材比较不需要做地域修正,因为地域差异本身证明不出值 任何钱。

曝光上的混杂确实存在,所以这个问题值得问:

各广告投放期的分布R1 $150R2 $250R3 $500R4 $875R5 $500合并印度占比预算区间标准化印度占比
bikini3%0%0%88%8%31.5%23.6%
bodysuit1%15%28%21%35%29.9%32.0%

bikini 几乎整个活在 $875 预算区间里,bodysuit 摊在四个区间上。所以两者之间任何一次合并 全生命期的比较,都正好按 #47 怀疑的方式被混杂了。把两者都标准化到账户的预算区间分布上, bikini 的印度占比从 31.5% 落到 23.6%,bodysuit 往反方向走。混杂是在的,方向和当初假设的 相反。

3给结构定价,以及它值多少

国家占比的变动只有在动到钱的时候才算混杂。每条广告自己的结构,都按同一批格子算出来的合并国家 价格来估值:占比取自该广告,价格取自合并池。单条广告在某一个国家内部的收入在这里根本测不了, 所以从不使用。

R4,观测时长 H = 12 h安装数付费用户花费CPI 实测CPI 预期成本比RPI 实测RPI 预期收入比ROAS95% 置信区间
bikini73227$286.17$0.391$0.3231.21$0.459$0.4830.951.180.64 – 1.82
bodysuit48814$144.09$0.295$0.3180.93$0.429$0.5040.851.450.54 – 2.58

这里落出两件事,外加一件"没有的事":

  1. ROAS 的差距全部来自获客成本。 bikini 每次安装付的钱比它自己的受众所隐含的高 21%bodysuit 低 7%,成本侧摆动 30%;而收入侧两边都低于各自结构的预期,幅度也差不多。
  2. 收入侧分不开它们。 bootstrap 区间几乎整段重叠,第 6 节表明这不是这个窗口的性质, 而是这个指标本身的性质。
  3. 没有结构修正可做。 两个实验臂的预期每安装收入相差在 4% 以内,而这 4% 带着一个从 −21% 到 +28% 的区间。用单张国家表算出来的"结构中性 ROAS",取决于这张表建在哪个人群上,会读出 −14% 或 −22%;两个数都不是真的。差距就按原始的 −19% 记着,不做修正,因为地域对它说不出 任何能测量的话。

4成本差距落在哪里,以及它为什么不属于素材

CPI = CPM/1000 × 1/CTR × 1/(点击→安装)。在同样这十个小时里:

R4,18:00 → 04:00花费展示次数点击量安装数CPMCTR点击→安装CPI
bikini$286.1734,3452,616732$8.337.62%28.0%$0.391
bodysuit$144.0923,3981,840488$6.167.86%26.5%$0.295
bikini 相对值+35%−3%+6%+33%

钩子不是问题:CTR 相差 3%,点击→安装 bikini 6%。整个差距都在展示价格上。两个控制 变量能把它压小,还有一个能把它化掉。

小时结构。 标准化到每小时的合并展示次数上,差距是 +38%,十个小时里有九个 bikini 更贵。 版位。 只有日级别数据,但在 07-31,每条广告的 CPM 都落在它自己版位结构所隐含的值的 5% 以内(0.95 和 1.02)。地域。 把每个实验臂自己的国家结构按合并国家 CPM 定价,地域预测 bikini 应该高 +11%;实际高 +35%。剩下 +21%

但在那些小时里 bikini 的花费强度是 1.65 倍,而这笔溢价跟着推量走:

bikini 自己的每小时花费小时数CPM(bodysuit 的倍数)CTR(bodysuit 的倍数)
低于 $640.970.67
$6–2021.261.03
高于 $2081.431.05

把 CPM 比值取对数,对 bikini 自己每小时花费的对数做回归:b = +0.132,se 0.019, R² = 0.79。 推量翻一倍,它的 CPM 涨 10%。轨迹直接把这件事显出来:重新开跑的第一个小时, $1.6/h,bikini 的 CPM 是 bodysuit0.98×,持平。Meta 把它拉到 $39/h,它就跑到 1.3–1.7×。05:00 花费塌到 $4.5/h,它回到 1.01×溢价跟着加量出现,加量一停就消失, 来回两次。

有一个小时两者的花费是真正对齐的,07-31 19:00,$19.0 对 $18.0,那一小时是 1.31×。所以残差 不能排除。但 n = 1,因为这两条广告几乎从来没有在同一小时里跑到可比的花费:Meta 一直在把预算 从一边挪到另一边。

CPM 是竞价定出来的价格,不是视频的属性。 在 CBO 里出价来自 Meta 自己预测的转化率,所以 CPM 更高既可能是 Meta 为它看好的广告抬价,也可能是它给评分低的广告多收钱,两种机制方向 相反;而 Meta 自己的质量排名、互动率排名和转化率排名,在这几条广告上每一份导出里都是空的, 因为它们谁都没达到 Meta 放出这些排名的量级门槛。它在任何一个方向上都不能当作素材结论来读。

5素材真正控制得了的每一个环节

按钟点小时配对,并把花费强度作为回归项扣掉:

环节谁控制它等花费下的差距95% 置信区间
CPM竞价+21.1%[+0.3%, +46.3%]勉强分辨得出
CTR素材−7.0%[−24.9%, +15.1%]没有信号
点击→安装素材 + 商店页−14.9%[−33.7%, +9.3%]没有信号
付费率产品3.69% vs 2.58%p = 0.31没有信号
ROAS第 6 节没指望

原始的 CTR 差是 −0.25pp,底下是 34,345 对 23,398 次展示,p = 0.275,在这个量级上仍然分辨 不出来,因为它本来就极小。在素材控制得了的每一个环节上,两条素材都分不开。 唯一把它们 分开的是展示的价格,而价格不由素材定。

区间还是给它划了界:CTR 的差不会超过约 25%,点击→安装不会超过约 34%。把这两条视频分开的东西 不管是什么,都很小,这正是第二阶段德语区方案的预判:它当时查清了全部 252 条片子都是同一个 镜头,历来只有脸和上衣两处在变。

6Meta 的分配不是质量信号

在 $875 那一步,Meta 手上有两个已经停投的实验臂,账面上是这样:

停投的实验臂花费交易笔数转化价值ROAS
pool5$36.6213$61.221.67
bikini$8.641$5.030.58

pool5 停投期间还在出转化,零花费上又来了 2 笔交易,值 $18.73,是 7 天点击归因窗的尾巴。 Meta 重新启动了 bikini,并且在这轮剩下的时间里给 pool5 零预算。 最顺手的机械解释也 不成立:pool5 是 15 秒,另外两条是 10 秒,但 07-30 它在所有相同版位上都跑过,占比也相当, 所以不存在投放资格上的阻挡。

然后它在一段证据不利于 bikini 的时间里,一路给它加量:

决策小时bikini 累计bikini 花费占比
展示次数CTRROAS
18:003058.20%0.586%
19:005168.14%—(1 笔交易)51%
20:002,8898.93%0.2165%
21:006,0758.97%0.2971%
23:0012,9118.42%0.6776%

同一个 18:00 的决策点上,bodysuit 手里是 25,075 次展示、11.29% 的 CTR、73 笔交易、 ROAS 1.81。Meta 凭着一个小时 211 次展示、零交易,就把预算切到 51%,并且在 bikini 的累计 ROAS 只有 0.21–0.29 的时候继续往上加。

17:21 变的是预算,不是证据。 $875/天需要每小时稳定花掉 $36.5;bodysuit 在这一步之前的 峰值小时是 $28.5,第二天完全单跑的时候平均也只有 $28.1。一个实验臂扛不住这个预算,所以 Meta 开了第二个出口,而开哪一个不是按表现挑的。

结果就是:分配在任何一个方向上都不携带素材质量的信息。 这个账户此前把"Meta 把 bikini 停投了"读成对它不利的证据,同样是错的。

7管着其余一切的那个发现:收入当不了这件事的裁判

R4 这个窗口是这个账户跑过的、检验效能最高的一次素材比较:同一个预算区间,小时对齐,两个同期群 都已经完全累积,而且是有记录以来最大的两个安装同期群。对安装做 bootstrap(自助重抽样):

ROAS95% 置信区间
bikini1.180.64 – 1.82
bodysuit1.450.54 – 2.58

两个区间几乎整段重叠。每安装收入是一个几乎全是零、偶尔冒出大值的向量,只有 4.2% 的安装付过钱, 所以它的离散程度相对均值大得离谱:

n = 3,179 · 付费用户 4.2% · 均值 $0.454 · 标准差 $3.029 · 变异系数 6.68

要分辨出多大的差距每臂安装数每臂花费(按 CPI $0.35)两臂合计
50%2,798$979$1,958
30%7,772$2,720$5,440
20%17,487$6,120$12,241
10%69,945$24,481$48,962

要分辨实际观察到的 −19%,每臂需要约 19,000 次安装。这个窗口只有 732 和 488,分别是需求量 的 4% 和 3%。这个账户里两条素材之间的 ROAS 比较,从来没有一次接近可分辨,包括本文算出来的 这几次。投放侧是在几万次展示、而不是几十个付费用户上测的,一晚上就能分辨出 0.5pp 的 CTR 差。

这个需求量只能看数量级,不能看具体数字。 观测时长拉长、付过钱的安装变多,变异系数会下降, 所以 20% 那一行在 H = 6 是约 18,600,H = 12 是约 17,500,H = 24 是约 11,600。再往后账户就测 不了了,只有 40 次 vid_ww_* 安装满了 48 小时,其中一个付过钱。在这个范围内它任何地方都没有 掉到每臂 10,000 以下,而 732 全程都只是它的 4–6%。

另一半是覆盖率。 一个按某个观测时长报出来的 ROAS,对那些还太年轻、够不到这个时长的格子里 压着的花费,什么也没说:

H = 1H = 6H = 12H = 24
bikini0.87 (100%)1.00 (100%)1.18 (95%)1.43 (1%)
bodysuit1.02 (97%)1.51 (75%)1.64 (63%)1.98 (40%)
pool50.89 (100%)1.02 (100%)1.02 (100%)1.22 (100%)

括号里是该广告生命期花费中,年龄够得到这个观测时长的那部分占比。bodysuit 的全生命期数字, 在 H = 12 描述的是它 63% 的钱,在 H = 24 是 40%,因为它大部分花费都很新;bikini 的 H = 24 数字描述的是 1%,根本不算一个数。只有上面 R4 那个窗口两个实验臂都是满覆盖,所以只引用 这一个比较。

所以素材筛选靠 CPM 和 CTR。ROAS 量的是账户的规模,量不了素材。

8这个账户,一件事一件事地看

预算改动不是唯一的事件。一条素材开始或停止投放,会改变这个广告组里其他每一条素材面对的 竞价,所以一个跨过这种时点的窗口,比的是两个不同的竞争环境。把两类事件取并集来切分,每一次 预算调整、每条广告第一个和最后一个投放小时、优化器把某条素材停投的每一段空档,切出来的才是 这轮投放的真实形状。

三条素材从开跑起就都是开着的。 这个窗口里唯一一次人工开关是 08-01 06:55 关掉 bikinibodysuit 在约 17:00 跟上,已经超出数据截止点。下面其余全部是 Meta 在 CBO 广告组内部重新 分配:一条广告投放量为零,它仍然是开着的、仍然在竞价,只是那一小时没拿到预算。这个区分正是 第 5 轮测试的发现:互不重叠的投放窗口是优化器干的,不是谁动的手。人工开关在任何一份导出里也 没有;Ad delivery 是导出那一刻盖上的戳,同一个小时,在广告还在跑时拉的文件里读作 active, 在暂停之后拉的文件里读作 inactive

窗口(PT)预算变了什么广告花费安装CPMCTR印度受众价值
07-30 15:00–16:00$150 ←Meta 启动 pool5pool5$4.8814.8410.9%0%$0.277
07-30 16:00–20:00$150Meta 启动 bikinibodysuitbikini$3.52811.548.2%11%$0.359
bodysuit$4.13813.0415.3%24%$0.657
pool5$23.914313.0713.4%14%$0.392
07-31 00:00–07:19$250Meta 停掉 bikinipool5bodysuit$107.434213.9612.0%18%$0.576
07-31 07:19–17:21$500 ←bodysuit$187.161510.9610.9%30%$0.445
07-31 18:00–08-01 04:10$875 ←Meta 恢复 bikini,在这一步之后 39 分钟bikini$286.27328.337.6%32%$0.483
bodysuit$144.14886.167.9%39%$0.504
08-01 04:10–07:00$500 ←bikini 被关闭(人工,06:55)bikini$14.6517.558.4%35%$0.406
bodysuit$10.5436.628.4%28%$0.316
08-01 07:00–17:00$500bodysuit$254.47708.748.8%29%$0.468

标出该预算生效的那一段。受众价值是这一段自己的国家结构按合并国家价格定出来的,是唯一 一列不受"这笔钱是哪条广告赚的"混杂的。

Meta 在 $150/天 上,开跑六小时之内就自己把三条素材里的两条停投了,又在 $875 那一步之后 39 分钟把 bikini 放回来。没有人动过这些广告。三个实验臂的投放窗口互不重叠,源头就在这里; 跨着它们算出来的每一个单素材数字,描述的也就是 Meta 的排期,不是素材。

各地区的表现。 印度跟着预算走,也跟着回来,和 #47 的结论完全一致:$250 时 18% → $500 时 30% → $875 时 39% → 回到 $500 时 29%,全程素材固定为 bodysuit。结构效应毫不含糊。

它值多少钱是另一回事。 整轮投放里受众的价值在 $0.316 到 $0.657 之间动,但两个极值来自 最薄的两段(43 和 38 次安装),四个大段之间它落在 $0.445–$0.576,跨度约 25%。同一段时间里 CTR 从 12.0% 掉到 7.6%,再回到 8.8%,摆动 37%,而且这是在几万次展示、而不是几百次安装上 测出来的量。

所以地区这条线是整个故事里较小的一半。 预算确实推动地域,地域确实推动受众的价值,这条 通路在两个极值之间值大约四分之一。更大、而且测得准得多的效应是:在 $875 上 Meta 买到的是 同样这些国家里意向低得多的人,展示更便宜,CPM 掉了 60%,CTR 腰斩,所以单次安装成本反而 涨了。

唯一一次真正的关停。 08-01 06:55 关掉 bikini 之后,bodysuit 在 $500 上单跑,CPM 是 $8.74,而前一段两条都在投时是 $6.62,两段的印度占比几乎一样(29% 对 28%)。它接手了原先被 bikini 吃掉的预算,只能沿着自己的成本曲线往上买。⚠ 这一段同时也是白天,前一段是通宵,而 第 3 节表明一天中的小时本身就会推动 CPM,所以这件事和"存在一个真实效应"是相容的,它本身还 构不成证据;干净的版本需要一次在对齐钟点小时上做的关停。

9重新审视预算

#47 确立了预算会推动国家结构,并据此读出账户的下滑。结构确实在动;留下的问题是它值多少。把 每个预算区间的合并结构按账户级的国家价值定价:

预算区间预算安装数印度预期 RPI预期 CPI仅由结构决定的预期 ROAS
R1$15020114.9%$0.433$0.2941.48
R2$25036219.6%$0.561$0.3361.67
R3$50065229.1%$0.493$0.3261.51
R4$8751,21634.6%$0.497$0.3241.53
R5$50088529.9%$0.452$0.3121.45

结构摆动极大,值的钱极少。 各预算区间之间印度从 14.9% 走到 34.6%,摆动 20pp,而由此得到 的受众价值只在 1.45 到 1.67 之间,并且 $875 区间定出来的价还比 $500 区间 6%。顶替印度的 那些国家并没有系统性地更好:印度的每安装收入($0.410)只比账户均值低 12%,单次安装成本 ($0.347)高 7%,所以它差的是大约五分之一,不是差好几倍。

预算真正的伤害,要把同一条素材固定在同样的钟点小时上才看得见:

bodysuit,00:00–03:59 PTCPMCTR印度预期 RPI实测 RPICPIROAS
R2,$250,07-31$14.0113.09%19.1%$0.506$0.501$0.2921.72
R4,$875,08-01$5.606.35%42.9%$0.443$0.330$0.3350.98
变化−60%−51%+23.8pp−12%−34%+15%−43%

预算翻三倍并不是把同一批人买得更贵,而是买到了多得多、便宜得多的展示,来自意向低得多的 受众。CPM 掉了 60%,CTR 腰斩,所以单次安装成本还是涨了 15%。每安装收入丢掉的 34 个百分点里, 国家结构只解释 12 个;其余是同样这些国家内部的受众质量,也就是 CTR 塌方在测的东西。做国家 定向能把这一步预算造成的损失找回大约三分之一。

预算是一个上限,真正的处理变量是实际花掉的钱。 相隔一天的两组"同为 $500/天"的小时,Meta 实际花出去的钱相差 1.34×,其间 CTR 掉了 17.7%。按钟点小时配对、对花费比值做回归:花费 弹性 −0.724 [−1.31, −0.14],残余的日效应 +1.3% [−16.8%, +19.4%]。花费预测 −18.8%, 实测 −17.7%。不存在衰减,每一次比较都必须对齐实际花费,而不是对齐旋钮。

那张表里的收入列不可信,投放列可信。 一个等预算的对照,同一条广告、同样的钟点小时、 两天都是 $500,把实测 RPI 推动了 −75%、ROAS 推动了 −73%,和预算对比造成的幅度一样大,而 CTR 只动了 −7%,印度只动了 +2.7pp。在约 150 次安装的格子上,收入侧就是噪声。这里的结论是 CPM、 CTR 和结构这几个数字;ROAS 那几个数字只是示意。

10pool5,在它被再次引用之前

pool5 的 3.01× 是 151 次安装上推算出来的同期群 ROAS。两天过去,它可以直接拿实际到账的钱 核对,不用再争。它的 07-30 同期群现在基本走完了:收入的 100% 在 48 小时内到齐,50% 在第一个 小时内。

pool5 的 07-30 同期群
安装数151
付费用户11 (7.3%)
迄今收入$92.23
Meta 的整日花费$36.62
实际回报2.52×
Meta 自己的当日 ROAS1.67×
最大的单个账号占同期群收入的 26%

不是结构造成的假象。 它跑的那个 $150 预算区间,预期 ROAS 定价是 1.48,当前 $500 区间是 1.45,差 2%。这个区间并不格外慷慨,所以这个数字不能用"它在哪里被展示"来解释。

也不是一个结果。 十一个付费用户,其中一个柬埔寨账号做了四笔交易,占掉四分之一的收入。 对照第 6 节那张表,151 次安装什么也分辨不出来。pool5 从 08-01 约 17:00 起就在 $500/天 上 单跑,这段投放一点都不在本文的数据里;Telegram 重建到 08-01 16:38 那次导出为止。

11这改变了什么

  1. 砍掉 ww_bikini_10s 在任何一个方向上都没有证据支撑。 0.82× 不是证据(那是自然日造成 的假象),1.13× 对 1.45× 不是证据(分辨不出来),CPM 溢价也不是证据(它是 Meta 推量力度的 函数)。这一刀可能砍对了,但它没有被论证过,这是两回事。唯一一个把花费、小时和地区都 固定住的比较是付费率:Mantel-Haenszel 优势比 3.17,p = 0.096,四个共同国家里全部更高, 它反而倒向另一边;而 bodysuit 的 ROAS 优势是比利时、斯洛文尼亚和瑞士的三个付费用户, 占它 R4 收入的 55%。
  2. 给素材排序只用 CTR。 它是唯一一个在买得起的量级上就能分辨的、由素材控制的指标。CPM 描述的是竞价。收入要读出 20% 的差距,每臂需要约 17,500 次安装,也就是每臂 $6,100 的媒体 花费。
  3. 永远不要把分配当成质量。 Meta 的花费切分由预算产能和它自己的探索状态驱动,而在我们 唯一能审计的那个时刻,它从两个实验臂里挑了差的那个。
  4. 条件要加在实际花费上,不是预算设置上。 预算是一个上限,Meta 在那一小时实际花掉的钱才 是处理变量。"同为 $500/天"的小时,真实花费相差 1.34×,把这一点修正掉之后,日与日之间看似 的衰减全部消失(残余 +1.3%,置信区间 [−16.8%, +19.4%])。#47 的"这个广告系列从未衰减" 成立。
  5. #47 的机制是对的,权重给错了。 预算推动国家结构,近乎确定性,而且可逆:bodysuit 单跑、同样的钟点小时、$250 → $875,印度 19.1% → 41.7%,CPM 14.01 → 5.60。但按账户 的国家价值定价,结构这条通路只值预期 ROAS 的 ≤15%,以及 CTR 跌幅的大约三分之一;其余是 国家内部的受众质量。另外,把便宜的印度流量带进来的不是 bikinibikini 是印度占比 更低、CPM 更高的那个实验臂,把它加进来反而稀释了账户的印度占比。
  6. 这个实验设计回答不了这个问题,再多分析也补不上。 在我们能观察到的每一个分层内部, Meta 都在做选择,依据的是一个任何导出里都没有的预测转化信号。只有把受众随机化,也就是 Meta 的 A/B 测试,才能识别出素材效应。在不同广告组里给相等预算不行,因为每个广告组内部 仍然各自优化。

12复现

上面全部内容出自一条命令。单元是 (ad, delivery hour);每一张表都是在它之上做一次筛选和一次 分组(ad_ops/asset_estimator/cohorts.py,视图在 views.py)。

cd C:/Projects/VideoGenAI_Related
L=_runs/2026-08-01_account_recheck

python -m ad_ops.asset_estimator hourly     --meta ad_ops/_data/b1_meta_exports/B1-Ads-by-hour-Jul-30.csv            ad_ops/_data/b1_meta_exports/B1-Ads-Jul-31-2026-Jul-31-2026.csv            $L/ads_hourly_aug1.csv     --lum $L/lum --fx $L/fx_rates.json     --ads "ww_bikini_10s,ww_bodysuit_10s,ww_pool5" --horizon 12

它在两处宁可报错也不猜:没有 Time of day 列的导出会直接抛异常(把一整天折成一个格子,正是 这个单元要消掉的错误);比观测时长年轻的同期群会被排除,它的花费按覆盖率缺口报出来,而不是 截断后并进总计。

缩放检验(第 3 节)、对齐钟点小时的预算对比(第 8 节)和 pool5 的同期群重建(第 9 节)仍然 是 _runs/2026-08-01_regime_matched/ 里的一次性探针;它们各自回答过一次机制问题,不属于任何 周期。

这次遇到的数据缺口,按约束力从强到弱排列:

Internal — noindex. Not for distribution outside the team.