The account bought $644.53 and got 636 installs at $1.013, against $745.02 and 814 at $0.915 the day before. Booked revenue was $1,471.33; within-day was $688.38, down 31.0% on 13.5% less spend. Our records read 1.04 and 1.06 of Meta's booked figure on the account's own clock, at the top edge of the documented 0.91–1.06 band. One campaign carried the whole day for the second day running, and this is the fourth day of the five-cell split test. It is also the day Meta rejected one of the five test creatives and stopped it mid-morning, which is the fact most of this report is about. Definitions, the report clock and the three revenue measures are in the appendix.
Delivery rows are the delivering campaigns summed. Two campaigns booked installs on no spend and are excluded here and named in section 5, because counting them would put installs into a CPI denominator against spend that was never incurred.
| 2026-08-08 | 2026-08-09 | move | |
|---|---|---|---|
| spend | $745.02 | $644.53 | −13.5% |
| impressions | 75,033 | 62,523 | −16.7% |
| CPM | $9.93 | $10.31 | +3.8% |
| clicks | 4,202 | 3,342 | −20.5% |
| CTR | 5.60% | 5.35% | −4.6% |
| installs (Meta) | 814 | 636 | −21.9% |
| click→install | 19.37% | 19.03% | −1.8% |
| CPI | $0.915 | $1.013 | +10.7% |
| booked (Meta) | $1,695.44 (2.28) | $1,471.33 (2.28) | −13.2% |
| within-day | $996.74 (1.34) | $688.38 (1.07) | −31.0% |
| cohort @ 24h | $1,163.66 (1.56) | $959.51 (1.49) | −17.5% |
Keyed on the INSTALL day and measured from each user's own install stamp: dN is their first (N+1) x 24 h. ARPU is Adjust's own series, the one the partner's dashboard reports; ARPPU is our payment ledger, because Adjust exposes no cumulative distinct-payer count. A horizon the window has not lived through yet is left empty rather than written as zero.
| app | ARPU (d0) | ARPU (d3) | ARPU (d7) | ARPPU (d0) | ARPPU (d3) | ARPPU (d7) | installs |
|---|---|---|---|---|---|---|---|
| Vloom | $0.8830 | $1.1982 | $1.3546 | $17.41 | $20.94 | $22.65 | 769 |
Campaign spend split, both days. Worldwide $745.02 (100.0%) → $644.53 (100.0%); German $0.00 on both, unspent since Meta day 08-06.
Meta rejected one of the five test creatives (section 6). spill spent $69.55 less and stopped for good, bodysuit $64.38 less: the whole $100.49 fall.
The four-day fall in click-through rate stopped. On the four surviving arms, pooled CTR goes 7.04% → 5.86% → 5.24% → 5.58% (section 6).
France is one basket and a fifth of within-day revenue. 9.37 wROAS on six installs, $150.75, 21.9% of $688.38. Payers fell 51 to 34.
Hours both days delivered in, on the UTC clock: 00 through 23. Only the shared hours are compared.
Every hour of the day itself, all three revenue measures beside the delivery funnel. Delivery columns are Meta's on both sides of each ratio; ours is our own registrations and every revenue column is ours. cov is that hour's cohort coverage at H=24, and on this cut it is 100% in every hour: the payment data runs to 09:27 on 08-12, so every install of this day has lived a full 24 hours.
| hr | spend | impr | CPM | clicks | CTR | inst | clk→i | CPI | ours | cov | booked | bROAS | bPay | within | wROAS | wPay | wARPU | wARPPU | cohort | cROAS | cPay | cARPU | cARPPU |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | $26.85 | 2212 | 12.14 | 114 | 5.15% | 29 | 25.4% | $0.926 | 30 | 100% | $70.64 | 2.63 | 7 | $11.27 | 0.42 | 2 | 0.376 | 5.64 | $11.27 | 0.42 | 2 | 0.376 | 5.64 |
| 1 | $22.83 | 2262 | 10.09 | 111 | 4.91% | 27 | 24.3% | $0.846 | 31 | 100% | $19.88 | 0.87 | 3 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $0.00 | 0.00 | 0 | 0.000 | 0.00 |
| 2 | $24.35 | 2528 | 9.63 | 133 | 5.26% | 30 | 22.6% | $0.812 | 36 | 100% | $29.03 | 1.19 | 4 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $0.00 | 0.00 | 0 | 0.000 | 0.00 |
| 3 | $26.01 | 2698 | 9.64 | 126 | 4.67% | 22 | 17.5% | $1.182 | 29 | 100% | $18.71 | 0.72 | 4 | $5.76 | 0.22 | 1 | 0.199 | 5.76 | $5.76 | 0.22 | 1 | 0.199 | 5.76 |
| 4 | $25.70 | 2603 | 9.87 | 116 | 4.46% | 24 | 20.7% | $1.071 | 26 | 100% | $36.10 | 1.40 | 6 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $5.76 | 0.22 | 1 | 0.221 | 5.76 |
| 5 | $26.88 | 3000 | 8.96 | 143 | 4.77% | 21 | 14.7% | $1.280 | 22 | 100% | $87.70 | 3.26 | 2 | $11.14 | 0.41 | 2 | 0.506 | 5.57 | $11.14 | 0.41 | 2 | 0.506 | 5.57 |
| 6 | $32.90 | 3579 | 9.19 | 171 | 4.78% | 30 | 17.5% | $1.097 | 36 | 100% | $35.35 | 1.07 | 4 | $10.75 | 0.33 | 2 | 0.299 | 5.37 | $10.75 | 0.33 | 2 | 0.299 | 5.37 |
| 7 | $24.57 | 2876 | 8.54 | 135 | 4.69% | 23 | 17.0% | $1.068 | 29 | 100% | $77.49 | 3.15 | 9 | $12.88 | 0.52 | 3 | 0.444 | 4.29 | $12.88 | 0.52 | 3 | 0.444 | 4.29 |
| 8 | $27.43 | 2913 | 9.42 | 152 | 5.22% | 25 | 16.4% | $1.097 | 28 | 100% | $31.84 | 1.16 | 3 | $14.24 | 0.52 | 1 | 0.508 | 14.24 | $14.24 | 0.52 | 1 | 0.508 | 14.24 |
| 9 | $25.88 | 3116 | 8.31 | 153 | 4.91% | 20 | 13.1% | $1.294 | 19 | 100% | $85.28 | 3.30 | 6 | $104.71 | 4.05 | 1 | 5.511 | 104.71 | $104.71 | 4.05 | 1 | 5.511 | 104.71 |
| 10 | $35.90 | 3392 | 10.58 | 182 | 5.37% | 37 | 20.3% | $0.970 | 42 | 100% | $60.99 | 1.70 | 9 | $10.99 | 0.31 | 2 | 0.262 | 5.50 | $10.99 | 0.31 | 2 | 0.262 | 5.50 |
| 11 | $31.06 | 3311 | 9.38 | 183 | 5.53% | 34 | 18.6% | $0.914 | 43 | 100% | $38.12 | 1.23 | 5 | $12.86 | 0.41 | 1 | 0.299 | 12.86 | $19.97 | 0.64 | 1 | 0.464 | 19.97 |
| 12 | $32.06 | 3296 | 9.73 | 181 | 5.49% | 49 | 27.1% | $0.654 | 52 | 100% | $157.31 | 4.91 | 8 | $195.03 | 6.08 | 3 | 3.751 | 65.01 | $195.03 | 6.08 | 3 | 3.751 | 65.01 |
| 13 | $29.31 | 2608 | 11.24 | 132 | 5.06% | 25 | 18.9% | $1.172 | 30 | 100% | $45.79 | 1.56 | 5 | $11.39 | 0.39 | 2 | 0.380 | 5.70 | $11.39 | 0.39 | 2 | 0.380 | 5.70 |
| 14 | $30.51 | 1933 | 15.78 | 126 | 6.52% | 23 | 18.3% | $1.327 | 28 | 100% | $92.31 | 3.03 | 4 | $69.99 | 2.29 | 2 | 2.500 | 35.00 | $69.99 | 2.29 | 2 | 2.500 | 35.00 |
| 15 | $27.88 | 2692 | 10.36 | 159 | 5.91% | 30 | 18.9% | $0.929 | 36 | 100% | $21.20 | 0.76 | 4 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $0.00 | 0.00 | 0 | 0.000 | 0.00 |
| 16 | $33.18 | 2804 | 11.83 | 189 | 6.74% | 40 | 21.2% | $0.830 | 44 | 100% | $35.18 | 1.06 | 7 | $11.97 | 0.36 | 2 | 0.272 | 5.99 | $26.20 | 0.79 | 2 | 0.596 | 13.10 |
| 17 | $27.56 | 2970 | 9.28 | 156 | 5.25% | 26 | 16.7% | $1.060 | 32 | 100% | $35.37 | 1.28 | 5 | $5.15 | 0.19 | 1 | 0.161 | 5.15 | $5.15 | 0.19 | 1 | 0.161 | 5.15 |
| 18 | $21.33 | 2397 | 8.90 | 141 | 5.88% | 25 | 17.7% | $0.853 | 30 | 100% | $71.76 | 3.36 | 5 | $67.94 | 3.19 | 2 | 2.265 | 33.97 | $112.44 | 5.27 | 2 | 3.748 | 56.22 |
| 19 | $28.06 | 2424 | 11.58 | 137 | 5.65% | 24 | 17.5% | $1.169 | 31 | 100% | $18.00 | 0.64 | 2 | $79.97 | 2.85 | 4 | 2.580 | 19.99 | $104.96 | 3.74 | 4 | 3.386 | 26.24 |
| 20 | $21.27 | 1811 | 11.74 | 108 | 5.96% | 17 | 15.7% | $1.251 | 19 | 100% | $193.01 | 9.07 | 11 | $4.99 | 0.23 | 1 | 0.263 | 4.99 | $4.99 | 0.23 | 1 | 0.263 | 4.99 |
| 21 | $20.94 | 1806 | 11.59 | 107 | 5.92% | 28 | 26.2% | $0.748 | 26 | 100% | $33.33 | 1.59 | 3 | $4.99 | 0.24 | 1 | 0.192 | 4.99 | $4.99 | 0.24 | 1 | 0.192 | 4.99 |
| 22 | $26.32 | 1784 | 14.75 | 102 | 5.72% | 13 | 12.7% | $2.025 | 16 | 100% | $52.85 | 2.01 | 6 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $174.53 | 6.63 | 1 | 10.908 | 174.53 |
| 23 | $15.75 | 1508 | 10.44 | 85 | 5.64% | 14 | 16.5% | $1.125 | 17 | 100% | $124.09 | 7.88 | 5 | $42.37 | 2.69 | 1 | 2.492 | 42.37 | $42.37 | 2.69 | 1 | 2.492 | 42.37 |
| ALL | $644.53 | 62523 | 10.31 | 3342 | 5.35% | 636 | 19.0% | $1.013 | 732 | 100% | $1471.33 | 2.28 | 127 | $688.38 | 1.07 | 34 | 0.940 | 20.25 | $959.51 | 1.49 | 36 | 1.311 | 26.65 |
The rejection lands mid hour 13. The 06:12 stop is 13:12 UTC: fourteen five-arm hours, then ten four-arm ones at lower volume and higher CPI.
Counting which way each shared hour points, which needs no weighting and asks only for a direction:
| metric | hours 2026-08-09 ran higher | hours it ran lower | sign test |
|---|---|---|---|
| CPM | 16 of 24 | 8 of 24 | p = 0.152 |
| CTR | 10 of 24 | 14 of 24 | p = 0.541 |
| click→install | 10 of 24 | 14 of 24 | p = 0.541 |
| CPI | 16 of 24 | 8 of 24 | p = 0.152 |
A sign test throws magnitude away and buys weight-free direction with it. Nothing clears 0.05 this time, and that is the finding. The day before, CTR ran lower in 19 of 24 hours at p = 0.007 and CPI higher in 19 of 24 at p = 0.007. Both collapse to 8-versus-16 splits that a fair coin produces about one time in seven. The account stopped moving in one direction across the clock.
Within-day revenue is two hours. Hours 12 and 09 carry $195.03 and $104.71 of $688.38 — 43.5% on four payers between them.
Every shared hour, 2026-08-08 → 2026-08-09. All columns are Meta's instrument on both sides of each ratio. Revenue is deliberately absent: per-hour payer counts run 0-3, so an hourly revenue column would be one person's basket read as a rate.
| hr | impressions | CPM | CTR | click→install | CPI |
|---|---|---|---|---|---|
| 00 | 1,474 → 2,212 | 10.88 → 12.14 | 6.78% → 5.15% | 30.0% → 25.4% | 0.535 → 0.926 |
| 01 | 2,163 → 2,262 | 9.82 → 10.09 | 6.80% → 4.91% | 25.9% → 24.3% | 0.559 → 0.846 |
| 02 | 2,373 → 2,528 | 9.69 → 9.63 | 5.56% → 5.26% | 18.2% → 22.6% | 0.958 → 0.812 |
| 03 | 2,891 → 2,698 | 8.12 → 9.64 | 6.05% → 4.67% | 14.9% → 17.5% | 0.903 → 1.182 |
| 04 | 3,027 → 2,603 | 9.16 → 9.87 | 5.68% → 4.46% | 20.3% → 20.7% | 0.792 → 1.071 |
| 05 | 2,891 → 3,000 | 8.66 → 8.96 | 4.95% → 4.77% | 18.2% → 14.7% | 0.963 → 1.280 |
| 06 | 2,728 → 3,579 | 10.17 → 9.19 | 5.46% → 4.78% | 22.1% → 17.5% | 0.841 → 1.097 |
| 07 | 2,528 → 2,876 | 8.38 → 8.54 | 5.70% → 4.69% | 22.9% → 17.0% | 0.642 → 1.068 |
| 08 | 2,878 → 2,913 | 8.60 → 9.42 | 5.07% → 5.22% | 15.1% → 16.4% | 1.125 → 1.097 |
| 09 | 2,939 → 3,116 | 8.45 → 8.31 | 5.38% → 4.91% | 18.4% → 13.1% | 0.856 → 1.294 |
| 10 | 2,958 → 3,392 | 9.73 → 10.58 | 4.77% → 5.37% | 17.7% → 20.3% | 1.152 → 0.970 |
| 11 | 3,227 → 3,311 | 10.66 → 9.38 | 5.14% → 5.53% | 19.9% → 18.6% | 1.043 → 0.914 |
| 12 | 3,202 → 3,296 | 10.57 → 9.73 | 5.81% → 5.49% | 16.1% → 27.1% | 1.128 → 0.654 |
| 13 | 3,329 → 2,608 | 11.90 → 11.24 | 5.35% → 5.06% | 23.0% → 18.9% | 0.966 → 1.172 |
| 14 | 3,059 → 1,933 | 12.43 → 15.78 | 6.24% → 6.52% | 17.3% → 18.3% | 1.152 → 1.327 |
| 15 | 4,143 → 2,692 | 8.99 → 10.36 | 6.03% → 5.91% | 18.0% → 18.9% | 0.828 → 0.929 |
| 16 | 4,231 → 2,804 | 8.99 → 11.83 | 5.65% → 6.74% | 19.7% → 21.2% | 0.809 → 0.830 |
| 17 | 5,225 → 2,970 | 7.95 → 9.28 | 4.57% → 5.25% | 17.6% → 16.7% | 0.989 → 1.060 |
| 18 | 4,614 → 2,397 | 8.69 → 8.90 | 5.03% → 5.88% | 19.4% → 17.7% | 0.891 → 0.853 |
| 19 | 3,363 → 2,424 | 10.84 → 11.58 | 6.21% → 5.65% | 17.7% → 17.5% | 0.985 → 1.169 |
| 20 | 3,465 → 1,811 | 11.40 → 11.74 | 5.83% → 5.96% | 20.3% → 15.7% | 0.963 → 1.251 |
| 21 | 2,951 → 1,806 | 11.74 → 11.59 | 5.86% → 5.92% | 17.3% → 26.2% | 1.155 → 0.748 |
| 22 | 2,774 → 1,784 | 12.22 → 14.75 | 6.92% → 5.72% | 22.4% → 12.7% | 0.788 → 2.025 |
| 23 | 2,600 → 1,508 | 13.06 → 10.44 | 5.31% → 5.64% | 18.8% → 16.5% | 1.306 → 1.125 |
(i) The portfolio by country, 2026-08-09. On the report clock. Meta serves no hour x country grid, so each country cut is raked from its own Meta day onto UTC; our own columns were already there.
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $116.33 | 18.0% | 18,168 | $6.40 | 187 | $0.622 | $123.85 | 1.06 | 23 |
| US | $104.55 | 16.2% | 2,291 | $45.64 | 41 | $2.550 | $89.94 | 0.86 | 19 |
| GB | $29.68 | 4.6% | 944 | $31.43 | 21 | $1.413 | $48.41 | 1.63 | 3 |
| MX | $22.02 | 3.4% | 3,070 | $7.17 | 24 | $0.917 | $0.00 | 0.00 | 2 |
| DE | $18.49 | 2.9% | 451 | $41.00 | 12 | $1.541 | $37.95 | 2.05 | 2 |
| ID | $18.30 | 2.8% | 3,174 | $5.77 | 34 | $0.538 | $4.99 | 0.27 | 2 |
| AU | $16.71 | 2.6% | 506 | $33.04 | 14 | $1.194 | $5.61 | 0.34 | 1 |
| FR | $15.95 | 2.5% | 645 | $24.72 | 9 | $1.773 | $150.75 | 9.45 | 1 |
| TR | $15.66 | 2.4% | 1,138 | $13.76 | 27 | $0.580 | $5.89 | 0.38 | 1 |
| PH | $14.87 | 2.3% | 5,536 | $2.69 | 34 | $0.437 | $5.63 | 0.38 | 3 |
| AR | $13.99 | 2.2% | 1,179 | $11.86 | 21 | $0.666 | $0.00 | 0.00 | 2 |
| CA | $13.68 | 2.1% | 486 | $28.13 | 8 | $1.710 | $0.00 | 0.00 | 0 |
195 further countries are not listed, $244.29 between them (37.9% of this block).
Reconciliation, what is measured and what is fitted. Every per-country cell is an allocation across hours; every total is measured. B1 (UTC-7) $185.52 from Meta 2026-08-08 and $459.01 from Meta 2026-08-09, a measured UTC-day total of $644.53.
Absent from the table above, by name: Nomad Node, KBM1, HR1. Their spend is in every day-grain table; only their country split is missing.
(ii) The same cut per account, 2026-08-09.
B1
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $116.33 | 18.0% | 18,168 | $6.40 | 187 | $0.622 | $123.85 | 1.06 | 23 |
| US | $104.55 | 16.2% | 2,291 | $45.64 | 41 | $2.550 | $89.94 | 0.86 | 19 |
| GB | $29.68 | 4.6% | 944 | $31.43 | 21 | $1.413 | $48.41 | 1.63 | 3 |
| MX | $22.02 | 3.4% | 3,070 | $7.17 | 24 | $0.917 | $0.00 | 0.00 | 2 |
| DE | $18.49 | 2.9% | 451 | $41.00 | 12 | $1.541 | $37.95 | 2.05 | 2 |
| ID | $18.30 | 2.8% | 3,174 | $5.77 | 34 | $0.538 | $4.99 | 0.27 | 2 |
| AU | $16.71 | 2.6% | 506 | $33.04 | 14 | $1.194 | $5.61 | 0.34 | 1 |
| FR | $15.95 | 2.5% | 645 | $24.72 | 9 | $1.773 | $150.75 | 9.45 | 1 |
| TR | $15.66 | 2.4% | 1,138 | $13.76 | 27 | $0.580 | $5.89 | 0.38 | 1 |
| PH | $14.87 | 2.3% | 5,536 | $2.69 | 34 | $0.437 | $5.63 | 0.38 | 3 |
| AR | $13.99 | 2.2% | 1,179 | $11.86 | 21 | $0.666 | $0.00 | 0.00 | 2 |
| CA | $13.68 | 2.1% | 486 | $28.13 | 8 | $1.710 | $0.00 | 0.00 | 0 |
195 further countries are not listed, $244.29 between them (37.9% of this block).
Nomad Node — no country block: it delivered nothing on this day, a measured zero.
KBM1 — no country block: it delivered nothing on this day, a measured zero.
HR1 — no country block: it delivered nothing on this day, a measured zero.
The prior day, 2026-08-08, the same two tables.
(i) The portfolio by country, 2026-08-08. On the report clock. Meta serves no hour x country grid, so each country cut is raked from its own Meta day onto UTC; our own columns were already there.
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $137.84 | 18.5% | 23,932 | $5.76 | 248 | $0.556 | $142.38 | 1.03 | 19 |
| US | $120.41 | 16.2% | 2,822 | $42.67 | 70 | $1.720 | $348.80 | 2.90 | 18 |
| MX | $32.44 | 4.4% | 4,330 | $7.49 | 50 | $0.649 | $0.00 | 0.00 | 6 |
| GB | $27.58 | 3.7% | 944 | $29.21 | 25 | $1.103 | $28.74 | 1.04 | 4 |
| ID | $21.07 | 2.8% | 3,787 | $5.56 | 39 | $0.540 | $22.67 | 1.08 | 4 |
| PH | $20.69 | 2.8% | 6,361 | $3.25 | 54 | $0.383 | $3.35 | 0.16 | 4 |
| CA | $19.10 | 2.6% | 697 | $27.40 | 10 | $1.910 | $4.99 | 0.26 | 2 |
| AR | $18.82 | 2.5% | 1,504 | $12.51 | 30 | $0.627 | $0.00 | 0.00 | 1 |
| TR | $15.30 | 2.1% | 935 | $16.36 | 17 | $0.900 | $0.00 | 0.00 | 0 |
| IT | $13.97 | 1.9% | 818 | $17.07 | 20 | $0.699 | $48.90 | 3.50 | 3 |
| AU | $13.72 | 1.8% | 366 | $37.52 | 5 | $2.743 | $5.61 | 0.41 | 2 |
| DE | $12.75 | 1.7% | 286 | $44.61 | 6 | $2.125 | $41.43 | 3.25 | 2 |
194 further countries are not listed, $291.33 between them (39.1% of this block).
Reconciliation, what is measured and what is fitted. Every per-country cell is an allocation across hours; every total is measured. B1 (UTC-7) $164.26 from Meta 2026-08-07 and $580.76 from Meta 2026-08-08, a measured UTC-day total of $745.02.
Absent from the table above, by name: Nomad Node, KBM1, HR1. Their spend is in every day-grain table; only their country split is missing.
(ii) The same cut per account, 2026-08-08.
B1
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $137.84 | 18.5% | 23,932 | $5.76 | 248 | $0.556 | $142.38 | 1.03 | 19 |
| US | $120.41 | 16.2% | 2,822 | $42.67 | 70 | $1.720 | $348.80 | 2.90 | 18 |
| MX | $32.44 | 4.4% | 4,330 | $7.49 | 50 | $0.649 | $0.00 | 0.00 | 6 |
| GB | $27.58 | 3.7% | 944 | $29.21 | 25 | $1.103 | $28.74 | 1.04 | 4 |
| ID | $21.07 | 2.8% | 3,787 | $5.56 | 39 | $0.540 | $22.67 | 1.08 | 4 |
| PH | $20.69 | 2.8% | 6,361 | $3.25 | 54 | $0.383 | $3.35 | 0.16 | 4 |
| CA | $19.10 | 2.6% | 697 | $27.40 | 10 | $1.910 | $4.99 | 0.26 | 2 |
| AR | $18.82 | 2.5% | 1,504 | $12.51 | 30 | $0.627 | $0.00 | 0.00 | 1 |
| TR | $15.30 | 2.1% | 935 | $16.36 | 17 | $0.900 | $0.00 | 0.00 | 0 |
| IT | $13.97 | 1.9% | 818 | $17.07 | 20 | $0.699 | $48.90 | 3.50 | 3 |
| AU | $13.72 | 1.8% | 366 | $37.52 | 5 | $2.743 | $5.61 | 0.41 | 2 |
| DE | $12.75 | 1.7% | 286 | $44.61 | 6 | $2.125 | $41.43 | 3.25 | 2 |
194 further countries are not listed, $291.33 between them (39.1% of this block).
Nomad Node — no country block: it delivered nothing on this day, a measured zero.
KBM1 — no country block: it delivered nothing on this day, a measured zero.
HR1 — no country block: it delivered nothing on this day, a measured zero.
Pooled over the 24 hours both days delivered in, on the UTC clock. Meta's instrument on both sides of every ratio.
| spend | impressions | CPM | clicks | CTR | installs | click→install | CPI | |
|---|---|---|---|---|---|---|---|---|
| 2026-08-08 | $745.02 | 75,033 | 9.93 | 4,202 | 5.60% | 814 | 19.37% | $0.915 |
| 2026-08-09 | $644.53 | 62,523 | 10.31 | 3,342 | 5.35% | 636 | 19.03% | $1.013 |
Pooling weights hours by delivery, so it disagrees with the pairing here: the ten four-arm hours against twenty-four five-arm ones. Take the sign test.
The three measures, both days:
| measure | 2026-08-08 | 2026-08-09 | what it counts |
|---|---|---|---|
| booked | $1,695.44 (2.28) | $1,471.33 (2.28) | paid inside the day, any install day |
| within-day | $996.74 (1.34) | $688.38 (1.07) | installed that day and paid before midnight |
| cohort @ 24h | $1,163.66 (1.56), 100% covered | $959.51 (1.49), 100% covered | within 24 h of each person's own install |
Booked ROAS is identical on both days and says least. 2.28 against 2.28 hides within-day 1.34 → 1.07, on $262.16 (17.8%) inherited from 08-05 installs.
Booked revenue split by the UTC day its payer installed:
| installed | 2026-08-08 | 2026-08-09 |
|---|---|---|
| the day itself | $996.74 (58.8%) | $688.38 (46.8%) |
| one day earlier | $70.44 (4.2%) | $263.07 (17.9%) |
| two days earlier | $94.57 (5.6%) | $51.31 (3.5%) |
| three days earlier | $88.21 (5.2%) | $65.16 (4.4%) |
| four days earlier | $57.87 (3.4%) | $262.16 (17.8%) |
| five days earlier | $43.22 (2.5%) | $30.49 (2.1%) |
Mix-neutral account line. CPM $9.93 → $10.31 (+3.8%); on 2026-08-08's campaign mix, $10.31 (+3.8%). One campaign both days, so the move is inside the buying.
Delivery is Meta's instrument on both sides of every ratio; every revenue measure is ours. Cohort horizon H=24h. Report clock UTC. Rank on CPM, cost per click and CPI only — geography is the treatment across campaigns, which is what makes those comparable, while revenue still needs 16 payers (DECISION_LOG.md #37, #48).
| campaign | spend | share | impressions | impr share | CPM | clicks | CTR | cost/click | installs | CPI | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Worldwide | $644.53 | 100.0% | 62,523 | 100.0% | 10.31 | 3,342 | 5.35% | $0.193 | 636 | $1.013 | $688.38 | 1.07 | 34 |
Booking with no delivery, and excluded from every rate above: German (DE/AT) 0 installs (Meta), 1 registration (ours), $0.00 within-day; Earner (retired 08-03) 0 installs (Meta), 44 registrations (ours), $0.00 within-day. Meta stamps a conversion on the conversion hour, so a campaign switched off days ago still lands rows on today. Counted in, their installs would go into the account's CPI denominator against spend they did not incur and understate it.
No tab strip: one campaign delivered. Sections 2 to 4 are already its own battery, and section 6 goes below the campaign.
bailingxia_meituan_ww_cvr_260802 holds six ad sets and seven ads. Five ad sets carry one ad each. ww_broad_purchase_adv_d100_spill carries two, and they are a replacement pair: vid_ww_spill_8s_9x16_v1 has been off since 08-04 and its Copy is the arm. So the ad-set row is the ad row on this day and the rows below are labelled by asset.
ww_broad_purchase_adv_d100_mugshot has been off since 08-04 12:32 and spent nothing.
All five delivering ad sets sat at $150/day for the whole day. The campaign activity history over Aug 8 to Aug 10 holds no budget row at all, so budget regime E2-R6 runs unbroken to the test's own end.
Meta's instrument on both sides of every ratio. Our registrations never enter this table.
| asset | spend | impressions | CPM | clicks | CTR | installs | click→install | CPI |
|---|---|---|---|---|---|---|---|---|
E2/pool5 | $159.74 | 20,413 | 7.83 | 1,006 | 4.93% | 174 | 17.30% | $0.918 |
E2/bikini | $157.15 | 12,531 | 12.54 | 712 | 5.68% | 135 | 18.96% | $1.164 |
E2/lounge | $150.73 | 13,657 | 11.04 | 772 | 5.65% | 117 | 15.16% | $1.288 |
E2/bodysuit | $98.04 | 9,189 | 10.67 | 524 | 5.70% | 132 | 25.19% | $0.743 |
E2/spill2 | $78.87 | 6,733 | 11.71 | 328 | 4.87% | 78 | 23.78% | $1.011 |
E2/mugshot | $0.00 | 0 | — | 0 | — | 0 | — | — |
⚠ spill ran 14 of these 24 hours and bodysuit did not spend its budget. spill is stopped and its row is a partial day; it must not be ranked against the others on any per-day quantity. bodysuit was live for all 24 hours and its row is short for a different reason: on the account day the budget actually lives on, it spent $85.72 against $150.00, about 57%, with no cap reached and no change made to it. That is Meta's own pacing. It also bought better while doing it: held to shared hours on the account clock its click-to-install went 23.29% → 28.89%, +24.0% at p = 0.024, the only per-arm funnel move on the day that clears 0.05.
Ours on every column. Meta can express only booked, so it rides bracketed beside that column and never as a row. Payers are distinct people, never transactions. Cohort horizon H=24h, 100% covered on this day. Report clock UTC.
| asset | booked | bROAS (Meta) | within-day | wROAS | cohort@H | cROAS | payers | payer% | ARPU | ARPPU | largest payer |
|---|---|---|---|---|---|---|---|---|---|---|---|
E2/pool5 | $599.92 | 3.76 (3.72) | $366.05 | 2.29 | $406.22 | 2.54 | 14 | 7.4% | 1.937 | 26.15 | 28.6% |
E2/bikini | $127.71 | 0.81 (0.77) | $67.49 | 0.43 | $88.84 | 0.57 | 5 | 3.3% | 0.444 | 13.50 | 56.2% |
E2/lounge | $261.91 | 1.74 (1.96) | $198.91 | 1.32 | $228.22 | 1.51 | 6 | 5.0% | 1.658 | 33.15 | 75.8% |
E2/bodysuit | $282.78 | 2.88 (2.98) | $45.34 | 0.46 | $45.34 | 0.46 | 7 | 4.9% | 0.315 | 6.48 | 31.4% |
E2/spill2 | $88.38 | 1.12 (1.09) | $10.60 | 0.13 | $190.89 | 2.42 | 2 | 2.5% | 0.131 | 5.30 | 52.9% |
The 16-payer bar (#37): every row in this table is under it. Five arms, 2 to 14 payers, and lounge's 1.32 is 75.8% one person.
⚠ META-day cut, as section 3. Read for mix, never for level against tables A and B.
The last column is the share of that asset's own within-day revenue that came from the United States: where it far exceeds the US spend share, the return is a property of the geography the asset bought.
| asset | spend | India % | US % | other % | US % of its revenue |
|---|---|---|---|---|---|
E2/pool5 | $163.09 | 15.8% | 17.8% | 66.4% | 20.5% |
E2/bikini | $141.63 | 22.8% | 13.8% | 63.3% | 7.4% |
E2/lounge | $147.74 | 15.1% | 14.0% | 70.8% | 2.5% |
E2/bodysuit | $85.72 | 17.9% | 19.8% | 62.4% | 0.0% |
E2/spill2 | $42.26 | 16.6% | 15.5% | 67.8% | 47.1% |
No arm is buying a geography today. India runs 15.1% to 22.8%, the US 13.8% to 19.8%, tighter than any earlier day of this test.
The test compares five creatives with delivery forced equal by a person-level split, so that the disjoint-delivery failure that voided the previous generation cannot recur. Its pre-registered primary is payers per install at a 65% confidence bar, and it was scheduled to run 08-06 00:00 to 08-11 00:00 on the account clock.
What happened. At 06:12 on 08-09 Meta set vid_ww_spill_8s_9x16_v1 - Copy from Active to Not Approved, reason from the ad's own editor: "It looks like your ad helps arrange or encourage sexual activities. This goes against our Advertising Standards on Adult Sexual Solicitation and Sexually Explicit Language." The set stays on and spends nothing; the hourly export agrees to the hour, $0.98 on 126 impressions in hour 06.
The primary holds; maturity binds first. At the 08-10 cut installs matured only to 08-09 11:00 UTC, 2.2 hours before the 13:12 rejection.
⚠ The primary below is deliberately NOT re-cut, and must not be. This page's account-level cohort figures were re-cut on the later 2026-08-12 09:27 UTC payment cut, which is only a maturity change and costs nothing. The primary is different: at that later cut the maturity boundary falls after the 13:12 rejection, so spill would contribute installs from a window in which it had stopped delivering while the other four continued. That is precisely the asymmetry the paragraph above establishes the original cut avoids. The table below therefore stands at its pre-registered 2026-08-10 11:00 UTC cut, and the two cuts coexist on this page on purpose.
Primary, payers per install, four days, all five arms.
| arm | payers | installs | payers per install |
|---|---|---|---|
pool5 | 32 | 621 | 5.15% |
bodysuit | 36 | 704 | 5.11% |
lounge | 23 | 459 | 5.01% |
spill | 26 | 546 | 4.76% |
bikini | 17 | 577 | 2.95% |
Every arm clears the 16-payer bar, a first for this test. Three days ago the counts were 5 to 14; now 17 to 36.
Pairwise at the pre-registered bar, one-sided:
| comparison | confidence | p |
|---|---|---|
bodysuit over bikini | 97.4% | 0.026 |
pool5 over bikini | 97.3% | 0.027 |
lounge over bikini | 95.7% | 0.043 |
spill over bikini | 94.3% | 0.057 |
pool5 over spill | 62.0% | 0.380 |
bodysuit over spill | 61.2% | 0.388 |
lounge over spill | 57.2% | 0.428 |
pool5 over lounge | 54.2% | 0.458 |
bodysuit over lounge | 53.1% | 0.469 |
pool5 over bodysuit | 51.3% | 0.487 |
One arm separates, and downward. bikini is beaten by all four others, up from 88–96% yesterday, clearing the house 80% bar and the test's 65%.
The ranking still does not replicate, and four days is enough to stop asking.
| arm | 08-06 | 08-07 | 08-08 | 08-09 (11 h) |
|---|---|---|---|---|
bodysuit | 3.05% | 3.75% | 6.84% | 8.33% |
pool5 | 3.28% | 2.93% | 9.24% | 5.26% |
bikini | 3.11% | 2.81% | 3.37% | 1.67% |
spill | 4.76% | 5.29% | 3.93% | 5.66% |
lounge | 4.48% | 4.73% | 7.27% | 2.17% |
Four days, four different orderings. Spearman between days runs −0.10 to +0.70 with no pair above +0.70, and the only arm that holds a position is bikini, which is last on three days and fourth on the other. The standing open question was whether the payer ranking has any stable component; the answer is that it has exactly one, and it is the identity of the worst arm.
Cost per install replicates again, computed twice because the rejection sits inside its window. One number would charge spill for hours it could not buy.
Five arms, over the hours all five served (Meta 08-06 04:00 to 08-08 23:59, plus 08-09 hours 00-06):
| arm | installs | spend | cost per install |
|---|---|---|---|
bodysuit | 671 | $452.76 | $0.675 |
pool5 | 608 | $459.70 | $0.756 |
spill | 549 | $455.04 | $0.829 |
bikini | 542 | $460.00 | $0.849 |
lounge | 472 | $459.86 | $0.974 |
All ten pairs clear the 65% bar, nine of ten clear 94%, in the same order as the first three days: a fourth straight replication.
Four surviving arms, over the whole window including all of Meta 08-09:
| arm | installs | spend | cost per install |
|---|---|---|---|
bodysuit | 736 | $514.97 | $0.700 |
pool5 | 737 | $571.08 | $0.775 |
bikini | 637 | $558.62 | $0.877 |
lounge | 553 | $561.88 | $1.016 |
Six of six pairs clear the bar, at 97.5% and above. Removing spill changes nothing about the order of the four that remain, which is the check that its removal has not distorted the rest of the test.
DECISION_LOG.md #57 is dead three times over. Cost per install against payers per install reads +0.90 over two days, +0.10 over three, −0.60 over four.
The co-primary is uncomputable and passes as a validity check. Registrations are 101.1%–111.3% of Meta's installs across arms, so no Meta figure carries per-arm bias.
The account's pooled click-through rate has fallen every day since the split test began, and the previous report extrapolated an asymptote near 4%. The fourth day does not continue it.
| Meta day | reach | frequency | pooled CTR, all arms | pooled CTR, the four surviving arms | spill CTR |
|---|---|---|---|---|---|
| 08-05 (pre-test) | 46,284 | 1.23 | 8.73% | — | — |
| 08-06 | 44,191 | 1.58 | 7.24% | 7.04% | 8.38% |
| 08-07 | 49,549 | 1.53 | 6.05% | 5.86% | 7.03% |
| 08-08 | 50,831 | 1.50 | 5.37% | 5.24% | 5.99% |
| 08-09 | 38,632 | 1.48 | 5.52% | 5.58% | 4.77% |
The rise is not a composition artifact. The four-arm column steps −1.18, −0.62 and +0.34 points, and the removed arm was the highest-CTR one.
Frequency has fallen every day since 08-06 and is now 1.48, so fatigue was already excluded and stays excluded. What this settles is narrow and worth having: the decline is not a trend that can be extrapolated, and the 08-08 projection of an asymptote near 4% did not survive its first out-of-sample day. One day is one day; the series resumes tomorrow with the test's last day.
The cohort measure is comparable across these two days on the re-cut, and was not when this page first shipped. Both days are 100% covered at H=24 on the 2026-08-12 09:27 UTC payment cut; the first cut, 11 hours after the day closed, left 08-09 at 45% and the row was reported only for the record. A fixed horizon does not drift once covered — 08-09 moved from $865.47 to $959.51 as its coverage moved. Day-over-day claims still rest primarily on within-day, which is sealed at midnight and never moved at all.
The instrument gate passes at its upper edge. On the account's own clock our records read 1.04 and 1.06 of Meta's booked value. The band is 0.91 to 1.06 and 08-09 sits on the boundary. Worth watching; a single day at the edge of a band is not a drift.
Every per-asset revenue figure in section 6's table B is under the 16-payer bar. They are printed because the format requires the full table; none of them can be ranked. The split-test read is the only per-arm revenue claim in this report that clears the bar, and it does so by pooling four days.
spill's day-level rows are 14 of 24 UTC hours and must not be compared with the others' 24. This report never does. Where a spill number appears beside a full-day one, it is labelled.
bodysuit spent $98.04 of a $150 budget with no cap reached and no change made to it. Under-delivery inside an ad set is Meta's pacing decision. It matters here because the test's arms are budget-matched by construction, and a matched budget is not the same thing as matched realised spend. The cost-per-install tables above are computed on realised spend, so they are unaffected.
The France row is one basket and the largest payer of the day. Named in section 3 and excluded from any reading of country value.
Whether the payer ranking has any stable component beyond bikini. Four days, four orderings, and the test's fifth and last day will not change that. Answered: it does not. The next test should not carry payers per install as its primary at this account's install volume.
Whether the CTR floor is real. One upward step after three downward ones. The test's last day gives a fifth point on the four arms held constant, and that is the cheapest possible read on it.
What moved the payer rate account-wide on 08-08. Still open and still not answerable from the ad instruments. On the one basis both days can supply, within-day payers over our own registrations, the account reads 5.65% on 08-08 (51 of 902) and 4.64% on 08-09 (34 of 732), so the spike did not persist. That is consistent with the 07-28 break, which turned out to be one good day seen from the other side. The 08-08 report's headline for this, 3.84% to 5.99%, was a matured-cohort figure over matched hours; 08-09 could not supply it at 45% coverage when this page first shipped, and on the re-cut it now can, which makes the matured-cohort comparison worth redoing. The within-day figures above stand either way.
Whether the spill rejection is appealable, and whether it should be appealed. A Request review control sits on the ad. That is an outward-facing action on an identity-bound ad account, so it is not an agent's to take. It is worth deciding before 08-11, because an arm restored after the test ends is a different experiment.
Re-cut 2026-08-12 09:27 UTC. This page first shipped on a cut eleven hours after the day closed, when cohort at 24 hours stood at 45% and was reported only for the record. It is now complete and reads $959.51 at 1.49 against the $865.47 at 1.34 first published — the same cohort at fuller coverage, not a different measurement. Within-day did not move and cannot, and no delivery figure moved, so every day-over-day claim below stands as written. Section 6's split-test primary is deliberately left on the original cut and carries its own warning; the two cuts coexist on this page on purpose.
The test's own read-out is due at its 08-11 00:00 horizon, one day from this report. Four of its five arms run to that horizon unchanged and the fifth stops here. What this report hands forward:
bikini is worse than the other four at 94–97% confidence, and the other four are separated by nothing. The pre-registration's decision branches were: same-shot arms separate, iterate hooks; only mugshot separates, build a shot list; spill wins, copy the competitor's shape; nothing separates, the loss is after the install. spill does not win: it is fourth of five and indistinguishable from second. The branch that fires is cut bikini, and among the same-shot trio the separation is entirely bikini being 42% below the other two, with bodysuit at 5.11% and pool5 at 5.15% sitting on top of each other.spill is the asset copied from the competitor's only profitable creative, and it is the one Meta rejected for adult sexual solicitation. Whatever the next batch does with that shape, the rejection is a cost of running it.bodysuit is the arm to build the next batch around on cost, and nothing separates it from pool5 on revenue. $0.675 and $0.756 per install, 5.11% and 5.15% payers per install.Window: UTC 2026-08-09, against UTC 2026-08-08. The report clock is UTC and a UTC day is stitched from two of the ad account's own UTC-7 days, so each report day needs the previous account day's hourly export as well as its own.
Payment cut 2026-08-12 09:27 UTC for every account-level and per-asset figure on this page: cohort horizon H=24, 100% covered on both days. This page first shipped on a 2026-08-10 11:00 UTC cut where 08-09 stood at 45%; within-day and every delivery figure are unchanged by the re-cut, because within-day is sealed and the account day's export had already settled. Section 6's split-test primary is the one exception and stays on the original 11:00 UTC cut — see the warning above it.
Exports, all pulled 2026-08-10 04:19–04:22 PT after the account day closed:
| file | what | range |
|---|---|---|
exports/ads_hourly_aug9_settled.csv | ads × hour | Meta day 2026-08-09, 24 buckets, 111 rows |
exports/ads_day_jul1_aug10.csv | ads × day | 2026-07-01 → 2026-08-10, 6,191 rows |
exports/ads_country_day_jul1_aug10.csv | ads × country × day | 2026-07-14 → 2026-08-10, 9,529 rows |
Our own records come from the two Lum Telegram channels, exported on the laptop 2026-08-10 04:27 and 04:29 PT and parsed with ad_ops/lum_notifications/parse_export.py: 18,102 registrations and 2,087 payments, 15 of which have no matching registration. The parser corrected 58,284 timestamps for Telegram's fixed-offset bug.
R=_runs/2026-08-10_0809_daily
python -m ad_ops.measures --config $R/run_config.json --day 2026-08-09 --prev 2026-08-08
python -m ad_ops.measures --config $R/run_config_meta.json --day 2026-08-09 --prev 2026-08-08
python -m ad_ops.day_compare --config $R/run_config.json --today 2026-08-09 --prev 2026-08-08 --h 6
python -m ad_ops.cohort_arpu --config $R/run_config.json --days 2026-08-05,…,2026-08-09
python -m ad_ops.asset_estimator hourly --campaign bailingxia_meituan_ww_cvr_260802 --horizon 24 …
python -m ad_ops.report_tables --config $R/run_config.json --day 2026-08-09 --prev 2026-08-08
python -m ad_ops.report_charts --config $R/run_config.json --day 2026-08-09 --prev 2026-08-08 \
--days 2026-08-06,…,2026-08-09 --out ad_ops/figures/2026-08-09
python $R/e2_65pct.py
The instrument gate is run on the account's own clock, never on UTC, because Meta stamps conversion value on the conversion hour and that is the one column an hourly export cannot restitch.
The rejection's timestamp and reason are read from Ads Manager: the campaign activity history at manage/campaigns/history with the range asserted as Aug 8, 2026 – Aug 10, 2026, and the ad's own standalone editor.
The report clock. A report day is a UTC day, because Adjust reports in UTC and a UTC-bucketed report lines up with the attribution dashboard with nothing to convert. The ad account is fixed at UTC-7, so a UTC day is the account's previous day from 17:00 plus its own day to 16:59. The two clocks are not close: on a comparable day the same figures differ by 15% on spend and 40% on within-day revenue depending on which one is used.
Three things the clock does not reach, each labelled where it appears. Table C's per-asset country mix cannot follow it: the rake is per ACCOUNT, against that account's own hourly margin, and an asset has no hourly margin of its own. The instrument check is invalid off the account clock, because conversion value sits on the conversion hour. The estimator runs on the account clock deliberately, since budget regimes are wall-clock events on it.
The three revenue measures. Never one, never mixed, always labelled.
| measure | counts | moves after the day closes? |
|---|---|---|
| booked | revenue that arrived inside the day, whatever day its payer installed | settles about four hours after midnight, then fixed. Meta's own number is this basis |
| within-day | installed that day and paid before that day closed | never. Sealed at midnight |
| cohort at H | that day's installs, counted within H hours of each person's own install, house horizon H=24 | rises until every install has lived H hours, then frozen. Coverage is always stated |
Within-day is the one to use for day-over-day, because it is immutable and needs no horizon. Booked is reported to explain the gap and never to rank. Cohort at H is the hour-neutral cross-check and is only comparable when both days are covered, which on this pair they are not.
One instrument, and Meta rides in a bracket. All three measures are read on our own payment records. Meta can express only booked, so it appears bracketed beside that column and never as a row of its own. Quoting Meta's booked against our within-day mixes instruments and puts part of the 0.91–1.06 instrument difference into what reads as a result.
Two install counts exist and they are never crossed. Meta's attributed installs drive the delivery funnel, so cost per install and click-to-install have Meta on both sides. Our registrations drive payer rate and every revenue measure, so the payers and the installs they came from are the same population.
Regime. A stretch over which an ad set's daily budget did not change. It matters because the budget dial selects the country mix on this account, so two creatives measured across a budget change are compared on different audiences. This day sits entirely inside E2-R6, $150/day on every delivering arm, which began 08-06 04:05 and runs to the test's end.
The 16-payer bar. Below roughly 16 payers a revenue figure is a direction and not a magnitude. Revenue per install on this account has a coefficient of variation near 7, so separating two creatives by 20% on it needs sample sizes this account does not produce inside a five-day test.