Lane: reference. Which creatives are candidates to carry the buy, read across the three UTC days the current worldwide campaign has run. Method and the standing table shape: daily_report_format.md. Working files: ../_runs/2026-08-05_0805_asset_candidates/.
The report day is a UTC day, stitched from Meta days 08-04 and 08-05. Delivery columns are Meta's instrument on both sides of every ratio; every revenue measure is our own payment records. Payment data cut 2026-08-06 02:27 UTC.
$625.17 spent, 1,128 installs at $0.554, within-day revenue $898.32 (wROAS 1.44) against 08-04's $446.00 / 785 / $0.568 / 1.32. Booked was $1,427.51 at 2.28, and 62.9% of it came from people who installed that same day. Our records read 0.98 of Meta's booked figure.
Cohort@24h is 9% covered on 08-05 and cannot be compared to a matured day. Within-day is the sealed measure and is what the day-over-day reads below use.
Across the campaign's three days: 2,391 installs, 136 payers (5.7%), mean revenue per install $0.767, sd $5.942, a coefficient of variation of 7.74. Required sample scales with its square:
| to resolve a difference of | installs per arm | media per arm |
|---|---|---|
| 50% | 3,765 | $1,318 |
| 30% | 10,458 | $3,660 |
| 20% | 23,529 | $8,235 |
| 10% | 94,116 | $32,941 |
The largest arm in this campaign has 588 installs, 2.5% of what separating two creatives by 20% would take. Every revenue figure below is therefore a direction.
And CPM does not step into the gap. DECISION_LOG.md #48 settles this: CPM is a price the auction sets, 79% explained by the ad's own hourly spend rate (b = +0.132, se 0.019, R² = 0.79), appearing when Meta ramps an ad and vanishing when it stops. Nor is a low CPM good: holding creative and clock hours, a budget step that cut CPM 60% also cut CTR 51% and raised CPI 15%. Cheap impressions are low-intent impressions, so a low CPM and a high India share are one fact, not two.
What survives as a creative read is CTR and click→install, hour-matched inside one regime, and the estimator's expRPI, which is what a segment's audience is worth at the account's own country prices and the one column not confounded by which ad earned the revenue. Both are used below; raw CPM is reported for the record and carries no verdict.
Pooled over three days the payer counts do clear the 16-payer bar (#37) for four arms (pool5 42, bodysuit 34, bikini 30, spill2 17), which makes each arm's own number readable. It does not make the gap between two arms readable, and those are different questions.
| asset | 08-03 CPM / CTR / CPI | 08-04 CPM / CTR / CPI | 08-05 CPM / CTR / CPI |
|---|---|---|---|
pool5 | 17.84 / 11.89% / $0.609 | 11.77 / 8.88% / $0.562 | 9.13 / 9.77% / $0.463 |
bodysuit | 14.79 / 7.53% / $0.503 | 10.77 / 7.63% / $0.513 | 9.01 / 6.68% / $0.488 |
bikini | 11.18 / 8.55% / $0.480 | 12.09 / 9.03% / $0.540 | 8.64 / 8.81% / $0.438 |
spill2 — the live spill build | — | 12.66 / 13.34% / $0.369 | 13.45 / 15.40% / $0.389 |
lounge | — | — | 19.91 / 10.13% / $0.889 |
mugshot | 16.05 / 8.46% / $0.790 | 16.17 / 10.43% / $1.034 | stopped |
spill — the rejected first build | 0.60 / 1.66% / $1.503 | replaced | replaced |
The last two rows are one ad set, one creative, two builds, never both live on the same day.
Account-wide the two days did not separate on either ratio the pooled funnel tests: CTR 9.37% → 9.18% (p = 0.363), click→install 24.35% → 22.74% (p = 0.106). Hour by hour the sign tests agree: CTR 10 of 20 hours each way (p = 1.000), CPM lower in 14 of 20 (p = 0.115). The day got bigger, not better, and no delivery ratio moved in a way the data can distinguish from noise.
| asset | 08-03 wROAS / payers | 08-04 wROAS / payers | 08-05 wROAS / payers | ARPPU across the three |
|---|---|---|---|---|
pool5 | 1.38 / 3 | 2.21 / 12 | 3.66 / 24 | 24.84 · 23.27 · 23.42 |
bodysuit | 1.05 / 1 | 1.57 / 11 | 1.04 / 19 | 13.50 · 16.82 · 8.01 |
bikini | 1.50 / 9 | 0.49 / 8 | 0.57 / 8 | 10.89 · 10.14 · 5.91 |
spill2 | — | 1.28 / 4 | 1.07 / 12 | 11.91 · 7.08 |
lounge | — | — | 0.66 / 6 | 8.23 |
pool5's edge is ARPPU, not payer rate. Its payer rate (5.8% / 7.8% / 7.0%) sits alongside bodysuit's (6.2% / 5.3% / 6.2%); what differs is what a payer is worth, roughly $23–25 against $8–17, stable to within a dollar across three days. That stability on 42 pooled payers is the most reproducible revenue signal in the campaign.
But it is partly a geography purchase, and the share is rising. The United States supplied 41.1% of pool5's own within-day revenue on 08-04 and 50.2% on 08-05 while being 14.3% of its spend. Its India share runs 14–15% against bikini's 34–48%. Held to each regime's pooled country mix, pool5's advantage shrinks but does not vanish: mix-neutral 2.49 and 9.81 in the two regimes where arms overlap, against bodysuit 1.42 / 2.28 and bikini 1.27 / 0.80.
08-05 06:00 → 20:00 PT, one regime, no start/stop event inside it. This is the only comparison here that holds the clock fixed across every arm.
| arm | spend | installs | CPM | CTR | India% | expRPI |
|---|---|---|---|---|---|---|
pool5 | $119.3 | 253 | 9.35 | 9.57% | 14% | 1.524 |
lounge | $66.7 | 81 | 20.45 | 10.06% | 22% | 1.086 |
bodysuit | $102.5 | 210 | 8.80 | 6.40% | 31% | 0.994 |
bikini | $61.8 | 135 | 8.81 | 8.22% | 48% | 0.727 |
spill | $49.5 | 115 | 13.34 | 15.33% | 18% | 0.648 |
Realised spend still differs 2.4× across the arms, so even here CPM carries the ramp effect and is not read as a verdict. spill's CTR is the one gap wide enough to survive that, at 15.33% against a pack running 6.4–10.1%, on tens of thousands of impressions.
bikini buys the cheapest and least valuable audience in the pack: lowest expRPI, highest India share, and the low CPM that goes with both.
Nothing here is a final candidate, and this campaign cannot make one. The arms bought different audiences at different realised spend, which is the confound #48 found large enough to swallow any creative signal. What follows is a prior, not a verdict.
spill carries the only observation wide enough to survive the noise. CTR 15.33% hour-matched against a pack at 6.4–10.1%, on tens of thousands of impressions, and 15.40% on the full UTC day. Its expRPI is the lowest in the pack, so it is winning attention on a cheap audience; whether that converts is the test's question, not this document's.
pool5 buys the most valuable audience: expRPI 1.524, India 14%, and ARPPU stable at $23–25 across three days on 42 pooled payers. Half its within-day revenue is American on 14.3% American spend, so its ROAS is substantially a geography position rather than a creative result.
bodysuit is the volume arm with the worst CTR, falling three days running (7.53% → 7.63% → 6.68%) and last in the hour-matched window at 6.40%.
bikini is the weakest audience buy: lowest expRPI (0.727), highest India share (48%), and the low CPM that is the same fact as both. Its revenue reads (wROAS 1.50 → 0.49 → 0.57) sit on 8–9 payers and cannot carry weight either way.
lounge is the most expensive and the least established, at CPI $0.889 against a pack at $0.39–0.49, one day old, 43.7% of its revenue from a single payer. Its expRPI is mid-pack, so it is not obviously buying badly; it is buying expensively.
mugshot is dead, and it was switched off rather than starved. The activity history records ww_broad_purchase_adv_d100_mugshot going Active → Inactive at Aug 4 12:32 PT, by the operator; delivery stopped about half an hour later. The estimator's event table reads that as "Meta stops ww_mugshot" because it infers stops from delivery, so the two do not disagree; the log is the one that knows who did it. It had run two days at CPI $0.790 → $1.034 and wROAS 0.20 → 0.08.
The spill rows are one arm over time, not two creatives. The ad set ww_broad_purchase_adv_d100_spill holds a replacement pair on the same 8s creative: the original vid_ww_spill_8s_9x16_v1 is the rejected build (DECISION_LOG.md #50), inactive since 08-03, and its - Copy has carried the arm since 08-04 and is live, the spill2 row above. The arm is running and is the campaign's CTR leader; only the first build is off.
So no arm is cut on this evidence. The five-cell A/B test scheduled for 08-06 00:00 → 08-11 00:00 PT holds all five of these arms on a non-overlapping person-level split, which randomises away the audience confound that makes everything above observational. Its key metric is cost per lead and it resolves a 20% difference on that inside day 1. Culling arms hours before it opens would remove the only instrument on the account that can answer the question.
The arms opened unequal and were equalised four hours in. They started at $100 bikini / $150 bodysuit / $150 pool5 / $100 spill / $100 lounge; at 04:05–04:06 PT on 08-06 the three $100 arms were raised to $150, putting all five level at $750/day. Cost per install is what the test resolves first and it is exactly what an unequal budget moves, so the day-1 read belongs on the post-equalisation window rather than on the calendar day.
Gen 7 put four worldwide creatives into a second DACH ad set under CBO at 13:48 PT on 08-05. In the six hours that followed, the whole German campaign spent $17.11 against a $100/day budget, and inside the worldwide ad set bodysuit took 78% of it ($8.78 of $11.24), the same within-set concentration the register recorded as the reason this design cannot rank the four creatives against each other. Impression counts are 2 to 190 per arm.
The pauses did take: turkish_mature, turkish_6s and german_6s all stopped by hour 11 PT and took nothing afterwards. Before stopping, turkish_mature had already spent $56.00 for 13 installs (CPI $4.31) and returned nothing on the UTC day.
The bar Gen 7 has to beat is the German pack's settled-08-04 CPM $52.77 and cost per click $0.779. Six hours at these volumes cannot approach it. Read it after a full day, on CPM and cost per click only. No German cell has ever cleared the payer bar.
python -m ad_ops.measures --config _runs/2026-08-05_0805_asset_candidates/run_config.json --day 2026-08-05 --prev 2026-08-04
python -m ad_ops.day_compare --config … --today 2026-08-05 --prev 2026-08-04 --h 6
python -m ad_ops.cohort_arpu --config … --days 2026-08-01,…,2026-08-05
python -m ad_ops.report_tables --config … --day 2026-08-05 --prev 2026-08-04
python -m ad_ops.asset_estimator hourly --meta <08-03,08-04,08-05 hourly> --lum <run>/lum \
--fx … --ads ww_bikini_10s,ww_bodysuit_10s,ww_pool5,ww_mugshot,ww_spill,ww_lounge \
--campaign bailingxia_meituan_ww_cvr_260802 --horizon 24
Exports pulled 2026-08-05 19:23–19:26 PT: ads hourly for Meta day 08-05 (155 rows, hours 00–19), ads × day and ads × country × day for Jul 1 → Aug 5. Lum Telegram export taken on the laptop the same evening: 12,967 registrations, 1,306 payments, 7 unmatched.
Country tables are a META-day cut and are read for mix only; Meta serves no hour × country grid.