归类:参考。 数据截至 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 预算区间内部拿 bikini 比 bodysuit:如果两者的国家结构在那里是齐的,素材比较就站得住;如果 连区间内部 bikini 都更偏印度,那么每一条素材结论其实都是地域结论,只是挂着素材的名字。
这个账户里没有任何东西能确定这两条素材谁更好,而想给出答案的四次尝试,各自因为不同的原因 失败了。
#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 判断出了什么。
预算区间 R4($875/day,07-31 17:21 → 08-01 04:10 PT)是唯一一个两条素材都跑出量、而且跑在 同样这十个小时里的窗口。安装级别的国家来自 Lum 注册频道;每一次安装都归到产生它的那个投放小时。
bikini | bodysuit | ||
|---|---|---|---|
| R4 内安装数 | 732 | 488 | |
| 印度占比 | 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 $150 | R2 $250 | R3 $500 | R4 $875 | R5 $500 | 合并印度占比 | 预算区间标准化印度占比 |
|---|---|---|---|---|---|---|---|
bikini | 3% | 0% | 0% | 88% | 8% | 31.5% | 23.6% |
bodysuit | 1% | 15% | 28% | 21% | 35% | 29.9% | 32.0% |
bikini 几乎整个活在 $875 预算区间里,bodysuit 摊在四个区间上。所以两者之间任何一次合并 全生命期的比较,都正好按 #47 怀疑的方式被混杂了。把两者都标准化到账户的预算区间分布上, bikini 的印度占比从 31.5% 落到 23.6%,bodysuit 往反方向走。混杂是在的,方向和当初假设的 相反。
国家占比的变动只有在动到钱的时候才算混杂。每条广告自己的结构,都按同一批格子算出来的合并国家 价格来估值:占比取自该广告,价格取自合并池。单条广告在某一个国家内部的收入在这里根本测不了, 所以从不使用。
| R4,观测时长 H = 12 h | 安装数 | 付费用户 | 花费 | CPI 实测 | CPI 预期 | 成本比 | RPI 实测 | RPI 预期 | 收入比 | ROAS | 95% 置信区间 |
|---|---|---|---|---|---|---|---|---|---|---|---|
bikini | 732 | 27 | $286.17 | $0.391 | $0.323 | 1.21 | $0.459 | $0.483 | 0.95 | 1.18 | 0.64 – 1.82 |
bodysuit | 488 | 14 | $144.09 | $0.295 | $0.318 | 0.93 | $0.429 | $0.504 | 0.85 | 1.45 | 0.54 – 2.58 |
这里落出两件事,外加一件"没有的事":
bikini 每次安装付的钱比它自己的受众所隐含的高 21%, bodysuit 低 7%,成本侧摆动 30%;而收入侧两边都低于各自结构的预期,幅度也差不多。CPI = CPM/1000 × 1/CTR × 1/(点击→安装)。在同样这十个小时里:
| R4,18:00 → 04:00 | 花费 | 展示次数 | 点击量 | 安装数 | CPM | CTR | 点击→安装 | CPI |
|---|---|---|---|---|---|---|---|---|
bikini | $286.17 | 34,345 | 2,616 | 732 | $8.33 | 7.62% | 28.0% | $0.391 |
bodysuit | $144.09 | 23,398 | 1,840 | 488 | $6.16 | 7.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 的倍数) |
|---|---|---|---|
| 低于 $6 | 4 | 0.97 | 0.67 |
| $6–20 | 2 | 1.26 | 1.03 |
| 高于 $20 | 8 | 1.43 | 1.05 |
把 CPM 比值取对数,对 bikini 自己每小时花费的对数做回归:b = +0.132,se 0.019, R² = 0.79。 推量翻一倍,它的 CPM 涨 10%。轨迹直接把这件事显出来:重新开跑的第一个小时, $1.6/h,bikini 的 CPM 是 bodysuit 的 0.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 放出这些排名的量级门槛。它在任何一个方向上都不能当作素材结论来读。
按钟点小时配对,并把花费强度作为回归项扣掉:
| 环节 | 谁控制它 | 等花费下的差距 | 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 条片子都是同一个 镜头,历来只有脸和上衣两处在变。
在 $875 那一步,Meta 手上有两个已经停投的实验臂,账面上是这样:
| 停投的实验臂 | 花费 | 交易笔数 | 转化价值 | ROAS |
|---|---|---|---|---|
pool5 | $36.62 | 13 | $61.22 | 1.67 |
bikini | $8.64 | 1 | $5.03 | 0.58 |
pool5 停投期间还在出转化,零花费上又来了 2 笔交易,值 $18.73,是 7 天点击归因窗的尾巴。 Meta 重新启动了 bikini,并且在这轮剩下的时间里给 pool5 零预算。 最顺手的机械解释也 不成立:pool5 是 15 秒,另外两条是 10 秒,但 07-30 它在所有相同版位上都跑过,占比也相当, 所以不存在投放资格上的阻挡。
然后它在一段证据不利于 bikini 的时间里,一路给它加量:
| 决策小时 | bikini 累计 | bikini 花费占比 | ||
|---|---|---|---|---|
| 展示次数 | CTR | ROAS | ||
| 18:00 | 305 | 8.20% | 0.58 | 6% |
| 19:00 | 516 | 8.14% | —(1 笔交易) | 51% |
| 20:00 | 2,889 | 8.93% | 0.21 | 65% |
| 21:00 | 6,075 | 8.97% | 0.29 | 71% |
| 23:00 | 12,911 | 8.42% | 0.67 | 76% |
同一个 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 停投了"读成对它不利的证据,同样是错的。
R4 这个窗口是这个账户跑过的、检验效能最高的一次素材比较:同一个预算区间,小时对齐,两个同期群 都已经完全累积,而且是有记录以来最大的两个安装同期群。对安装做 bootstrap(自助重抽样):
| ROAS | 95% 置信区间 | |
|---|---|---|
bikini | 1.18 | 0.64 – 1.82 |
bodysuit | 1.45 | 0.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 = 1 | H = 6 | H = 12 | H = 24 | |
|---|---|---|---|---|
bikini | 0.87 (100%) | 1.00 (100%) | 1.18 (95%) | 1.43 (1%) |
bodysuit | 1.02 (97%) | 1.51 (75%) | 1.64 (63%) | 1.98 (40%) |
pool5 | 0.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 量的是账户的规模,量不了素材。
预算改动不是唯一的事件。一条素材开始或停止投放,会改变这个广告组里其他每一条素材面对的 竞价,所以一个跨过这种时点的窗口,比的是两个不同的竞争环境。把两类事件取并集来切分,每一次 预算调整、每条广告第一个和最后一个投放小时、优化器把某条素材停投的每一段空档,切出来的才是 这轮投放的真实形状。
⚠ 三条素材从开跑起就都是开着的。 这个窗口里唯一一次人工开关是 08-01 06:55 关掉 bikini; bodysuit 在约 17:00 跟上,已经超出数据截止点。下面其余全部是 Meta 在 CBO 广告组内部重新 分配:一条广告投放量为零,它仍然是开着的、仍然在竞价,只是那一小时没拿到预算。这个区分正是 第 5 轮测试的发现:互不重叠的投放窗口是优化器干的,不是谁动的手。人工开关在任何一份导出里也 没有;Ad delivery 是导出那一刻盖上的戳,同一个小时,在广告还在跑时拉的文件里读作 active, 在暂停之后拉的文件里读作 inactive。
| 窗口(PT) | 预算 | 变了什么 | 广告 | 花费 | 安装 | CPM | CTR | 印度 | 受众价值 |
|---|---|---|---|---|---|---|---|---|---|
| 07-30 15:00–16:00 | $150 ← | Meta 启动 pool5 | pool5 | $4.8 | 8 | 14.84 | 10.9% | 0% | $0.277 |
| 07-30 16:00–20:00 | $150 | Meta 启动 bikini、bodysuit | bikini | $3.5 | 28 | 11.54 | 8.2% | 11% | $0.359 |
bodysuit | $4.1 | 38 | 13.04 | 15.3% | 24% | $0.657 | |||
pool5 | $23.9 | 143 | 13.07 | 13.4% | 14% | $0.392 | |||
| 07-31 00:00–07:19 | $250 | Meta 停掉 bikini 和 pool5 | bodysuit | $107.4 | 342 | 13.96 | 12.0% | 18% | $0.576 |
| 07-31 07:19–17:21 | $500 ← | — | bodysuit | $187.1 | 615 | 10.96 | 10.9% | 30% | $0.445 |
| 07-31 18:00–08-01 04:10 | $875 ← | Meta 恢复 bikini,在这一步之后 39 分钟 | bikini | $286.2 | 732 | 8.33 | 7.6% | 32% | $0.483 |
bodysuit | $144.1 | 488 | 6.16 | 7.9% | 39% | $0.504 | |||
| 08-01 04:10–07:00 | $500 ← | bikini 被关闭(人工,06:55) | bikini | $14.6 | 51 | 7.55 | 8.4% | 35% | $0.406 |
bodysuit | $10.5 | 43 | 6.62 | 8.4% | 28% | $0.316 | |||
| 08-01 07:00–17:00 | $500 | — | bodysuit | $254.4 | 770 | 8.74 | 8.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,所以这件事和"存在一个真实效应"是相容的,它本身还 构不成证据;干净的版本需要一次在对齐钟点小时上做的关停。
#47 确立了预算会推动国家结构,并据此读出账户的下滑。结构确实在动;留下的问题是它值多少。把 每个预算区间的合并结构按账户级的国家价值定价:
| 预算区间 | 预算 | 安装数 | 印度 | 预期 RPI | 预期 CPI | 仅由结构决定的预期 ROAS |
|---|---|---|---|---|---|---|
| R1 | $150 | 201 | 14.9% | $0.433 | $0.294 | 1.48 |
| R2 | $250 | 362 | 19.6% | $0.561 | $0.336 | 1.67 |
| R3 | $500 | 652 | 29.1% | $0.493 | $0.326 | 1.51 |
| R4 | $875 | 1,216 | 34.6% | $0.497 | $0.324 | 1.53 |
| R5 | $500 | 885 | 29.9% | $0.452 | $0.312 | 1.45 |
结构摆动极大,值的钱极少。 各预算区间之间印度从 14.9% 走到 34.6%,摆动 20pp,而由此得到 的受众价值只在 1.45 到 1.67 之间,并且 $875 区间定出来的价还比 $500 区间高 6%。顶替印度的 那些国家并没有系统性地更好:印度的每安装收入($0.410)只比账户均值低 12%,单次安装成本 ($0.347)高 7%,所以它差的是大约五分之一,不是差好几倍。
预算真正的伤害,要把同一条素材固定在同样的钟点小时上才看得见:
bodysuit,00:00–03:59 PT | CPM | CTR | 印度 | 预期 RPI | 实测 RPI | CPI | ROAS |
|---|---|---|---|---|---|---|---|
| R2,$250,07-31 | $14.01 | 13.09% | 19.1% | $0.506 | $0.501 | $0.292 | 1.72 |
| R4,$875,08-01 | $5.60 | 6.35% | 42.9% | $0.443 | $0.330 | $0.335 | 0.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 那几个数字只是示意。
pool5,在它被再次引用之前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 自己的当日 ROAS | 1.67× |
| 最大的单个账号 | 占同期群收入的 26% |
不是结构造成的假象。 它跑的那个 $150 预算区间,预期 ROAS 定价是 1.48,当前 $500 区间是 1.45,差 2%。这个区间并不格外慷慨,所以这个数字不能用"它在哪里被展示"来解释。
也不是一个结果。 十一个付费用户,其中一个柬埔寨账号做了四笔交易,占掉四分之一的收入。 对照第 6 节那张表,151 次安装什么也分辨不出来。pool5 从 08-01 约 17:00 起就在 $500/天 上 单跑,这段投放一点都不在本文的数据里;Telegram 重建到 08-01 16:38 那次导出为止。
ww_bikini_10s 在任何一个方向上都没有证据支撑。 0.82× 不是证据(那是自然日造成 的假象),1.13× 对 1.45× 不是证据(分辨不出来),CPM 溢价也不是证据(它是 Meta 推量力度的 函数)。这一刀可能砍对了,但它没有被论证过,这是两回事。唯一一个把花费、小时和地区都 固定住的比较是付费率:Mantel-Haenszel 优势比 3.17,p = 0.096,四个共同国家里全部更高, 它反而倒向另一边;而 bodysuit 的 ROAS 优势是比利时、斯洛文尼亚和瑞士的三个付费用户, 占它 R4 收入的 55%。bodysuit 单跑、同样的钟点小时、$250 → $875,印度 19.1% → 41.7%,CPM 14.01 → 5.60。但按账户 的国家价值定价,结构这条通路只值预期 ROAS 的 ≤15%,以及 CTR 跌幅的大约三分之一;其余是 国家内部的受众质量。另外,把便宜的印度流量带进来的不是 bikini,bikini 是印度占比 更低、CPM 更高的那个实验臂,把它加进来反而稀释了账户的印度占比。上面全部内容出自一条命令。单元是 (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/ 里的一次性探针;它们各自回答过一次机制问题,不属于任何 周期。
这次遇到的数据缺口,按约束力从强到弱排列:
pool5 大部分收入的那些安装就落在缺掉的两个小时里,所以第 9 节用的是 Meta 的整日花费,不是同期群表。adjust_sink 仍然是死的,所以以上全部都压在一份人工 Telegram 导出上,下界是 2026-07-11, 上界是 08-01 16:38。