Two Meta ad accounts bought this app on this day, for the first time: B1, ours, spent $871.73 of a $903.50 portfolio, 96% of it, and the shared Nomad Node accounts spent the remaining $31.77, on their own first day of buying. B1 got 932 installs at $0.935, against $544.17 and 519 at $1.048 the day before; its booked revenue was $1,376.40, down 7.2%, while within-day more than doubled to $665.73. Our records read 1.07 of Meta's booked value on B1's own clock, which is outside the documented 0.91–1.06 band for the first time. Two things make this day unlike the ten before it: the five-cell split test reached its horizon at 07:00 UTC, and at 20:22 UTC B1 was cut to a single arm at three times the budget. Definitions, the report clock and the three revenue measures are in the appendix.
Every row below is B1's, summed over its delivering campaigns; the portfolio sits under the table and section 2 splits it. One retired campaign booked registrations on no spend and is excluded here and named in section 6, because counting it would put installs into a cost-per-install denominator against spend that was never incurred.
| 2026-08-10 | 2026-08-11 | move | |
|---|---|---|---|
| spend | $544.17 | $871.73 | +60.2% |
| impressions | 53,884 | 81,768 | +51.7% |
| CPM | $10.10 | $10.66 | +5.6% |
| clicks | 2,918 | 5,320 | +82.3% |
| CTR | 5.42% | 6.51% | +20.1% |
| installs (Meta) | 519 | 932 | +79.6% |
| click→install | 17.79% | 17.52% | −1.5% |
| CPI | $1.048 | $0.935 | −10.8% |
| booked (Meta) | $1,483.31 (2.73) | $1,376.40 (1.58) | −7.2% |
| within-day | $308.60 (0.57) | $665.73 (0.76) | +115.7% |
| cohort @ 24h | $343.11 (0.63) at 100% | $771.56 (0.89) at 71% | at 71% coverage — completed figure in Caveats |
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.6677 | $1.1136 | $1.5582 | $13.33 | $19.34 | $26.67 | 1,198 |
Account spend split. B1 was the whole $544.17 on 2026-08-10; on 2026-08-11 it took $871.73 (96%) against Nomad Node's $31.77 (4%), $903.50 between them.
Campaign spend split inside B1. Worldwide $544.17 (100.0%) → $871.73 (100.0%); German $0.00 on both days.
A second buy opened, at 4% of the money. The shared Nomad Node accounts spent $31.77 against B1's $871.73, their first day.
Bought more and cheaper. Spend +60.2%, installs +79.6%, CPI −10.8%. The gain is above the click — CTR +20.1%, click-to-install flat, impressions 5.6% dearer.
The doubling decomposes cleanly; no factor carries it alone. Registrations ×1.83, payer rate 3.54% → 4.48%, ARPPU $14.03 → $13.05, multiplying to 2.156 against 2.157.
Only pool5 clears the 16-payer bar, so it holds the page's only readable revenue magnitude. 25 payers, 8.3%, within-day return 1.71, largest payer 22.6%.
B1 is ours (act 1738541847343652, campaigns bailingxia_). Nomad Node is the shared pair, 835434076171203 and 3267486106793669; only their 0811_ campaigns buy this app, and their greenvid and pixvoo campaigns are excluded here. 2026-08-11 is the shared accounts' first day of buying.
The shared accounts' export carries no clicks, no leads, no country and no Ad ID. Their column preset differs and we do not control it. So the install column and cost per install below are our own registrations on both accounts, which is the only instrument both sides can supply, and there is no click-through, cost-per-click or click-to-install column at this level. It is also why the hourly funnel, the country cut and every per-asset table in sections 3 to 7 exist for B1 alone, and why the shared side cannot be split by campaign, creative or geography at all.
DNU is our own registrations on the day. Spend, impressions and CPM are Meta's on both accounts.
| account | spend | share | impressions | CPM | DNU | CPI | payers | payer% |
|---|---|---|---|---|---|---|---|---|
| B1 (ours) | $871.73 | 96% | 81,768 | $10.66 | 1,191 | $0.732 | 125 | 10.5% |
| Nomad Node (shared) | $31.77 | 4% | 4,215 | $7.54 | 90 | $0.353 | 1 | 1.1% |
| Portfolio | $903.50 | 100% | 85,983 | $10.51 | 1,281 | $0.705 | 126 | 9.8% |
Every revenue column is ours. Meta can express only booked, and booked is the one measure these two rows may not be ranked on.
| account | booked | bROAS | within-day | wROAS | cohort@24h | cROAS | ARPU | ARPPU |
|---|---|---|---|---|---|---|---|---|
| B1 (ours) | $1,431.37 | 1.64 | $681.83 | 0.78 | $787.66 | 0.90 | $1.202 | $11.45 |
| Nomad Node (shared) | $41.35 | 1.30 | $41.35 | 1.30 | $41.35 | 1.30 | $0.459 | $41.35 |
| Portfolio | $1,472.73 | 1.63 | $723.18 | 0.80 | $829.01 | 0.92 | $1.150 | $11.69 |
Day one for the shared buy, so its three measures are the same $41.35. B1's $1,431.37, $681.83 and $787.66 spread by weeks of inherited cohort.
Rank the two accounts on within-day or cohort@24h, never on booked. B1's 1.64 against 1.30 says how old the two buys are.
One payer, so no revenue figure on the shared side is readable. Its 1.30 everywhere, $41.35 ARPPU and 1.1% payer rate are one person's basket.
The delivery columns are the readable half, and they run the other way. Impressions $7.54 against B1's $10.66, registrations $0.353 against $0.732.
B1 only. 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. It is 100% through hour 14, 97% at hour 15 and zero from hour 16, because the payment cut is 15:59 on 08-12 and an install has to live a full day before it counts.
| 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 | $19.90 | 1786 | 11.14 | 89 | 4.98% | 12 | 13.5% | $1.658 | 11 | 100% | $80.74 | 4.06 | 3 | $79.78 | 4.01 | 2 | 7.253 | 39.89 | $79.78 | 4.01 | 2 | 7.253 | 39.89 |
| 1 | $26.61 | 2038 | 13.06 | 95 | 4.66% | 12 | 12.6% | $2.217 | 17 | 100% | $12.34 | 0.46 | 3 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $0.00 | 0.00 | 0 | 0.000 | 0.00 |
| 2 | $22.72 | 1891 | 12.01 | 86 | 4.55% | 22 | 25.6% | $1.033 | 26 | 100% | $31.82 | 1.40 | 7 | $14.32 | 0.63 | 2 | 0.551 | 7.16 | $14.32 | 0.63 | 2 | 0.551 | 7.16 |
| 3 | $26.06 | 2031 | 12.83 | 137 | 6.75% | 16 | 11.7% | $1.629 | 20 | 100% | $14.30 | 0.55 | 3 | $11.10 | 0.43 | 2 | 0.555 | 5.55 | $11.10 | 0.43 | 2 | 0.555 | 5.55 |
| 4 | $24.79 | 2145 | 11.56 | 110 | 5.13% | 23 | 20.9% | $1.078 | 28 | 100% | $24.78 | 1.00 | 6 | $6.12 | 0.25 | 1 | 0.219 | 6.12 | $6.12 | 0.25 | 1 | 0.219 | 6.12 |
| 5 | $24.72 | 2443 | 10.12 | 116 | 4.75% | 26 | 22.4% | $0.951 | 32 | 100% | $30.91 | 1.25 | 3 | $10.11 | 0.41 | 1 | 0.316 | 10.11 | $10.11 | 0.41 | 1 | 0.316 | 10.11 |
| 6 | $30.17 | 2380 | 12.68 | 115 | 4.83% | 22 | 19.1% | $1.371 | 24 | 100% | $18.21 | 0.60 | 3 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $9.30 | 0.31 | 2 | 0.388 | 4.65 |
| 7 | $85.87 | 7944 | 10.81 | 601 | 7.57% | 93 | 15.5% | $0.923 | 116 | 100% | $27.57 | 0.32 | 5 | $108.26 | 1.26 | 5 | 0.933 | 21.65 | $136.20 | 1.59 | 5 | 1.174 | 27.24 |
| 8 | $66.70 | 7266 | 9.18 | 478 | 6.58% | 79 | 16.5% | $0.844 | 87 | 100% | $206.88 | 3.10 | 11 | $116.40 | 1.75 | 6 | 1.338 | 19.40 | $116.40 | 1.75 | 6 | 1.338 | 19.40 |
| 9 | $62.42 | 6750 | 9.25 | 416 | 6.16% | 71 | 17.1% | $0.879 | 86 | 100% | $57.17 | 0.92 | 11 | $31.45 | 0.50 | 3 | 0.366 | 10.48 | $31.45 | 0.50 | 3 | 0.366 | 10.48 |
| 10 | $56.36 | 5861 | 9.62 | 352 | 6.01% | 61 | 17.3% | $0.924 | 79 | 100% | $38.72 | 0.69 | 6 | $11.39 | 0.20 | 2 | 0.144 | 5.70 | $11.39 | 0.20 | 2 | 0.144 | 5.70 |
| 11 | $47.73 | 4866 | 9.81 | 318 | 6.54% | 44 | 13.8% | $1.085 | 55 | 100% | $56.91 | 1.19 | 5 | $16.73 | 0.35 | 2 | 0.304 | 8.36 | $16.73 | 0.35 | 2 | 0.304 | 8.36 |
| 12 | $41.06 | 3994 | 10.28 | 286 | 7.16% | 45 | 15.7% | $0.912 | 57 | 100% | $23.21 | 0.57 | 5 | $17.07 | 0.42 | 3 | 0.299 | 5.69 | $20.13 | 0.49 | 4 | 0.353 | 5.03 |
| 13 | $34.47 | 3349 | 10.29 | 229 | 6.84% | 37 | 16.2% | $0.932 | 53 | 100% | $59.71 | 1.73 | 6 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $0.00 | 0.00 | 0 | 0.000 | 0.00 |
| 14 | $38.53 | 3042 | 12.67 | 239 | 7.86% | 43 | 18.0% | $0.896 | 48 | 100% | $52.34 | 1.36 | 8 | $42.67 | 1.11 | 2 | 0.889 | 21.33 | $48.71 | 1.26 | 3 | 1.015 | 16.24 |
| 15 | $48.30 | 4114 | 11.74 | 302 | 7.34% | 57 | 18.9% | $0.847 | 70 | 97% | $66.60 | 1.38 | 11 | $4.99 | 0.10 | 1 | 0.071 | 4.99 | $4.99 | 0.10 | 1 | 0.071 | 4.99 |
| 16 | $44.42 | 4704 | 9.44 | 318 | 6.76% | 61 | 19.2% | $0.728 | 74 | 0% | $64.34 | 1.45 | 7 | $14.65 | 0.33 | 2 | 0.198 | 7.32 | $24.53 | 0.55 | 2 | 0.331 | 12.27 |
| 17 | $39.29 | 4455 | 8.82 | 307 | 6.89% | 47 | 15.3% | $0.836 | 65 | 0% | $85.18 | 2.17 | 11 | $29.50 | 0.75 | 3 | 0.454 | 9.83 | $38.05 | 0.97 | 4 | 0.585 | 9.51 |
| 18 | $39.34 | 3850 | 10.22 | 246 | 6.39% | 48 | 19.5% | $0.820 | 52 | 0% | $112.70 | 2.86 | 11 | $58.87 | 1.50 | 4 | 1.132 | 14.72 | $58.87 | 1.50 | 4 | 1.132 | 14.72 |
| 19 | $30.09 | 2971 | 10.13 | 180 | 6.06% | 39 | 21.7% | $0.772 | 45 | 0% | $79.78 | 2.65 | 7 | $48.62 | 1.62 | 3 | 1.080 | 16.21 | $55.52 | 1.85 | 5 | 1.234 | 11.10 |
| 20 | $15.62 | 1461 | 10.69 | 107 | 7.32% | 24 | 22.4% | $0.651 | 25 | 0% | $56.93 | 3.64 | 4 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $0.00 | 0.00 | 0 | 0.000 | 0.00 |
| 21 | $18.54 | 899 | 20.62 | 74 | 8.23% | 20 | 27.0% | $0.927 | 28 | 0% | $86.64 | 4.67 | 6 | $15.34 | 0.83 | 3 | 0.548 | 5.11 | $15.34 | 0.83 | 3 | 0.548 | 5.11 |
| 22 | $14.95 | 713 | 20.97 | 51 | 7.15% | 15 | 29.4% | $0.997 | 21 | 0% | $25.56 | 1.71 | 4 | $0.00 | 0.00 | 0 | 0.000 | 0.00 | $0.00 | 0.00 | 0 | 0.000 | 0.00 |
| 23 | $13.07 | 815 | 16.04 | 68 | 8.34% | 15 | 22.1% | $0.871 | 19 | 0% | $63.06 | 4.82 | 8 | $28.35 | 2.17 | 4 | 1.492 | 7.09 | $62.50 | 4.78 | 5 | 3.289 | 12.50 |
| ALL | $871.73 | 81768 | 10.66 | 5320 | 6.51% | 932 | 17.5% | $0.935 | 1138 | 71% | $1376.40 | 1.58 | 154 | $665.73 | 0.76 | 51 | 0.585 | 13.05 | $771.56 | 0.89 | 59 | 0.678 | 13.08 |
The test's horizon at 07:00 is the day's largest delivery step. Impressions 2,380 → 7,944 on an unchanged budget: 3.34× prior hour, 3.7× prior day.
The account-day rollover falls on the same hour. Four fresh $150 budgets unlock at 07:00 UTC; hours 00–06 average $25.00, hours 07–16 $52.59.
One ad set buys dearer than four — auction overlap in reverse. From hour 21, CPM $20.62, $20.97 and $16.04 against $10.66; the afternoon ran 2,971 to 4,704 impressions an hour.
The widest revenue base yet: 51 payers over 19 hours. Top two hours hold $116.40 and $108.26 of $665.73, 33.7% against 08-10's 47.0%.
Counting which way each shared hour points, which needs no weighting and asks only for a direction:
| metric | hours 2026-08-11 ran higher | hours it ran lower | sign test |
|---|---|---|---|
| CPM | 17 of 24 | 7 of 24 | p = 0.064 |
| CTR | 19 of 24 | 5 of 24 | p = 0.007 |
| click→install | 11 of 24 | 13 of 24 | p = 0.839 |
| CPI | 9 of 24 | 15 of 24 | p = 0.307 |
A sign test throws magnitude away and buys weight-free direction with it.
Every shared hour, 2026-08-10 → 2026-08-11. 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,482 → 1,786 | 9.23 → 11.14 | 5.67% → 4.98% | 14.3% → 13.5% | 1.140 → 1.658 |
| 01 | 1,820 → 2,038 | 8.59 → 13.06 | 5.55% → 4.66% | 17.8% → 12.6% | 0.869 → 2.217 |
| 02 | 1,781 → 1,891 | 8.98 → 12.01 | 5.22% → 4.55% | 18.3% → 25.6% | 0.941 → 1.033 |
| 03 | 1,920 → 2,031 | 10.58 → 12.83 | 5.21% → 6.75% | 24.0% → 11.7% | 0.846 → 1.629 |
| 04 | 2,108 → 2,145 | 8.83 → 11.56 | 5.08% → 5.13% | 17.8% → 20.9% | 0.980 → 1.078 |
| 05 | 2,183 → 2,443 | 8.35 → 10.12 | 5.77% → 4.75% | 16.7% → 22.4% | 0.868 → 0.951 |
| 06 | 2,387 → 2,380 | 7.95 → 12.68 | 5.36% → 4.83% | 17.2% → 19.1% | 0.862 → 1.371 |
| 07 | 2,138 → 7,944 | 10.02 → 10.81 | 5.57% → 7.57% | 17.6% → 15.5% | 1.020 → 0.923 |
| 08 | 2,123 → 7,266 | 8.87 → 9.18 | 5.13% → 6.58% | 20.2% → 16.5% | 0.856 → 0.844 |
| 09 | 1,995 → 6,750 | 9.62 → 9.25 | 5.86% → 6.16% | 13.7% → 17.1% | 1.199 → 0.879 |
| 10 | 2,443 → 5,861 | 10.68 → 9.62 | 5.28% → 6.01% | 17.8% → 17.3% | 1.134 → 0.924 |
| 11 | 2,107 → 4,866 | 9.76 → 9.81 | 5.41% → 6.54% | 18.4% → 13.8% | 0.980 → 1.085 |
| 12 | 2,119 → 3,994 | 10.02 → 10.28 | 5.85% → 7.16% | 17.7% → 15.7% | 0.965 → 0.912 |
| 13 | 2,229 → 3,349 | 9.37 → 10.29 | 5.88% → 6.84% | 17.6% → 16.2% | 0.908 → 0.932 |
| 14 | 1,844 → 3,042 | 12.73 → 12.67 | 5.75% → 7.86% | 16.0% → 18.0% | 1.381 → 0.896 |
| 15 | 3,102 → 4,114 | 10.11 → 11.74 | 5.29% → 7.34% | 15.2% → 18.9% | 1.255 → 0.847 |
| 16 | 3,674 → 4,704 | 9.63 → 9.44 | 4.33% → 6.76% | 20.8% → 19.2% | 1.072 → 0.728 |
| 17 | 3,576 → 4,455 | 9.28 → 8.82 | 4.84% → 6.89% | 18.5% → 15.3% | 1.038 → 0.836 |
| 18 | 3,093 → 3,850 | 10.10 → 10.22 | 5.37% → 6.39% | 15.7% → 19.5% | 1.202 → 0.820 |
| 19 | 2,599 → 2,971 | 11.05 → 10.13 | 5.73% → 6.06% | 16.1% → 21.7% | 1.196 → 0.772 |
| 20 | 2,027 → 1,461 | 12.59 → 10.69 | 6.02% → 7.32% | 24.6% → 22.4% | 0.851 → 0.651 |
| 21 | 1,895 → 899 | 12.93 → 20.62 | 5.86% → 8.23% | 17.1% → 27.0% | 1.290 → 0.927 |
| 22 | 1,541 → 713 | 13.18 → 20.97 | 5.91% → 7.15% | 12.1% → 29.4% | 1.846 → 0.997 |
| 23 | 1,698 → 815 | 12.26 → 16.04 | 5.59% → 8.34% | 22.1% → 22.1% | 0.991 → 0.871 |
(i) The portfolio by country, 2026-08-11. 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 | $232.45 | 26.7% | 30,736 | $7.56 | 395 | $0.588 | $119.03 | 0.51 | 30 |
| US | $116.80 | 13.4% | 2,174 | $53.72 | 56 | $2.086 | $124.75 | 1.07 | 16 |
| GB | $37.99 | 4.4% | 1,204 | $31.57 | 34 | $1.117 | $85.36 | 2.25 | 5 |
| ID | $29.60 | 3.4% | 4,791 | $6.18 | 84 | $0.352 | $0.00 | 0.00 | 2 |
| MX | $25.98 | 3.0% | 2,864 | $9.07 | 46 | $0.565 | $5.71 | 0.22 | 5 |
| MY | $21.06 | 2.4% | 2,559 | $8.23 | 32 | $0.658 | $8.56 | 0.41 | 3 |
| TR | $20.29 | 2.3% | 1,006 | $20.17 | 25 | $0.812 | $5.89 | 0.29 | 1 |
| PH | $19.66 | 2.3% | 6,874 | $2.86 | 78 | $0.252 | $5.63 | 0.29 | 3 |
| AR | $19.62 | 2.3% | 1,052 | $18.64 | 21 | $0.934 | $4.99 | 0.25 | 4 |
| DE | $18.66 | 2.1% | 385 | $48.47 | 19 | $0.982 | $20.79 | 1.11 | 6 |
| FR | $17.17 | 2.0% | 654 | $26.26 | 11 | $1.561 | $0.00 | 0.00 | 2 |
| AU | $16.01 | 1.8% | 487 | $32.88 | 8 | $2.002 | $8.90 | 0.56 | 3 |
183 further countries are not listed, $296.44 between them (34.0% 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) $174.97 from Meta 2026-08-10 and $696.76 from Meta 2026-08-11, a measured UTC-day total of $871.73.
Absent from the table above, by name: KBM1, HR1. Their spend is in every day-grain table; only their country split is missing.
(ii) The same cut per account, 2026-08-11.
B1
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $232.45 | 26.7% | 30,736 | $7.56 | 365 | $0.637 | $77.68 | 0.33 | 29 |
| US | $116.80 | 13.4% | 2,174 | $53.72 | 55 | $2.124 | $124.75 | 1.07 | 16 |
| GB | $37.99 | 4.4% | 1,204 | $31.57 | 33 | $1.151 | $85.36 | 2.25 | 5 |
| ID | $29.60 | 3.4% | 4,791 | $6.18 | 71 | $0.417 | $0.00 | 0.00 | 2 |
| MX | $25.98 | 3.0% | 2,864 | $9.07 | 42 | $0.619 | $5.71 | 0.22 | 5 |
| MY | $21.06 | 2.4% | 2,559 | $8.23 | 32 | $0.658 | $8.56 | 0.41 | 3 |
| TR | $20.29 | 2.3% | 1,006 | $20.17 | 25 | $0.812 | $5.89 | 0.29 | 1 |
| PH | $19.66 | 2.3% | 6,874 | $2.86 | 74 | $0.266 | $5.63 | 0.29 | 3 |
| AR | $19.62 | 2.3% | 1,052 | $18.64 | 21 | $0.934 | $4.99 | 0.25 | 4 |
| DE | $18.66 | 2.1% | 385 | $48.47 | 19 | $0.982 | $20.79 | 1.11 | 6 |
| FR | $17.17 | 2.0% | 654 | $26.26 | 11 | $1.561 | $0.00 | 0.00 | 2 |
| AU | $16.01 | 1.8% | 487 | $32.88 | 8 | $2.002 | $8.90 | 0.56 | 3 |
182 further countries are not listed, $296.44 between them (34.0% of this block).
Nomad Node
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| BE | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| BR | $0.00 | 0.0% | 0 | — | 8 | $0.000 | $0.00 | — | 0 |
| CL | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| CZ | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| ES | $0.00 | 0.0% | 0 | — | 2 | $0.000 | $0.00 | — | 0 |
| GB | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| GF | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| HN | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| HR | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| ID | $0.00 | 0.0% | 0 | — | 13 | $0.000 | $0.00 | — | 0 |
| IN | $0.00 | 0.0% | 0 | — | 30 | $0.000 | $41.35 | — | 1 |
| IQ | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
15 further countries are not listed, $0.00 between them (0.0% of this block).
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-10, the same two tables.
(i) The portfolio by country, 2026-08-10. 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 | $109.08 | 20.0% | 16,512 | $6.61 | 147 | $0.742 | $57.37 | 0.53 | 21 |
| US | $75.82 | 13.9% | 1,763 | $43.00 | 30 | $2.527 | $0.00 | 0.00 | 6 |
| GB | $28.07 | 5.2% | 700 | $40.11 | 12 | $2.339 | $0.00 | 0.00 | 3 |
| MX | $24.75 | 4.5% | 2,935 | $8.43 | 30 | $0.825 | $0.00 | 0.00 | 5 |
| ID | $19.23 | 3.5% | 2,789 | $6.89 | 35 | $0.549 | $4.99 | 0.26 | 2 |
| DE | $14.57 | 2.7% | 344 | $42.36 | 10 | $1.457 | $0.00 | 0.00 | 3 |
| AR | $14.38 | 2.6% | 990 | $14.52 | 18 | $0.799 | $4.99 | 0.35 | 2 |
| PH | $12.71 | 2.3% | 4,680 | $2.72 | 44 | $0.289 | $0.00 | 0.00 | 0 |
| MY | $12.29 | 2.3% | 1,533 | $8.02 | 18 | $0.683 | $28.87 | 2.35 | 1 |
| TR | $11.58 | 2.1% | 783 | $14.79 | 13 | $0.891 | $0.00 | 0.00 | 0 |
| AU | $11.53 | 2.1% | 266 | $43.29 | 4 | $2.882 | $5.61 | 0.49 | 1 |
| IT | $10.65 | 2.0% | 630 | $16.90 | 18 | $0.591 | $42.58 | 4.00 | 3 |
183 further countries are not listed, $199.51 between them (36.7% 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) $121.43 from Meta 2026-08-09 and $422.74 from Meta 2026-08-10, a measured UTC-day total of $544.17.
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-10.
B1
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $109.08 | 20.0% | 16,512 | $6.61 | 147 | $0.742 | $57.37 | 0.53 | 21 |
| US | $75.82 | 13.9% | 1,763 | $43.00 | 30 | $2.527 | $0.00 | 0.00 | 6 |
| GB | $28.07 | 5.2% | 700 | $40.11 | 12 | $2.339 | $0.00 | 0.00 | 3 |
| MX | $24.75 | 4.5% | 2,935 | $8.43 | 30 | $0.825 | $0.00 | 0.00 | 5 |
| ID | $19.23 | 3.5% | 2,789 | $6.89 | 35 | $0.549 | $4.99 | 0.26 | 2 |
| DE | $14.57 | 2.7% | 344 | $42.36 | 10 | $1.457 | $0.00 | 0.00 | 3 |
| AR | $14.38 | 2.6% | 990 | $14.52 | 18 | $0.799 | $4.99 | 0.35 | 2 |
| PH | $12.71 | 2.3% | 4,680 | $2.72 | 44 | $0.289 | $0.00 | 0.00 | 0 |
| MY | $12.29 | 2.3% | 1,533 | $8.02 | 18 | $0.683 | $28.87 | 2.35 | 1 |
| TR | $11.58 | 2.1% | 783 | $14.79 | 13 | $0.891 | $0.00 | 0.00 | 0 |
| AU | $11.53 | 2.1% | 266 | $43.29 | 4 | $2.882 | $5.61 | 0.49 | 1 |
| IT | $10.65 | 2.0% | 630 | $16.90 | 18 | $0.591 | $42.58 | 4.00 | 3 |
183 further countries are not listed, $199.51 between them (36.7% 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.
B1 only, 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-10 | $544.17 | 53,884 | 10.10 | 2,918 | 5.42% | 519 | 17.79% | $1.048 |
| 2026-08-11 | $871.73 | 81,768 | 10.66 | 5,320 | 6.51% | 932 | 17.52% | $0.935 |
Pooling across hours weights each hour by its delivery, so where it disagrees with the hourly pairing, the mix moved.
The three measures side by side:
| measure | 2026-08-10 | 2026-08-11 | comparable? |
|---|---|---|---|
| booked | $1,483.31 (2.73) | $1,376.40 (1.58) | yes, but it is mostly not this day's cohort |
| within-day | $308.60 (0.57) | $665.73 (0.76) | yes — sealed on both days |
| cohort @ 24h | $343.11 (0.63) at 100% | $771.56 (0.89) at 71% | no |
The cohort row is barred in the flattering direction. At 71% coverage 08-11 reads 0.89 against 08-10's complete 0.63 — maturity, not the day.
Booked fell while within-day doubled: the inherited share fell. 08-10 inherited 79.2%, 08-11 51.6% — the shape of buying 80% more installs.
Booked revenue split by the UTC day its payer installed:
Rows are absolute install days, so the same cohort sits on the same row in both columns. The bolded cell in each column is that column's own day, and it is the same number as within-day.
| installed | 2026-08-10 | 2026-08-11 |
|---|---|---|
| 2026-08-11 | — | $665.73 (48.4%) |
| 2026-08-10 | $308.60 (20.8%) | $107.42 (7.8%) |
| 2026-08-09 | $285.36 (19.2%) | $88.68 (6.4%) |
| 2026-08-08 | $148.78 (10.0%) | $81.91 (6.0%) |
| 2026-08-07 | $71.45 (4.8%) | $33.91 (2.5%) |
| 2026-08-06 | $77.39 (5.2%) | $13.76 (1.0%) |
The 08-05 cohort has dropped out of the top six, six days on. It supplied 23.1% of 08-10's booked revenue.
B1's CPM $10.10 → $10.66 (+5.6%). Held to 2026-08-10's campaign mix it is $10.66 (+5.6%) — one campaign carried both days, so there is no mix contribution to separate out.
B1's campaigns only; the shared accounts' export carries no Ad ID, so it cannot be cut this way. 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 here, which is what makes those comparable across campaigns, while revenue still needs 16 payers (DECISION_LOG.md #37, #48) and a campaign under that bar carries a direction and never a magnitude.
| campaign | spend | share | impressions | impr share | CPM | clicks | CTR | cost/click | installs | CPI | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Worldwide | $871.73 | 100.0% | 81,768 | 100.0% | 10.66 | 5,320 | 6.51% | $0.164 | 932 | $0.935 | $665.73 | 0.76 | 51 |
Booking with no delivery, and excluded from every rate above: Earner (retired 08-03) 0 installs (Meta), 130 registrations (ours), $0.00 within-day. Counting them would put installs into the CPI denominator against spend that never happened.
No tab strip: one campaign delivered inside B1, so its account grain and its campaign grain are the same object.
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. So the ad-set row is the ad row on this day and the rows below are labelled by asset.
Four ad sets delivered; at 20:22 UTC three stopped. bodysuit went $150.00 → $450.00 a day and lounge, pool5, bikini and spill to Inactive; hours 20 to 23 carry $1.86, $3.52 and $2.12 against bodysuit's $54.68.
spill spent nothing again: a rejected ad for a third day, $0.00, absent from the table below. ww_broad_purchase_adv_d100_mugshot has been off since 08-04.
Three budget regimes, and the day-level tables pool across all three. E2-R7 to 07:00 UTC at $150 on four arms, E2-R8 to 20:22 at the same $150, E2-R9 from 20:22 at $450 on bodysuit.
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/bodysuit | $246.36 | 19,564 | 12.59 | 1,198 | 6.12% | 267 | 22.29% | $0.923 |
E2/bikini | $220.56 | 16,482 | 13.38 | 1,133 | 6.87% | 197 | 17.39% | $1.120 |
E2/lounge | $211.03 | 17,767 | 11.88 | 1,317 | 7.41% | 189 | 14.35% | $1.117 |
E2/pool5 | $193.78 | 27,955 | 6.93 | 1,672 | 5.98% | 278 | 16.63% | $0.697 |
E2/mugshot | $0.00 | 0 | — | 0 | — | 0 | — | — |
E2/spill2 | $0.00 | 0 | — | 0 | — | 1 | — | $0.000 |
Whole-day figures, and three arms ran only 20.4 hours. bodysuit's $246.36 buys 24 hours, so cost ratios read and the spend column does not.
pool5 buys the cheapest install and, by more, the cheapest impression. $0.697 against $0.923, $1.117 and $1.120; CPM $6.93 against $11.88 to $13.38 — 42% under the next arm, the test's widest gap.
Click-through rose on every arm and ranks them opposite to cost per install. lounge leads at 7.41% and is second-worst on CPI; pool5 is last at 5.98% and best by 25%. Click-to-install separates them: bodysuit 22.29%, lounge 14.35%.
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, 71% covered on this day. Report clock UTC.
| asset | booked | bROAS (Meta) | within-day | wROAS | cohort@H | cROAS | payers | payer% | ARPU | ARPPU | largest payer |
|---|---|---|---|---|---|---|---|---|---|---|---|
E2/bodysuit | $291.15 | 1.18 (1.17) | $129.27 | 0.52 | $174.16 | 0.71 | 11 | 3.8% | 0.441 | 11.75 | 29.4% |
E2/bikini | $194.18 | 0.88 (0.66) | $97.55 | 0.44 | $101.11 | 0.46 | 5 | 2.3% | 0.458 | 19.51 | 70.2% |
E2/lounge | $208.79 | 0.99 (1.08) | $107.46 | 0.51 | $138.46 | 0.66 | 10 | 5.1% | 0.545 | 10.75 | 35.3% |
E2/pool5 | $516.18 | 2.66 (2.92) | $331.45 | 1.71 | $354.49 | 1.83 | 25 | 8.3% | 1.101 | 13.26 | 22.6% |
E2/mugshot | $5.74 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
E2/spill2 | $71.67 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.
pool5 clears the 16-payer bar and no other arm comes close. Its 1.71 is the first per-asset magnitude the split test has allowed, and its largest payer is 22.6% against bikini's 70.2% and lounge's 35.3%.
The three arms under the bar do not separate. bodysuit 0.52, lounge 0.51, bikini 0.44 on 11, 10 and 5 payers — one direction.
spill2's $71.67 of booked revenue arrived on zero spend — people it recruited earlier paying on this day.
⚠ This table is cut on the META day, while every other table on this page is on the UTC clock. Meta serves no hour × country grid, so per-country delivery exists only on the ad account's own UTC-7 day and cannot be restitched. It is a seven-hour-offset window against tables A and B above; read it for mix, never for level against them.
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/bodysuit | $327.92 | 31.8% | 14.8% | 53.4% | 43.3% |
E2/bikini | $168.88 | 33.5% | 13.4% | 53.1% | 11.2% |
E2/lounge | $164.72 | 19.9% | 9.4% | 70.7% | 39.9% |
E2/pool5 | $156.03 | 25.9% | 12.9% | 61.2% | 4.5% |
The country mix moved hard toward India on the two arms about to be favoured (DECISION_LOG.md
#58 ranks on India's share). bodysuit 31.8%, bikini 33.5%, against pool5's 25.9% and lounge's 19.9%; on 08-10 all four sat between 17.8% and 22.1%.
pool5's return is the only one not resting on the United States. bodysuit took 43.3% of its within-day revenue there on 14.8% of its spend, lounge 39.9% on 9.4%, pool5 4.5% on 12.9%.
E2-R8 is the only window where budget, hours and arm count are all held. 07:00 to 20:22 UTC, $150 on four arms. H=6, because H=24 leaves 38 to 55 installs an arm against 149 to 265:
| arm | installs | spend | CPM | CTR | India % | CPI | ROAS (H=6) | mix-neutral |
|---|---|---|---|---|---|---|---|---|
pool5 | 265 | $156.00 | 6.72 | 6.14% | 26% | $0.589 | 1.53 | 1.36 |
bodysuit | 206 | $160.60 | 10.88 | 5.96% | 49% | $0.779 | 0.57 | 0.61 |
bikini | 186 | $168.90 | 12.83 | 7.42% | 39% | $0.908 | 0.48 | 0.62 |
lounge | 149 | $164.70 | 12.21 | 8.12% | 13% | $1.106 | 0.33 | 0.29 |
pool5 leads on cost and return in the matched window, and not through its country mix. Mix-neutral it holds 1.36 against 0.61, 0.62 and 0.29, at a middling 26% India share.
The estimator's head-to-head here is bikini against bodysuit, and there the mix does carry the gap. bikini's audience is worth −15.5% of bodysuit's at pooled prices, 95% CI [−29.5%, −2.1%], against a raw gap of −16%. pool5 sits outside the pair.
⚠ E2-R9 opens inside this report's day and runs past it, so this block reports the whole regime. It carries 246 installs matured to H=6, against the 3.6 hours of it that fall inside UTC 08-11. It is here because the shape is new; the regime is four days from being decidable on revenue.
| E2-R6 (five arms, $150) | E2-R9 (one arm, $450) | move | |
|---|---|---|---|
| installs (matured, H=6) | 879 | 246 | — |
| CPM | 9.49 | 14.62 | +54% |
| CTR | 5.77% | 6.05% | +5% |
| CPI | $0.668 | $0.680 | +2% |
| India % | 30% | 32% | — |
| ROAS (H=6) | 0.89 | 1.23 | +38% |
Tripling one arm's budget made impressions 54% dearer and installs no dearer at all. CPM follows DECISION_LOG.md #47; CPI does not — $0.680 against $0.668, click-through up about 5% absorbing the price.
⚠ This corrects the first read of this regime. At the earlier 09:27 UTC payment cut E2-R9 held 101 matured installs and showed cost per install 33% dearer, which would have been the headline. At 246 installs the same comparison reads +2%. The difference is a thin, young slice maturing. No claim about this regime should be made on a partial day again — the first version of this table was wrong in a way that only more data revealed.
The return column now reads 1.23 against 0.89 on a base large enough to be worth watching, but bodysuit at $150 inside E2-R8 read 0.57 on the same day, so the three figures do not line up into a trend yet.
Money is plotted per day and delivery per hour, because payers run 0 to 3 per asset per hour and an hourly revenue line would be one person's basket. Markers are hollow where the point sits under 16 payers. On this day pool5's marker is solid and the other three are hollow, which is the first time the payer gate has separated the arms.
The cohort figure below was published at 71% coverage and has since completed. At the full 24-hour horizon 2026-08-11's cohort is $787.66, the figure the 2026-08-12 report carries in its prior-day column; what this page shows is a lower-coverage read of the same cohort, not a different number. Against 08-10's completed $343.11 the day reads +129.6% — the comparison this page declined. Within-day and booked are unaffected; they were sealed and settled when this page shipped.
Rank the two accounts on within-day or cohort@24h, never on booked. Booked counts everyone who paid on the day whatever day they installed, so it credits B1 with weeks of accumulated cohort the shared buy has not had time to build. That is the whole of B1's 1.64 booked return against the shared side's 1.30, and it says nothing about either buy. The immutable measures carry any cross-account claim, and on this day the shared side holds one payer, so it does not clear the 16-payer bar and its side of that comparison is not readable at all.
The shared side's delivery advantage rests on a first day at 4% of the portfolio's spend. 4,215 impressions and $31.77, against a B1 cost per install that moved 10.8% between the two days in this report.
⚠ The two accounts keep different clocks, and that was derived from the data. B1 is fixed at UTC-7, so its UTC day is stitched from two of its own days. The shared accounts run at UTC+0, so their reporting day already is the UTC day and nothing is stitched. Correlating each account's hourly impressions against our own registrations, which are true UTC, recovers the known seven-hour offset on B1 (r = 0.878) and no offset at all on the shared accounts (r = 0.744). A single constant applied to both would have mis-stitched the shared side by seven hours every day, and nothing would have raised an error.
⚠ Every table outside section 2 is B1 alone. Each one selects on the ad ids in the run config and the shared accounts' ads have never been in it (theirs end 334 against the uniform 364 of ours), so no figure below section 2 is contaminated by the second buy. What changes from this day is the level above: any account-level or store-level read of how the app is doing now mixes two buys, and section 2 is the only place on this page where they are added up. Recorded in attribution_plumbing.md §6b.
⚠ The instrument gate breached its band on this day. On B1's own clock our records read 1.07 of Meta's booked value against a documented 0.91 to 1.06. 08-10 read 1.01 and 08-09 read 1.06. One day just outside is not a drift and it does not invalidate a figure here, because the gate compares two instruments to each other and neither one is truth. It is the first breach the series has recorded and it wants watching on the next two days.
Cohort at 24 hours cannot carry this comparison and is reported for the record. 08-10 is 100% covered and 08-11 is 71%, because this report is cut roughly 40 hours after the day opened, and a full cohort needs 48. Every day-over-day claim above rests on within-day, which is sealed at midnight and cannot move.
No per-arm figure on this page is a whole-day like-for-like. Three arms ran 20.4 hours of the day and one ran all 24. Tables A, B and C are whole-day figures and inherit that asymmetry; the regime-matched block in section 7 is the version that does not.
The split test's end and the account-day budget rollover fall on the same hour and this report cannot separate them. Both predict a delivery step at 07:00 UTC. Distinguishing them needs a day where the two do not coincide, which no day in this series has. split_test_delivery_shift_2026-08-06.md measured the same mechanism when the test started, on a five-cell split holding the arms to non-overlapping audiences; this day is that finding in reverse, on a single step change, so it is consistent with the mechanism and does not on its own establish it.
Within-day flatters a day that delivers early, and this one did. 51.1% of our registrations arrived in the first twelve UTC hours against 44.4% the day before, and the mean install hour moved from 12.09 to 11.76. Each install therefore had about twenty minutes more of the day in which to pay. That is a real contribution to the doubling and this report does not size it, because the measure that would is cohort at a fixed horizon and it is 71% covered.
The country section and table C are B1's own day, seven hours offset from every other table, and they split 13.4 hours of four arms against 3.6 of one where the UTC day splits 20.4 against 3.6. They are read for mix, never for level.
37% of registrations never enter a revenue measure and that is true of every day in this series. Of the 20,959 registrations in this cut, 62.8% resolve to an ad in the run config's map and are counted, 22.4% carry an ad id that is not in it, and 14.9% carry none at all. Every "ours" figure on this page means registrations attributable to a mapped Meta ad. It is internally consistent, because the payer rate divides our payers by that same population.
Whether pool5's lead survives at a budget it has never run. It is the only arm to clear the payer bar and it did so at $150 while the account has now moved to $450 on a different arm. The regime table shows this account's returns falling as budgets rise, so a pool5 figure at $150 does not forecast a pool5 figure at $450. Nothing short of running it there answers this.
Whether the single-arm shape pays for its own CPM. E2-R9 is 54% dearer per thousand impressions than the five-arm regime and buys installs at the same price, so the question has moved from cost to return. Three or four settled days at $450 with cohort coverage complete would answer it; 1.23 at H=6 on one partial regime does not.
Whether the delivery step at 07:00 was the test ending. A budget change made at an hour that is not the account-day boundary would separate the two candidate mechanisms in a single day.
Whether the instrument ratio returns inside the band. Two more days on the account clock. If 1.07 repeats it is a drift in one of the two instruments and the reconciliation needs opening; if it does not, this day was noise.
Whether the shared accounts can ever be read the way B1 is. Their export carries no clicks, no leads, no country and no Ad ID, so section 2 is as fine a grain as this page can reach on them. That column preset is not ours to change, and moving it would be a message. Their payer count is a separate wait: one day at $31.77 produced one payer, so several days at this spend are what would put their revenue above the 16-payer bar.
B1's day is split in two and no per-arm day figure crosses the seam. For 20.4 hours it ran four arms at $150 each; for the last 3.6 hours it ran
bodysuitalone at $450. Hours 00 to 19 carry $809.55 of B1's $871.73, 92.9% of it, and hours 21 to 23, which are wholly after the switch, carry $46.56. Section 1 and sections 3 to 6 are whole-day figures and include both shapes. The clean cross-arm read is regime E2-R8, in section 7.
The five-cell split test reached its horizon at 07:00 UTC on this day, so this is the first day the read-out can treat as post-test. What it adds:
pool5 produced the test programme's first readable per-asset revenue figure, and it did it after the test ended. 25 payers at 8.3% inside E2-R8. The pre-registered primary was decided on four days at five arms; this is a fifth-day, four-arm, post-test observation and belongs beside that result.pool5 and bodysuit swapped twice inside the test and pool5 now leads by 25%, its largest margin. The bottom pair is still the bottom pair. That is the sixth day of the same pattern: the endpoint separates the pairs and has never settled the leading one.Window: UTC 2026-08-11, against UTC 2026-08-10. The report clock is UTC. B1 is fixed at UTC-7, so a report day on it is stitched from two of its own days and each report day needs the previous account day's hourly export as well as its own.
Payment cut 2026-08-12 15:59 UTC. Cohort horizon H=24, 100% covered on 08-10 and 71% on 08-11.
Section 2's account tables come from each account's own day export at the same payment cut. The shared accounts run at UTC+0, so their reporting day already is the UTC day and no stitch applies to them; their export carries spend and impressions and no click, lead, country or ad-id column, which is where section 2 has to stop.
B1's exports, pulled 2026-08-12 02:0x PT, after both the UTC day and B1's own day had closed:
| file | what | range |
|---|---|---|
exports/ads_hourly_aug10_settled.csv | ads × hour | Meta day 2026-08-10, all 24 hours, 104 rows |
exports/ads_hourly_aug11_settled.csv | ads × hour | Meta day 2026-08-11, all 24 hours |
exports/ads_day_jul1_aug11.csv | ads × day | 2026-07-01 → 2026-08-11, 6,342 rows |
exports/ads_country_day_jul1_aug11.csv | ads × country × day | 2026-07-14 → 2026-08-11, 10,513 rows |
Our own records come from the two Lum Telegram channels, re-exported on the laptop 2026-08-12 09:09 and 09:15 PT and parsed with ad_ops/lum_notifications/parse_export.py: 20,959 registrations and 2,486 payments, 18 of which have no matching registration. The parser corrected 68,710 timestamps for Telegram's fixed-offset bug. Registrations rose against the previous cut's 20,534, which is the check that the export was not truncated.
R=_runs/2026-08-12_0811_daily
python -m ad_ops.measures --config $R/run_config.json --day 2026-08-11 --prev 2026-08-10
python -m ad_ops.measures --config $R/run_config_meta.json --day 2026-08-11 --prev 2026-08-10
python -m ad_ops.day_compare --config $R/run_config.json --today 2026-08-11 --prev 2026-08-10 --h 6
python -m ad_ops.cohort_arpu --config $R/run_config.json --days 2026-08-07,…,2026-08-11
python -m ad_ops.asset_estimator hourly --campaign bailingxia_meituan_ww_cvr_260802 --horizon 6 …
python -m ad_ops.report_tables --config $R/run_config.json --day 2026-08-11 --prev 2026-08-10
python -m ad_ops.report_tables --config $R/run_config.json --day 2026-08-11 --prev 2026-08-10 --campaign-table
python -m ad_ops.report_tables --config $R/run_config.json --day 2026-08-11 --prev 2026-08-10 --campaign ww
python -m ad_ops.report_charts --config $R/run_config.json --day 2026-08-11 --prev 2026-08-10 \
--days 2026-08-06,…,2026-08-11 --out ad_ops/figures/2026-08-11
The instrument gate is run on B1'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 switch's timestamps are read from Ads Manager: the campaign activity history at manage/campaigns/history with the range asserted as Aug 10, 2026 – Aug 12, 2026, which returns five changes at 13:22 on 08-11 and none between them and 11:59 on 08-10. That read is also what extends the regime table, which is a hand-recorded object and the one input to this report that goes stale without any error.
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. Each ad account carries its own timezone and the stitch is done with that account's offset. B1 is fixed at UTC-7, so a UTC day on it is B1's previous day from 17:00 plus its own day to 16:59; the shared accounts run at UTC+0 and need no stitch. B1's 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. On this day the offset also moves the switch, which falls at 13:22 on the account clock and 20:22 on the report clock.
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 holds three. E2-R7 runs to the test horizon at 07:00 UTC and E2-R8 from there to 20:22 UTC, both at $150 on four arms; the test's end changes what the arms are while leaving their budget alone, and that opens the second of the three. E2-R9 begins at 20:22 UTC with bodysuit alone at $450 and is the first single-arm regime this campaign has had, so it has no cross-arm comparison inside it and its mix-neutral column is blank.
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. On this day exactly one arm clears it.