Weekly campaign report — 2026-07-20 to 2026-07-26

One ad account bought this app this week, and it bought on four of the seven days: B1 spent nothing on 07-20, 07-21 and 07-22, and its first spend on this app is 2026-07-23. What ran on the account on 07-20 and 07-21 carries the youguqi_* prefix, which the ledger classes as the earlier HeiHa test, so none of that money is counted here. Over the seven days the account spent $520.97 across six test campaigns, took 589 installs at $0.884, booked $274.13 and sealed $246.87 inside the days that produced it. On the account's own clock our records read 1.10 of Meta's booked $480.31, outside the documented 0.91 to 1.06 band. The second ad account did not begin buying this app until 2026-08-11, so every table below is B1 alone. Definitions, the report clock and the three revenue measures are in the appendix.

1Overview

2026-07-20 to 2026-07-26
spend$520.97
impressions35,281
CPM$14.77
clicks3,024
CTR8.57%
installs (Meta)589
click→install19.5%
CPI$0.884
registrations (ours)649
booked$274.13 (0.53)
within-day$246.87 (0.47)
cohort @ 24h$285.65 (0.55) at 100%
within-day payers26

Cohort value — ARPU and ARPPU at d0, d3 and d7

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.

appARPU (d0)ARPU (d3)ARPU (d7)ARPPU (d0)ARPPU (d3)ARPPU (d7)installs
Vloom$0.4140$0.6117$0.7418$8.92$10.11$10.99711

Campaign spend split. Six campaigns delivered, from 26.2% down to 7.8%, and none took more than a quarter of the week.

Four days of buying and three empty ones. First spend lands 07-23, so the totals above are 07-23 to 07-26 under a seven-day heading.

Nothing in the week returned its cost. Within-day 0.47 on $520.97, booked 0.53, cohort at 24 hours 0.55, that last 100% covered and frozen.

Cheap and dear installs sit three campaigns apart: $0.442 and $0.348 on the two India buys, $4.260 and $18.098 on the two United States ones.

Only one campaign has payers enough to read. T3 (Jul 25, India/SEA) carries 17 against a next-largest 4, so section 5 ranks on cost.

2Hourly, 2026-07-20 to 2026-07-26

The x-axis is hour of day pooled across the period, never a timeline. Each bucket pools at most four days, the buy starting on 07-23.

Delivery columns are Meta's instrument on both sides of every ratio. Payer rate and the revenue columns are ours on both sides. The two install counts are never crossed. ours is our registrations in that hour; cov is that hour's cohort coverage at H=24.

hrspendimprCPMclicksCTRinstclk→iCPIourscovbookedbROASwithinwROASwPaycohortcROAS
0$21.771,02821.181009.73%00.0%$0.00000%$9.390.43$0.000.000$0.000.00
1$17.091,17314.57917.76%00.0%$0.00000%$0.000.00$0.000.000$0.000.00
2$18.831,26714.86957.50%11.1%$18.83000%$0.000.00$0.000.000$0.000.00
3$14.331,30910.95735.58%00.0%$0.00000%$0.000.00$0.000.000$0.000.00
4$8.969019.94545.99%35.6%$2.9873100%$0.000.00$0.000.000$0.000.00
5$17.381,09615.8611210.22%2017.9%$0.86923100%$0.000.00$9.320.541$9.320.54
6$13.841,15711.9613211.41%3224.2%$0.43234100%$0.000.00$0.000.000$0.000.00
7$13.811,15611.95998.56%2121.2%$0.65825100%$0.000.00$21.681.572$21.681.57
8$11.0981913.54789.52%1519.2%$0.73916100%$22.262.01$24.392.203$24.392.20
9$13.2995513.92959.95%2122.1%$0.63326100%$20.781.56$0.000.000$0.000.00
10$10.4381912.748810.74%2225.0%$0.47427100%$6.960.67$0.000.000$0.000.00
11$11.1184213.19839.86%2125.3%$0.52925100%$9.320.84$9.320.841$9.320.84
12$12.4982015.23819.88%1721.0%$0.73518100%$5.760.46$5.760.461$5.760.46
13$16.081,13114.2212210.79%2722.1%$0.59627100%$11.520.72$10.740.672$10.740.67
14$25.771,80914.251407.74%2920.7%$0.88934100%$19.810.77$14.820.582$14.820.58
15$33.912,27014.941928.46%5729.7%$0.59556100%$21.830.64$32.510.963$32.510.96
16$32.162,44813.141596.50%4427.7%$0.73149100%$0.000.00$0.000.000$0.000.00
17$38.073,06012.442337.61%5925.3%$0.64567100%$15.080.40$5.760.151$16.500.43
18$39.823,78010.532957.80%7726.1%$0.51790100%$43.921.10$51.041.285$56.801.43
19$30.072,31612.982259.72%6528.9%$0.46372100%$22.190.74$20.710.693$30.031.00
20$46.681,83225.481769.61%4927.8%$0.95351100%$44.390.95$40.830.872$53.781.15
21$20.121,07618.70928.55%44.3%$5.0304100%$5.630.28$0.000.000$0.000.00
22$23.1288126.249110.33%44.4%$5.7801100%$0.000.00$0.000.000$0.000.00
23$30.751,33623.021188.83%10.8%$30.7501100%$15.280.50$0.000.000$0.000.00
all$520.9735,28114.773,0248.57%58919.5%$0.884649100%$274.130.53$246.870.4726$285.650.55

⚠ Payer counts per hour run 0 to 5. An hourly ARPPU on one payer is that payer's basket and not a rate. Read the all row for level and the hours for shape.

Install rate collapses at both ends of the clock; spend does not. Hours 21 to 23 cost $5.030 to $30.750 an install.

Which campaign delivered in the hour explains it. T1a/utility_sexy ran hours 20 to 23 at CPM $73.36, $144.83, $139.44 and $192.35 for zero installs; T3b/sasian_slip_dress ran from hour 13 at $1.82 to $12.86.

Coverage is 100% in every delivering hour. The newest install is roughly three weeks old at the 2026-08-16 cut, so the cohort column is frozen.

Booked revenue lands on the hour someone paid; within-day and cohort on the install hour. Hour 0 booked $9.39 on zero installs.

2026-08-16T16:03:55.635995 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 3 6 9 12 15 18 21 hour (UTC) 0 10 20 30 40 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Spend by hour 0 3 6 9 12 15 18 21 hour (UTC) 1000 1500 2000 2500 3000 3500 impressions Impressions and installs by hour impressions installs 0 10 20 30 40 50 60 70 80 installs (Meta Leads) The period's motion — whole account, 2026-07-20..2026-07-26 (UTC)
The period's motion: spend by hour, and impressions against installs
2026-08-16T16:03:55.797889 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 4 8 12 16 20 hour (UTC) 6 7 8 9 10 11 CTR % CTR 0 4 8 12 16 20 hour (UTC) 10.0 12.5 15.0 17.5 20.0 22.5 25.0 USD per 1,000 impressions CPM 0 4 8 12 16 20 hour (UTC) 0 5 10 15 20 25 30 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install 0 4 8 12 16 20 hour (UTC) 0 5 10 15 20 25 30 USD Cost per install Delivery by hour — whole account, 2026-07-20..2026-07-26 (UTC)
CTR, CPM, click-to-install and CPI by hour, whole account

Against the period before it, hour matched to hour

There is no period before it. The hourly archive begins 2026-07-19 and a UTC day is stitched from two Meta days, so 2026-07-20 is the earliest UTC day this account can report at all. The matched-hours pairing, its sign tests and the chart that lays the prior period over this one do not exist for this week, and no comparison stands in for them.

3Country

2026-08-23T13:56:10.520255 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ IN MX US GB MY SA AE AU CA ZA ID PH 0 25 50 75 100 125 150 175 USD delivery raked onto the report clock against two measured margins; revenue is the report period Spend against within-day revenue by country — 2026-07-20..2026-07-26 spend within-day revenue
Spend against within-day revenue, by country
2026-08-23T13:56:10.601845 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ −0.04 −0.02 0.00 0.02 0.04 USD per install Cost per install by country — 2026-07-20..2026-07-26 (report clock)
Cost per install by country

(i) The portfolio by country, 2026-07-20..2026-07-26. 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.

ccspendshareimpressionsCPMregistrations (ours)cost/regwithin-daywROASpayers
IN$139.4826.8%17,725$7.87400$0.349$178.811.2820
MX$85.4716.4%5,475$15.6198$0.872$57.440.675
US$76.8214.7%887$86.617$10.974$0.000.000
GB$54.1910.4%857$63.217$7.742$0.000.000
MY$46.829.0%2,926$16.0029$1.614$0.000.000
SA$17.913.4%936$19.1312$1.492$0.000.000
AE$17.713.4%643$27.546$2.951$0.000.000
AU$17.113.3%327$52.392$8.554$0.000.000
CA$15.152.9%386$39.219$1.683$4.990.331
ZA$14.832.8%929$15.9715$0.989$0.000.000
ID$14.402.8%2,155$6.6830$0.480$0.000.001
PH$10.502.0%1,320$7.9525$0.420$5.630.541

6 further countries are not listed, $10.58 between them (2.0% of this block).

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-07-20..2026-07-26.

B1

ccspendshareimpressionsCPMregistrations (ours)cost/regwithin-daywROASpayers
IN$139.4826.8%17,725$7.87400$0.349$178.811.2820
MX$85.4716.4%5,475$15.6198$0.872$57.440.675
US$76.8214.7%887$86.617$10.974$0.000.000
GB$54.1910.4%857$63.217$7.742$0.000.000
MY$46.829.0%2,926$16.0029$1.614$0.000.000
SA$17.913.4%936$19.1312$1.492$0.000.000
AE$17.713.4%643$27.546$2.951$0.000.000
AU$17.113.3%327$52.392$8.554$0.000.000
CA$15.152.9%386$39.219$1.683$4.990.331
ZA$14.832.8%929$15.9715$0.989$0.000.000
ID$14.402.8%2,155$6.6830$0.480$0.000.001
PH$10.502.0%1,320$7.9525$0.420$5.630.541

6 further countries are not listed, $10.58 between them (2.0% 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.

Reconciliation over the period. Every per-country cell is an allocation across hours; every total is measured. Each account's raked country total equals its bought spend for these days: B1 $520.97. The per-day reconciliations, naming the Meta days each figure was raked from, are on the daily pages.

4Aggregate, the period

Pooled over the whole week, on the UTC clock.

The pooled funnel, its two-proportion tests and the mix-neutral account line are absent, each needing a second period.

The three measures side by side

measure2026-07-20 to 2026-07-26moves after the period closes?
booked$274.13 (0.53)settled
within-day$246.87 (0.47)never
cohort @ 24h$285.65 (0.55) at 100%frozen, and complete

The three measures agree, inside a tenth of a dollar per dollar. Later weeks diverge: booked counts earlier installers, and this week has almost none.

Meta's own booked figure for the same window on its own clock is $480.31, against our $528.40 on that clock, which is the 1.10 in the front matter. The pair above is our instrument on both sides and is unaffected by it.

Booked revenue by how long its payer had been installed

installed2026-07-20 to 2026-07-26
the same day$246.87 (90.1%)
one day earlier$23.70 (8.6%)
two days earlier$3.56 (1.3%)

Over one day this split and the calendar are the same thing. Over a week they are not: a payer who installed on 07-24 and paid on 07-25 sits in the second row wherever in the week that happened. The top row is the within-day total $246.87, seen from the other side.

Nine tenths of the booked total came from people who paid the day they arrived. Four days of buying leaves nobody older to inherit from.

2026-08-16T16:03:56.047638 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ booked within-day cohort @ 24h 0 50 100 150 200 250 USD 0.53 0.47 0.55 the number above each bar is that measure's ROAS against the same period's spend The three revenue measures, 2026-07-20..2026-07-26 (UTC) 2026-07-20..2026-07-26
The three revenue measures on both periods, ROAS above each bar
2026-08-16T16:03:56.093606 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 2026-07-20..2026-07-26 0 50 100 150 200 250 USD the bottom segment IS the within-day figure: the same number seen twice Booked revenue by how long its payer had been installed (UTC) paid the day they installed one day after two days after three days after four or more days after
Booked revenue by how long its payer had been installed

5The campaigns, side by side

Six campaigns, three geographies, two build dates. Geography is the treatment; objective, bid strategy, conversion event, budget structure and copy are identical across the three.

The two build dates are two different designs. 07-23 ran control against utility per tier, one fifteen-second montage each and neither a holdout.

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 only a direction.

campaignspendshareimpressionsimpr shareCPMclicksCTRcost/clickinstallsCPIwithin-daywROASpayers
T2 (Jul 25)$136.5226.2%8,44523.9%16.175276.24%$0.259117$1.167$48.330.354
T3 (Jul 25, India/SEA)$130.9325.1%15,72944.6%8.321,3928.85%$0.094296$0.442$134.421.0317
T1 (Jul 25)$85.2016.4%1,2293.5%69.3214611.88%$0.58420$4.260$4.990.061
T1 (Jul 23)$72.3913.9%1,2963.7%55.86715.48%$1.0204$18.098$0.000.000
T2 (Jul 23)$55.2510.6%2,6807.6%20.6229611.04%$0.18735$1.579$9.110.161
T3 (Jul 23)$40.687.8%5,90216.7%6.8959210.03%$0.069117$0.348$50.021.233

The generated table carries no booking-with-no-delivery line this week: no campaign landed installs on spend it did not incur, so the account totals and the six tabs reconcile without an exclusion.

An impression costs $6.89 to $69.32 across six campaigns bought in the same week, a click $0.069 to $1.020. Both extremes are geography.

Cost per install lands in exactly the order the CPM does, from $0.348 on the India buys to $18.098 on the English-speaking ones.

Impression share and spend share come apart, which is the point of buying tiers. An account-level CPM averages that gap and describes no campaign here.

Revenue is reported and not ranked. T3 (Jul 25, India/SEA)'s 1.03 and T3 (Jul 23)'s 1.23 are the only returns above 1.00 on the page.

The standing charts for this section plot spend share, CPM and CPI by campaign across the run. The period run of the chart generator emits none of the three, so this section carries its table alone.

6Inside each campaign

One tab per campaign, ordered by spend descending, each carrying the same sections in the same order. Where a campaign is too thin for a section, the section says so in place. Every claim below also appears in section 5 or in Caveats; the tabs carry depth and never a verdict.

Showing

T2 (Jul 25) — every section below this line is T2 (Jul 25)'s: the day, the hours, the countries, the campaigns and the assets, counted on T2 (Jul 25)'s own ledger and its own accounts. Use the buttons above to switch.

$136.52 and 26.2% of the week, 8,445 impressions at CPM 16.17, 117 installs at $1.167, and $48.33 of within-day revenue from 4 payers. It buys the United Arab Emirates, Saudi Arabia, Malaysia, South Africa and Mexico. Eighteen ads delivered: the six length-by-message cells it was built with on 07-25, and twelve Spanish-language latina_es_* ads added on 07-26. The rows below are ads.

Hourly

No campaign-scoped hourly table was generated for this period; the account table in section 2 is the report's only hourly table. The charts carry this campaign's own shape.

2026-08-16T16:04:28.482823 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 3 6 9 12 15 18 21 hour (UTC) 0 2 4 6 8 10 12 14 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Spend by hour 0 3 6 9 12 15 18 21 hour (UTC) 0 200 400 600 800 impressions Impressions and installs by hour impressions installs 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 installs (Meta Leads) The period's motion — whole account, 2026-07-20..2026-07-26 (UTC)
The period's motion: spend by hour, and impressions against installs
2026-08-16T16:04:28.626486 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 4 8 12 16 20 hour (UTC) 4 5 6 7 8 CTR % CTR 0 4 8 12 16 20 hour (UTC) 14 15 16 17 18 19 USD per 1,000 impressions CPM 0 4 8 12 16 20 hour (UTC) 0 10 20 30 40 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install 0 4 8 12 16 20 hour (UTC) 0.8 1.0 1.2 1.4 USD Cost per install Delivery by hour — T2 (Jul 25), 2026-07-20..2026-07-26 (UTC)
CTR, CPM, click-to-install and CPI by hour, T2 (Jul 25)

Country

Table C below is this campaign's country cut. Its whole spend sits outside India and outside the United States, which is the definition of the tier this campaign buys.

2026-08-16T16:04:28.743246 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ MX MY SA AE ZA 0 20 40 60 80 100 120 140 USD spend and installs are a META-day cut (no hour x country grid exists); revenue is the report period Spend against within-day revenue by country — 2026-07-20..2026-07-26 spend within-day revenue
Spend against within-day revenue, by country
2026-08-16T16:04:28.780564 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ MX MY SA AE ZA 0.0 0.5 1.0 1.5 2.0 USD per install Cost per install by country — 2026-07-20..2026-07-26 (META days)
Cost per install by country

Aggregate

$48.33 of within-day revenue against $136.52 of spend, a return of 0.35 on 4 payers. Under the 16-payer bar, so the figure is a direction.

2026-08-16T16:04:28.828187 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ booked within-day cohort @ 24h 0 10 20 30 40 50 USD 0.35 0.35 0.35 the number above each bar is that measure's ROAS against the same period's spend The three revenue measures, 2026-07-20..2026-07-26 (UTC) 2026-07-20..2026-07-26
The three revenue measures on both periods, ROAS above each bar
2026-08-16T16:04:28.868555 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 2026-07-20..2026-07-26 0 10 20 30 40 USD the bottom segment IS the within-day figure: the same number seen twice Booked revenue by how long its payer had been installed (UTC) paid the day they installed one day after two days after three days after four or more days after
Booked revenue by how long its payer had been installed

A. Per asset — delivery

Meta's instrument on both sides of every ratio. Our registrations never enter this table.

assetspendimpressionsCPMclicksCTRinstallsclick→installCPI
T2b/utility_6s#3$19.461,04418.64908.62%1617.78%$1.216
T2b/latina_es_slip_dress$19.391,26215.36634.99%2641.27%$0.746
T2b/control_10s$14.5091015.93556.04%35.45%$4.833
T2b/utility_15s#2$13.3777217.32506.48%816.00%$1.671
T2b/control_6s#2$13.3581716.34415.02%717.07%$1.907
T2b/control_15s#2$13.1482915.85536.39%611.32%$2.190
T2b/utility_10s#3$12.7962820.37447.01%920.45%$1.421
T2b/latina_es_bodysuit_10s$11.0182213.39556.69%1323.64%$0.847
T2b/latina_es_offshoulder$6.0430819.61113.57%327.27%$2.013
T2b/latina_es_jean_shorts$3.2623413.93135.56%646.15%$0.543
T2b/latina_es_bikini_10s$2.4623410.51177.26%1058.82%$0.246
T2b/latina_es_corset_10s$2.2519211.72126.25%541.67%$0.450
T2b/latina_es_bodysuit_6s$2.0013714.60107.30%330.00%$0.667
T2b/latina_es_spice5_15s$1.467718.9622.60%150.00%$1.460
T2b/latina_es_fishnet_top_6s$0.797510.5334.00%00.00%—
T2b/latina_es_corset_6s$0.52774.29228.57%00.00%—
T2b/latina_es_bikini_6s$0.49598.3146.78%125.00%$0.490
T2b/latina_es_fishnet_top_10s$0.24386.3225.26%00.00%—

The Spanish-language pack converts and the English-caption set does not: 58.82%, 46.15% and 41.67% click to install against control at 5.45% and 11.32%.

Spend went the other way. Five of the six 07-25 cells cost over $1.40 an install, and only two latina_es_* ads got real money.

B. Per asset — the three revenue measures

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 period. Report clock UTC.

assetbookedbROAS (Meta)within-daywROAScohort@HcROASpayerspayer%ARPUARPPUlargest payer
T2b/utility_6s#3$21.631.11 (1.10)$21.631.11$21.631.11210.5%1.13810.8173.6%
T2b/latina_es_slip_dress$5.710.29 (0.29)$5.710.29$5.710.2913.3%0.1905.71100.0%
T2b/control_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/utility_15s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/control_6s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/control_15s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/utility_10s#3$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_bodysuit_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_offshoulder$20.993.48 (3.45)$20.993.48$20.993.48133.3%6.99720.99100.0%
T2b/latina_es_jean_shorts$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_bikini_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_corset_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_bodysuit_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_spice5_15s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_fishnet_top_6s$0.000.00 (0.00)$0.000.00$0.000.000————
T2b/latina_es_corset_6s$0.000.00 (0.00)$0.000.00$0.000.000————
T2b/latina_es_bikini_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_fishnet_top_10s$0.000.00 (0.00)$0.000.00$0.000.000————

The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.

Four payers spread over three ads, and one of them is $20.99 of a $48.33 total. Every number in this table is one person's basket. T2b/latina_es_offshoulder reads 3.48 on $6.04 of spend and a single payer at 100.0% of its revenue, which is the shape the bar exists to stop being read.

C. Per asset — country mix

⚠ 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.

assetspendIndia %US %other %US % of its revenue
T2b/utility_6s#3$39.440.0%0.0%100.0%0.0%
T2b/latina_es_slip_dress$19.390.0%0.0%100.0%0.0%
T2b/control_10s$14.500.0%0.0%100.0%—
T2b/utility_15s#2$31.730.0%0.0%100.0%—
T2b/control_6s#2$13.350.0%0.0%100.0%—
T2b/control_15s#2$13.140.0%0.0%100.0%—
T2b/utility_10s#3$12.790.0%0.0%100.0%—
T2b/latina_es_bodysuit_10s$11.010.0%0.0%100.0%—
T2b/latina_es_offshoulder$6.040.0%0.0%100.0%0.0%
T2b/latina_es_jean_shorts$3.260.0%0.0%100.0%—
T2b/latina_es_bikini_10s$17.430.0%0.0%100.0%—
T2b/latina_es_corset_10s$2.250.0%0.0%100.0%—
T2b/latina_es_bodysuit_6s$2.000.0%0.0%100.0%—
T2b/latina_es_spice5_15s$1.460.0%0.0%100.0%—
T2b/latina_es_fishnet_top_6s$0.790.0%0.0%100.0%—
T2b/latina_es_corset_6s$0.520.0%0.0%100.0%—
T2b/latina_es_bikini_6s$2.930.0%0.0%100.0%—
T2b/latina_es_fishnet_top_10s$0.240.0%0.0%100.0%—

Every ad in this campaign reads 0.0% India and 0.0% United States. Section 3 names where the money went instead: Mexico at $150.25, the largest single country outside India on the week.

2026-08-16T16:04:29.160937 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2b/utility_6s#3 T2b/latina_es_slip_dress T2b/latina_es_bikini_10s 0 20 40 60 80 100 % of that asset's spend Where each asset bought — share of its own spend by region, 2026-07-20..2026-07-26 (META days) MX MY SA AE ZA other
Where each asset bought: share of its own spend by region
2026-08-16T16:04:29.209912 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2b/utility_6s#3 T2b/latina_es_slip_dress T2b/latina_es_bikini_10s 0.0 0.2 0.4 0.6 0.8 1.0 1.2 USD per install Cost per install by region — every asset, 2026-07-20..2026-07-26 (META days) MX MY AE ZA
Cost per install by region, every asset
2026-08-16T16:04:29.254323 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2b/utility_6s#3 T2b/latina_es_slip_dress T2b/latina_es_bikini_10s 0 5 10 15 20 USD Within-day revenue by region — every asset, 2026-07-20..2026-07-26 (META days) MX
Within-day revenue by region, every asset

The period across the run

Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs on the period are dropped from the composite and the region charts.

2026-08-16T16:04:29.316955 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 payers / installs % Payer rate by day — every asset (UTC) T2b/latina_es_slip_dress
Payer rate by day, one line per asset
2026-08-16T16:04:29.363055 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.000 0.025 0.050 0.075 0.100 0.125 0.150 0.175 0.200 within-day USD per install ARPU by day — every asset (UTC) T2b/latina_es_slip_dress
ARPU by day, one line per asset
2026-08-16T16:04:29.411324 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0 1 2 3 4 5 6 within-day USD per payer ARPPU by day — every asset (UTC) T2b/latina_es_slip_dress
ARPPU by day, one line per asset
2026-08-16T16:04:29.454056 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.280 0.285 0.290 0.295 0.300 0.305 0.310 revenue / spend Within-day ROAS by day — every asset (UTC) T2b/latina_es_slip_dress
Within-day ROAS by day, one line per asset
2026-08-16T16:04:29.518340 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ CTR click→install CPI payer rate * ARPU * wROAS * 0.0 0.2 0.4 0.6 0.8 1.0 normalised across the period (1.0 = best of the pack) * axis sits under the 16-payer bar on most days: direction only, never a level. Assets under 20 installs on the period are not plotted. Composite — every asset across every measure, 2026-07-20..2026-07-26 T2b/latina_es_slip_dress
Composite: every asset across every measure, normalised across the period
2026-08-16T16:04:28.927196 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 CTR % hour of day, pooled across the 7 days of the period — a pooling, not a timeline CTR by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CTR by hour, one line per asset
2026-08-16T16:04:29.019018 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Click-to-install by hour, one line per asset
2026-08-16T16:04:29.066323 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Cost per install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Cost per install by hour, one line per asset
2026-08-16T16:04:28.972139 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD per 1,000 impressions hour of day, pooled across the 7 days of the period — a pooling, not a timeline CPM by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CPM by hour, one line per asset

T3 (Jul 25, India/SEA) — every section below this line is T3 (Jul 25, India/SEA)'s: the day, the hours, the countries, the campaigns and the assets, counted on T3 (Jul 25, India/SEA)'s own ledger and its own accounts. Use the buttons above to switch.

$130.93 and 25.1% of the week, 15,729 impressions at CPM 8.32, 296 installs at $0.442, and $134.42 of within-day revenue from 17 payers. It buys India, the Philippines, Nigeria, Pakistan and Indonesia, and it is the only campaign on the page that clears the 16-payer bar. Eighteen ads delivered: the six length-by-message cells it was built with on 07-25, and twelve South-Asian-cast sasian_* ads added on 07-26. The rows below are ads.

Hourly

No campaign-scoped hourly table was generated for this period; the account table in section 2 is the report's only hourly table. The charts carry this campaign's own shape.

2026-08-16T16:04:31.366792 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 3 6 9 12 15 18 21 hour (UTC) 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Spend by hour 0 3 6 9 12 15 18 21 hour (UTC) 0 500 1000 1500 2000 2500 impressions Impressions and installs by hour impressions installs 0 10 20 30 40 50 installs (Meta Leads) The period's motion — whole account, 2026-07-20..2026-07-26 (UTC)
The period's motion: spend by hour, and impressions against installs
2026-08-16T16:04:31.519965 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 4 8 12 16 20 hour (UTC) 7 8 9 10 11 CTR % CTR 0 4 8 12 16 20 hour (UTC) 6 7 8 9 10 11 USD per 1,000 impressions CPM 0 4 8 12 16 20 hour (UTC) 0 10 20 30 40 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install 0 4 8 12 16 20 hour (UTC) 0.2 0.3 0.4 0.5 0.6 0.7 USD Cost per install Delivery by hour — T3 (Jul 25, India/SEA), 2026-07-20..2026-07-26 (UTC)
CTR, CPM, click-to-install and CPI by hour, T3 (Jul 25, India/SEA)

Country

Table C below reads 100.0% India on twelve of eighteen ads and 61.7% to 90.5% on five more. This is the campaign section 3's India line is mostly made of.

2026-08-16T16:04:31.640463 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ IN ID PH PK NG 0 25 50 75 100 125 150 175 USD spend and installs are a META-day cut (no hour x country grid exists); revenue is the report period Spend against within-day revenue by country — 2026-07-20..2026-07-26 spend within-day revenue
Spend against within-day revenue, by country
2026-08-16T16:04:31.679160 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ IN ID PH PK 0.0 0.1 0.2 0.3 0.4 0.5 0.6 USD per install Cost per install by country — 2026-07-20..2026-07-26 (META days)
Cost per install by country

Aggregate

$134.42 of within-day revenue against $130.93 of spend, a return of 1.03 on 17 payers. It is the only cell on this page at or above the 16-payer bar, and it clears it by one person.

2026-08-16T16:04:31.731841 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ booked within-day cohort @ 24h 0 20 40 60 80 100 120 140 160 USD 1.11 1.03 1.22 the number above each bar is that measure's ROAS against the same period's spend The three revenue measures, 2026-07-20..2026-07-26 (UTC) 2026-07-20..2026-07-26
The three revenue measures on both periods, ROAS above each bar
2026-08-16T16:04:31.778498 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 2026-07-20..2026-07-26 0 20 40 60 80 100 120 140 USD the bottom segment IS the within-day figure: the same number seen twice Booked revenue by how long its payer had been installed (UTC) paid the day they installed one day after two days after three days after four or more days after
Booked revenue by how long its payer had been installed

A. Per asset — delivery

Meta's instrument on both sides of every ratio. Our registrations never enter this table.

assetspendimpressionsCPMclicksCTRinstallsclick→installCPI
T3b/utility_6s$21.232,3299.1224910.69%6927.71%$0.308
T3b/sasian_slip_dress$18.462,5737.171847.15%4423.91%$0.420
T3b/control_15s#3$13.011,4838.771248.36%1713.71%$0.765
T3b/utility_10s#2$12.791,2879.9413810.72%2719.57%$0.474
T3b/utility_15s#3$12.661,13711.13998.71%1616.16%$0.791
T3b/control_10s#3$12.551,2679.911058.29%109.52%$1.255
T3b/control_6s#3$12.181,5797.7116410.39%3219.51%$0.381
T3b/sasian_bodysuit_10s$7.711,0927.0612511.45%3729.60%$0.208
T3b/sasian_jean_shorts$6.638118.18465.67%919.57%$0.737
T3b/sasian_corset_6s$4.889645.06626.43%1117.74%$0.444
T3b/sasian_fishnet_top_6s$2.342778.45248.66%625.00%$0.390
T3b/sasian_offshoulder$1.802686.72176.34%529.41%$0.360
T3b/sasian_corset_10s$1.772058.63146.83%321.43%$0.590
T3b/sasian_bodysuit_6s$1.762357.492611.06%311.54%$0.587
T3b/sasian_bikini_6s$0.541154.7076.09%342.86%$0.180
T3b/sasian_bikini_10s$0.40439.30613.95%350.00%$0.133
T3b/sasian_spice5_15s$0.11293.7926.90%150.00%$0.110
T3b/sasian_fishnet_top_10s$0.11353.1400.00%0——

The utility and sasian ads beat control through the funnel: click to install 19.57% to 29.60% against 9.52% to 19.51%.

The volume sits in two ads. T3b/utility_6s and T3b/sasian_slip_dress took $21.23 and $18.46 of $130.93 and produced 69 and 44 of 296 installs.

B. Per asset — the three revenue measures

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 period. Report clock UTC.

assetbookedbROAS (Meta)within-daywROAScohort@HcROASpayerspayer%ARPUARPPUlargest payer
T3b/utility_6s$47.422.23 (0.81)$41.671.96$47.422.2367.7%0.5346.9430.9%
T3b/sasian_slip_dress$32.451.76 (1.74)$32.451.76$32.451.7635.8%0.62410.8264.5%
T3b/control_15s#3$9.320.72 (1.25)$9.320.72$9.320.7215.0%0.4669.32100.0%
T3b/utility_10s#2$11.520.90 (0.89)$11.520.90$11.520.9026.9%0.3975.7650.0%
T3b/utility_15s#3$4.990.39 (1.30)$0.000.00$4.990.3900.0%0.000——
T3b/control_10s#3$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/control_6s#3$5.760.47 (0.00)$5.760.47$5.760.4712.7%0.1565.76100.0%
T3b/sasian_bodysuit_10s$20.832.70 (1.94)$20.832.70$30.153.9137.1%0.4966.9444.7%
T3b/sasian_jean_shorts$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_corset_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_fishnet_top_6s$0.000.00 (0.00)$0.000.00$5.762.4600.0%0.000——
T3b/sasian_offshoulder$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_corset_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_bodysuit_6s$12.887.32 (7.24)$12.887.32$12.887.32120.0%2.57512.88100.0%
T3b/sasian_bikini_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_bikini_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_spice5_15s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_fishnet_top_10s$0.000.00 (0.00)$0.000.00$0.000.000————

The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.

The campaign clears the bar and none of its ads does. Seventeen payers spread over six rows leaves a maximum of 6 in any one, on T3b/utility_6s, whose largest single payer is 30.9% of its revenue. That is the least concentrated cell on the page and it is still six people.

T3b/utility_6s reads bROAS 2.23 against Meta's 0.81 for the same window, the widest instrument gap on the account this week. Both columns describe the same money and the difference is which clock and which record it is counted on.

C. Per asset — country mix

⚠ 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.

assetspendIndia %US %other %US % of its revenue
T3b/utility_6s$34.1590.5%0.0%9.5%0.0%
T3b/sasian_slip_dress$21.50100.0%0.0%0.0%0.0%
T3b/control_15s#3$13.0181.9%0.0%18.1%0.0%
T3b/utility_10s#2$12.7982.5%0.0%17.5%0.0%
T3b/utility_15s#3$12.6683.9%0.0%16.1%—
T3b/control_10s#3$12.5576.6%0.0%23.4%—
T3b/control_6s#3$12.1861.7%0.0%38.3%0.0%
T3b/sasian_bodysuit_10s$28.58100.0%0.0%0.0%0.0%
T3b/sasian_jean_shorts$6.68100.0%0.0%0.0%—
T3b/sasian_corset_6s$11.62100.0%0.0%0.0%—
T3b/sasian_fishnet_top_6s$10.30100.0%0.0%0.0%—
T3b/sasian_offshoulder$1.88100.0%0.0%0.0%—
T3b/sasian_corset_10s$2.66100.0%0.0%0.0%—
T3b/sasian_bodysuit_6s$5.56100.0%0.0%0.0%0.0%
T3b/sasian_bikini_6s$6.46100.0%0.0%0.0%—
T3b/sasian_bikini_10s$0.88100.0%0.0%0.0%—
T3b/sasian_spice5_15s$7.87100.0%0.0%0.0%—
T3b/sasian_fishnet_top_10s$0.68100.0%0.0%0.0%—

No ad in this campaign spent a cent in the United States and none earned a dollar there. The sasian_* set is 100.0% India on every row; the older utility and control ads run 61.7% to 90.5% and put the remainder into the rest of the tier.

2026-08-16T16:04:32.116283 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T3b/utility_6s T3b/sasian_bodysuit_10s T3b/sasian_slip_dress T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_corset_6s T3b/sasian_fishnet_top_6s T3b/sasian_bikini_6s 0 20 40 60 80 100 % of that asset's spend Where each asset bought — share of its own spend by region, 2026-07-20..2026-07-26 (META days) IN ID PH PK NG other
Where each asset bought: share of its own spend by region
2026-08-16T16:04:32.181376 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T3b/utility_6s T3b/sasian_bodysuit_10s T3b/sasian_slip_dress T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_corset_6s T3b/sasian_fishnet_top_6s T3b/sasian_bikini_6s 0.0 0.2 0.4 0.6 0.8 1.0 1.2 USD per install Cost per install by region — every asset, 2026-07-20..2026-07-26 (META days) IN ID PH PK
Cost per install by region, every asset
2026-08-16T16:04:32.233298 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T3b/utility_6s T3b/sasian_bodysuit_10s T3b/sasian_slip_dress T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_corset_6s T3b/sasian_fishnet_top_6s T3b/sasian_bikini_6s 0 5 10 15 20 25 30 35 40 USD Within-day revenue by region — every asset, 2026-07-20..2026-07-26 (META days) IN
Within-day revenue by region, every asset

The period across the run

Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs on the period are dropped from the composite and the region charts.

2026-08-16T16:04:32.313910 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0 2 4 6 8 10 payers / installs % Payer rate by day — every asset (UTC) T3b/utility_6s T3b/sasian_slip_dress T3b/control_15s#3 T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
Payer rate by day, one line per asset
2026-08-16T16:04:32.372596 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.1 0.2 0.3 0.4 0.5 0.6 within-day USD per install ARPU by day — every asset (UTC) T3b/utility_6s T3b/sasian_slip_dress T3b/control_15s#3 T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
ARPU by day, one line per asset
2026-08-16T16:04:32.431580 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0 2 4 6 8 10 within-day USD per payer ARPPU by day — every asset (UTC) T3b/utility_6s T3b/sasian_slip_dress T3b/control_15s#3 T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
ARPPU by day, one line per asset
2026-08-16T16:04:32.509153 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.5 1.0 1.5 2.0 2.5 revenue / spend Within-day ROAS by day — every asset (UTC) T3b/utility_6s T3b/sasian_slip_dress T3b/control_15s#3 T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
Within-day ROAS by day, one line per asset
2026-08-16T16:04:32.583618 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ CTR click→install CPI payer rate * ARPU * wROAS * 0.0 0.2 0.4 0.6 0.8 1.0 normalised across the period (1.0 = best of the pack) * axis sits under the 16-payer bar on most days: direction only, never a level. Assets under 20 installs on the period are not plotted. Composite — every asset across every measure, 2026-07-20..2026-07-26 T3b/utility_6s T3b/sasian_slip_dress T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
Composite: every asset across every measure, normalised across the period
2026-08-16T16:04:31.839562 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 6.3 6.4 6.5 6.6 6.7 6.8 CTR % hour of day, pooled across the 7 days of the period — a pooling, not a timeline CTR by hour — every asset, 2026-07-20..2026-07-26 (UTC) T3b/sasian_slip_dress
CTR by hour, one line per asset
2026-08-16T16:04:31.950862 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 20 22 24 26 28 30 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install by hour — every asset, 2026-07-20..2026-07-26 (UTC) T3b/sasian_slip_dress
Click-to-install by hour, one line per asset
2026-08-16T16:04:32.001898 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.35 0.40 0.45 0.50 0.55 0.60 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Cost per install by hour — every asset, 2026-07-20..2026-07-26 (UTC) T3b/sasian_slip_dress
Cost per install by hour, one line per asset
2026-08-16T16:04:31.900064 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 6.8 7.0 7.2 7.4 7.6 7.8 USD per 1,000 impressions hour of day, pooled across the 7 days of the period — a pooling, not a timeline CPM by hour — every asset, 2026-07-20..2026-07-26 (UTC) T3b/sasian_slip_dress
CPM by hour, one line per asset

T1 (Jul 25) — every section below this line is T1 (Jul 25)'s: the day, the hours, the countries, the campaigns and the assets, counted on T1 (Jul 25)'s own ledger and its own accounts. Use the buttons above to switch.

$85.20 and 16.4% of the week, 1,229 impressions at CPM 69.32, 20 installs at $4.260, and $4.99 of within-day revenue from 1 payer. It buys the United States, Canada, the United Kingdom, Australia and New Zealand, and it is the dearest impression on the account. Six ads delivered, the full length-by-message set it was built with; it is the one 07-25 campaign that received no creative pack on 07-26. The rows below are ads.

Hourly

No campaign-scoped hourly table was generated for this period; the account table in section 2 is the report's only hourly table. On 1,229 impressions across a week, an hourly cut of this campaign averages fewer than nine impressions a bucket, which carries no rate at all.

2026-08-16T16:04:34.492233 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 3 6 9 12 15 18 21 hour (UTC) 0 2 4 6 8 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Spend by hour 0 3 6 9 12 15 18 21 hour (UTC) 0 20 40 60 80 100 120 140 impressions Impressions and installs by hour impressions installs 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 installs (Meta Leads) The period's motion — whole account, 2026-07-20..2026-07-26 (UTC)
The period's motion: spend by hour, and impressions against installs
2026-08-16T16:04:34.637928 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 CTR % CTR 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 USD per 1,000 impressions CPM 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 USD Cost per install Delivery by hour — T1 (Jul 25), 2026-07-20..2026-07-26 (UTC)
CTR, CPM, click-to-install and CPI by hour, T1 (Jul 25)

Country

Table C below runs 37.4% to 50.7% United States on every ad, which is the highest American share on the account this week and the reason its CPM is what it is.

2026-08-16T16:04:34.750199 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ US GB AU CA NZ VI 0 10 20 30 40 50 USD spend and installs are a META-day cut (no hour x country grid exists); revenue is the report period Spend against within-day revenue by country — 2026-07-20..2026-07-26 spend within-day revenue
Spend against within-day revenue, by country
2026-08-16T16:04:34.787907 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ US GB AU CA NZ 0 1 2 3 4 USD per install Cost per install by country — 2026-07-20..2026-07-26 (META days)
Cost per install by country

Aggregate

$4.99 of within-day revenue against $85.20 of spend, a return of 0.06 on 1 payer. One payer is too thin for a revenue statement of any kind; the campaign is read on cost.

2026-08-16T16:04:34.839540 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ booked within-day cohort @ 24h 0 1 2 3 4 5 USD 0.06 0.06 0.06 the number above each bar is that measure's ROAS against the same period's spend The three revenue measures, 2026-07-20..2026-07-26 (UTC) 2026-07-20..2026-07-26
The three revenue measures on both periods, ROAS above each bar
2026-08-16T16:04:34.885812 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 2026-07-20..2026-07-26 0 1 2 3 4 USD the bottom segment IS the within-day figure: the same number seen twice Booked revenue by how long its payer had been installed (UTC) paid the day they installed one day after two days after three days after four or more days after
Booked revenue by how long its payer had been installed

A. Per asset — delivery

Meta's instrument on both sides of every ratio. Our registrations never enter this table.

assetspendimpressionsCPMclicksCTRinstallsclick→installCPI
T1b/utility_15s$15.2120076.053618.00%616.67%$2.535
T1b/utility_10s$14.3123261.68166.90%00.00%—
T1b/utility_6s#2$14.2220370.053115.27%516.13%$2.844
T1b/control_6s$13.9918874.411910.11%15.26%$13.990
T1b/control_15s$13.8321364.93198.92%315.79%$4.610
T1b/control_10s#2$13.6419370.672512.95%520.00%$2.728

Six ads split the budget almost equally, at 188 to 232 impressions each. CTR reads 6.90% to 18.00%, a spread of 16 to 36 clicks.

Install counts are 0, 1, 3, 5, 5 and 6, so no ranking means anything; CPM 69.32 is a property of the tier.

B. Per asset — the three revenue measures

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 period. Report clock UTC.

assetbookedbROAS (Meta)within-daywROAScohort@HcROASpayerspayer%ARPUARPPUlargest payer
T1b/utility_15s$4.990.33 (0.33)$4.990.33$4.990.33112.5%0.6234.99100.0%
T1b/utility_10s$0.000.00 (0.00)$0.000.00$0.000.000————
T1b/utility_6s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T1b/control_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T1b/control_15s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T1b/control_10s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——

The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.

One payer in the whole campaign, worth $4.99, on T1b/utility_15s. Five of six ads produced no revenue on any of the three measures. There is nothing to read here and the table is printed so the account totals reconcile.

C. Per asset — country mix

⚠ 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.

assetspendIndia %US %other %US % of its revenue
T1b/utility_15s$36.350.0%42.6%57.4%0.0%
T1b/utility_10s$14.310.0%46.3%53.7%—
T1b/utility_6s#2$35.280.0%50.7%49.3%—
T1b/control_6s$13.990.0%39.5%60.5%—
T1b/control_15s$13.830.0%37.4%62.6%—
T1b/control_10s#2$13.640.0%38.8%61.2%—

Roughly two fifths of every ad's spend went to the United States and none of it came back. Section 3 has the account total, $91.78.

2026-08-16T16:04:35.169975 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 20 40 60 80 100 % of that asset's spend Where each asset bought — share of its own spend by region, 2026-07-20..2026-07-26 (META days) US GB AU CA NZ VI other
Where each asset bought: share of its own spend by region
2026-08-16T16:04:35.200984 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0.0 0.2 0.4 0.6 0.8 1.0 USD per install Cost per install by region — every asset, 2026-07-20..2026-07-26 (META days)
Cost per install by region, every asset
2026-08-16T16:04:35.238883 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0.0 0.2 0.4 0.6 0.8 1.0 USD Within-day revenue by region — every asset, 2026-07-20..2026-07-26 (META days)
Within-day revenue by region, every asset

The period across the run

Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs on the period are dropped from the composite and the region charts. No ad in this campaign reached 20 installs, so those two chart families carry nothing.

2026-08-16T16:04:35.312170 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 payers / installs % Payer rate by day — every asset (UTC)
Payer rate by day, one line per asset
2026-08-16T16:04:35.351355 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 within-day USD per install ARPU by day — every asset (UTC)
ARPU by day, one line per asset
2026-08-16T16:04:35.399445 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 within-day USD per payer ARPPU by day — every asset (UTC)
ARPPU by day, one line per asset
2026-08-16T16:04:35.436576 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 revenue / spend Within-day ROAS by day — every asset (UTC)
Within-day ROAS by day, one line per asset
2026-08-16T16:04:35.491176 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ CTR click→install CPI payer rate * ARPU * wROAS * 0.0 0.2 0.4 0.6 0.8 1.0 normalised across the period (1.0 = best of the pack) * axis sits under the 16-payer bar on most days: direction only, never a level. Assets under 20 installs on the period are not plotted. Composite — every asset across every measure, 2026-07-20..2026-07-26
Composite: every asset across every measure, normalised across the period
2026-08-16T16:04:34.943339 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 CTR % hour of day, pooled across the 7 days of the period — a pooling, not a timeline CTR by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CTR by hour, one line per asset
2026-08-16T16:04:35.037064 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Click-to-install by hour, one line per asset
2026-08-16T16:04:35.083538 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Cost per install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Cost per install by hour, one line per asset
2026-08-16T16:04:34.988388 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD per 1,000 impressions hour of day, pooled across the 7 days of the period — a pooling, not a timeline CPM by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CPM by hour, one line per asset

T1 (Jul 23) — every section below this line is T1 (Jul 23)'s: the day, the hours, the countries, the campaigns and the assets, counted on T1 (Jul 23)'s own ledger and its own accounts. Use the buttons above to switch.

$72.39 and 13.9% of the week, 1,296 impressions at CPM 55.86, 4 installs at $18.098, and no revenue on any measure. It buys the same five English-speaking countries as T1 (Jul 25) and it is the thinnest tab on the page by result while being the fourth largest by spend, which is why it has one. The design called for one control and utility pair and four ads delivered, two of each; the #4 in a label is a uniqueness counter. This week is the campaign's entire delivering life. The rows below are ads.

Hourly

No campaign-scoped hourly table was generated for this period, and this campaign could not carry one: 1,296 impressions over four delivering days is fewer than ten an hour bucket. The account table in section 2 is the report's only hourly table.

2026-08-16T16:04:37.372753 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 3 6 9 12 15 18 21 hour (UTC) 0 5 10 15 20 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Spend by hour 0 3 6 9 12 15 18 21 hour (UTC) 0 50 100 150 200 250 300 impressions Impressions and installs by hour impressions installs 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 installs (Meta Leads) The period's motion — whole account, 2026-07-20..2026-07-26 (UTC)
The period's motion: spend by hour, and impressions against installs
2026-08-16T16:04:37.515406 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 CTR % CTR 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 USD per 1,000 impressions CPM 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 USD Cost per install Delivery by hour — T1 (Jul 23), 2026-07-20..2026-07-26 (UTC)
CTR, CPM, click-to-install and CPI by hour, T1 (Jul 23)

Country

Table C below runs 21.2% to 57.5% United States. With four installs in the whole campaign there is no per-country result to read, only where the money went.

2026-08-16T16:04:37.631704 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ US GB CA AU NZ VI 0 5 10 15 20 25 30 35 USD spend and installs are a META-day cut (no hour x country grid exists); revenue is the report period Spend against within-day revenue by country — 2026-07-20..2026-07-26 spend within-day revenue
Spend against within-day revenue, by country
2026-08-16T16:04:37.668089 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ GB CA NZ 0 5 10 15 20 USD per install Cost per install by country — 2026-07-20..2026-07-26 (META days)
Cost per install by country

Aggregate

$0.00 of within-day revenue against $72.39 of spend, and zero payers. T1a/control_sexy booked $9.39 from someone who installed on an earlier day, which is the campaign's only revenue of any kind.

2026-08-16T16:04:37.713539 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ booked within-day cohort @ 24h 0 2 4 6 8 USD 0.13 0.00 0.13 the number above each bar is that measure's ROAS against the same period's spend The three revenue measures, 2026-07-20..2026-07-26 (UTC) 2026-07-20..2026-07-26
The three revenue measures on both periods, ROAS above each bar
2026-08-16T16:04:37.753364 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 2026-07-20..2026-07-26 0 2 4 6 8 USD the bottom segment IS the within-day figure: the same number seen twice Booked revenue by how long its payer had been installed (UTC) paid the day they installed one day after two days after three days after four or more days after
Booked revenue by how long its payer had been installed

A. Per asset — delivery

Meta's instrument on both sides of every ratio. Our registrations never enter this table.

assetspendimpressionsCPMclicksCTRinstallsclick→installCPI
T1a/utility_sexy$30.9755955.40244.29%00.00%—
T1a/control_sexy$28.9534982.954011.46%410.00%$7.237
T1a/control_sexy#4$6.5617836.8542.25%00.00%—
T1a/utility_sexy#4$5.9121028.1431.43%00.00%—

Three of the four ads produced no installs at all, on $30.97, $6.56 and $5.91; T1a/control_sexy produced four at $7.237. Four installs separate no creatives.

What it can carry is the price. CPM runs $28.14 to $82.95 here against $3.14 to $11.13 in the India tab; a click costs $1.020.

B. Per asset — the three revenue measures

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 period. Report clock UTC.

assetbookedbROAS (Meta)within-daywROAScohort@HcROASpayerspayer%ARPUARPPUlargest payer
T1a/utility_sexy$0.000.00 (0.00)$0.000.00$0.000.000————
T1a/control_sexy$9.390.32 (0.32)$0.000.00$9.390.3200.0%0.000——
T1a/control_sexy#4$0.000.00 (0.00)$0.000.00$0.000.000————
T1a/utility_sexy#4$0.000.00 (0.00)$0.000.00$0.000.000————

The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.

Zero payers in the campaign. T1a/control_sexy shows $9.39 booked and $0.00 within-day, and the cohort column matches the booked figure, because the payment arrived inside 24 hours of an install that fell outside the day it paid on.

C. Per asset — country mix

⚠ 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.

assetspendIndia %US %other %US % of its revenue
T1a/utility_sexy$30.970.0%51.2%48.8%—
T1a/control_sexy$28.950.0%57.5%42.5%—
T1a/control_sexy#4$6.560.0%21.2%78.8%—
T1a/utility_sexy#4$5.910.0%32.0%68.0%—

The last column is blank on every row because no ad here earned any within-day revenue to take a share of. The two ads that took most of the money put 51.2% and 57.5% of it into the United States.

2026-08-16T16:04:38.035656 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 20 40 60 80 100 % of that asset's spend Where each asset bought — share of its own spend by region, 2026-07-20..2026-07-26 (META days) US GB CA AU NZ VI other
Where each asset bought: share of its own spend by region
2026-08-16T16:04:38.066091 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0.0 0.2 0.4 0.6 0.8 1.0 USD per install Cost per install by region — every asset, 2026-07-20..2026-07-26 (META days)
Cost per install by region, every asset
2026-08-16T16:04:38.092383 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0.0 0.2 0.4 0.6 0.8 1.0 USD Within-day revenue by region — every asset, 2026-07-20..2026-07-26 (META days)
Within-day revenue by region, every asset

The period across the run

Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs on the period are dropped from the composite and the region charts. The campaign's largest ad produced four installs, so both gates exclude everything in it.

2026-08-16T16:04:38.154088 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 payers / installs % Payer rate by day — every asset (UTC)
Payer rate by day, one line per asset
2026-08-16T16:04:38.189284 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 within-day USD per install ARPU by day — every asset (UTC)
ARPU by day, one line per asset
2026-08-16T16:04:38.227630 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 within-day USD per payer ARPPU by day — every asset (UTC)
ARPPU by day, one line per asset
2026-08-16T16:04:38.263494 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 revenue / spend Within-day ROAS by day — every asset (UTC)
Within-day ROAS by day, one line per asset
2026-08-16T16:04:38.314346 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ CTR click→install CPI payer rate * ARPU * wROAS * 0.0 0.2 0.4 0.6 0.8 1.0 normalised across the period (1.0 = best of the pack) * axis sits under the 16-payer bar on most days: direction only, never a level. Assets under 20 installs on the period are not plotted. Composite — every asset across every measure, 2026-07-20..2026-07-26
Composite: every asset across every measure, normalised across the period
2026-08-16T16:04:37.805940 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 CTR % hour of day, pooled across the 7 days of the period — a pooling, not a timeline CTR by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CTR by hour, one line per asset
2026-08-16T16:04:37.905153 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Click-to-install by hour, one line per asset
2026-08-16T16:04:37.952941 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Cost per install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Cost per install by hour, one line per asset
2026-08-16T16:04:37.852624 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD per 1,000 impressions hour of day, pooled across the 7 days of the period — a pooling, not a timeline CPM by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CPM by hour, one line per asset

T2 (Jul 23) — every section below this line is T2 (Jul 23)'s: the day, the hours, the countries, the campaigns and the assets, counted on T2 (Jul 23)'s own ledger and its own accounts. Use the buttons above to switch.

$55.25 and 10.6% of the week, 2,680 impressions at CPM 20.62, 35 installs at $1.579, and $9.11 of within-day revenue from 1 payer. It buys the same five mid-tier countries as T2 (Jul 25). Two ads delivered, one control and one utility, which is the design as built. This week is the campaign's entire delivering life. The rows below are ads.

Hourly

No campaign-scoped hourly table was generated for this period; the account table in section 2 is the report's only hourly table. The charts carry this campaign's own shape.

2026-08-16T16:04:40.121500 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 3 6 9 12 15 18 21 hour (UTC) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Spend by hour 0 3 6 9 12 15 18 21 hour (UTC) 80 100 120 140 160 180 impressions Impressions and installs by hour impressions installs 0 1 2 3 4 5 installs (Meta Leads) The period's motion — whole account, 2026-07-20..2026-07-26 (UTC)
The period's motion: spend by hour, and impressions against installs
2026-08-16T16:04:40.265687 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 CTR % CTR 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 USD per 1,000 impressions CPM 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install 0 4 8 12 16 20 hour (UTC) −0.04 −0.02 0.00 0.02 0.04 USD Cost per install Delivery by hour — T2 (Jul 23), 2026-07-20..2026-07-26 (UTC)
CTR, CPM, click-to-install and CPI by hour, T2 (Jul 23)

Country

Table C below reads 0.0% India and 0.0% United States on both ads, so the whole campaign sits in the same tier as T2 (Jul 25) two tabs up.

2026-08-16T16:04:40.383772 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ MY MX AE SA ZA 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 USD spend and installs are a META-day cut (no hour x country grid exists); revenue is the report period Spend against within-day revenue by country — 2026-07-20..2026-07-26 spend within-day revenue
Spend against within-day revenue, by country
2026-08-16T16:04:40.429777 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ MY MX AE SA ZA 0 1 2 3 4 5 6 7 8 USD per install Cost per install by country — 2026-07-20..2026-07-26 (META days)
Cost per install by country

Aggregate

$9.11 of within-day revenue against $55.25 of spend, a return of 0.16 on 1 payer. One payer carries no revenue statement; the campaign is read on cost.

2026-08-16T16:04:40.476396 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ booked within-day cohort @ 24h 0 2 4 6 8 USD 0.16 0.16 0.16 the number above each bar is that measure's ROAS against the same period's spend The three revenue measures, 2026-07-20..2026-07-26 (UTC) 2026-07-20..2026-07-26
The three revenue measures on both periods, ROAS above each bar
2026-08-16T16:04:40.514482 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 2026-07-20..2026-07-26 0 2 4 6 8 USD the bottom segment IS the within-day figure: the same number seen twice Booked revenue by how long its payer had been installed (UTC) paid the day they installed one day after two days after three days after four or more days after
Booked revenue by how long its payer had been installed

A. Per asset — delivery

Meta's instrument on both sides of every ratio. Our registrations never enter this table.

assetspendimpressionsCPMclicksCTRinstallsclick→installCPI
T2a/control_sexy#2$28.181,30321.631219.29%1310.74%$2.168
T2a/utility_sexy#3$27.071,37719.6617512.71%2212.57%$1.230

The two ads split the budget within a dollar and finished at $2.168 and $1.230 an install. T2a/utility_sexy#3 won every step of the funnel.

Thirteen installs against twenty-two is not a decided comparison. Three small edges in the same direction on 1,303 and 1,377 impressions separate nothing.

B. Per asset — the three revenue measures

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 period. Report clock UTC.

assetbookedbROAS (Meta)within-daywROAScohort@HcROASpayerspayer%ARPUARPPUlargest payer
T2a/control_sexy#2$9.110.32 (0.32)$9.110.32$9.110.3217.7%0.7019.11100.0%
T2a/utility_sexy#3$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——

The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.

One payer worth $9.11, and it landed on the ad that lost the funnel comparison above. The revenue column here says nothing about either creative.

C. Per asset — country mix

⚠ 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.

assetspendIndia %US %other %US % of its revenue
T2a/control_sexy#2$28.180.0%0.0%100.0%0.0%
T2a/utility_sexy#3$27.070.0%0.0%100.0%—

Both ads are 100.0% outside India and outside the United States, and the campaign's CPM of 20.62 sits between the India buys at 6.89 to 8.32 and the American ones at 55.86 to 69.32. The tier ordering is visible in the price before any result is.

2026-08-16T16:04:40.792556 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2a/utility_sexy#3 0 20 40 60 80 100 % of that asset's spend Where each asset bought — share of its own spend by region, 2026-07-20..2026-07-26 (META days) MY MX AE SA ZA other
Where each asset bought: share of its own spend by region
2026-08-16T16:04:40.833022 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2a/utility_sexy#3 0.0 0.5 1.0 1.5 2.0 2.5 3.0 USD per install Cost per install by region — every asset, 2026-07-20..2026-07-26 (META days) MY MX AE SA ZA
Cost per install by region, every asset
2026-08-16T16:04:40.863980 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2a/utility_sexy#3 0.0 0.2 0.4 0.6 0.8 1.0 USD Within-day revenue by region — every asset, 2026-07-20..2026-07-26 (META days)
Within-day revenue by region, every asset

The period across the run

Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs on the period are dropped from the composite and the region charts. One ad in this campaign reached 20 installs.

2026-08-16T16:04:40.932848 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.00 0.01 0.02 0.03 0.04 0.05 payers / installs % Payer rate by day — every asset (UTC) T2a/utility_sexy#3
Payer rate by day, one line per asset
2026-08-16T16:04:40.971719 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.00 0.01 0.02 0.03 0.04 0.05 within-day USD per install ARPU by day — every asset (UTC) T2a/utility_sexy#3
ARPU by day, one line per asset
2026-08-16T16:04:41.008381 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 within-day USD per payer ARPPU by day — every asset (UTC)
ARPPU by day, one line per asset
2026-08-16T16:04:41.046151 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) −0.04 −0.02 0.00 0.02 0.04 revenue / spend Within-day ROAS by day — every asset (UTC) T2a/utility_sexy#3
Within-day ROAS by day, one line per asset
2026-08-16T16:04:41.103568 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ CTR click→install CPI payer rate * ARPU * wROAS * 0.0 0.2 0.4 0.6 0.8 1.0 normalised across the period (1.0 = best of the pack) * axis sits under the 16-payer bar on most days: direction only, never a level. Assets under 20 installs on the period are not plotted. Composite — every asset across every measure, 2026-07-20..2026-07-26 T2a/utility_sexy#3
Composite: every asset across every measure, normalised across the period
2026-08-16T16:04:40.568955 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 CTR % hour of day, pooled across the 7 days of the period — a pooling, not a timeline CTR by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CTR by hour, one line per asset
2026-08-16T16:04:40.660259 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Click-to-install by hour, one line per asset
2026-08-16T16:04:40.705283 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Cost per install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Cost per install by hour, one line per asset
2026-08-16T16:04:40.614411 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD per 1,000 impressions hour of day, pooled across the 7 days of the period — a pooling, not a timeline CPM by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CPM by hour, one line per asset

T3 (Jul 23) — every section below this line is T3 (Jul 23)'s: the day, the hours, the countries, the campaigns and the assets, counted on T3 (Jul 23)'s own ledger and its own accounts. Use the buttons above to switch.

$40.68 and 7.8% of the week, 5,902 impressions at CPM 6.89, 117 installs at $0.348, and $50.02 of within-day revenue from 3 payers. It buys the same five India and South-East Asian countries as T3 (Jul 25), and it is the smallest buy on the page and the cheapest on every cost measure. Two ads delivered, one control and one utility, which is the design as built. This week is the campaign's entire delivering life. The rows below are ads.

Hourly

No campaign-scoped hourly table was generated for this period; the account table in section 2 is the report's only hourly table. The charts carry this campaign's own shape.

2026-08-16T16:04:42.948070 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 3 6 9 12 15 18 21 hour (UTC) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Spend by hour 0 3 6 9 12 15 18 21 hour (UTC) 100 200 300 400 500 600 impressions Impressions and installs by hour impressions installs 0 2 4 6 8 10 installs (Meta Leads) The period's motion — whole account, 2026-07-20..2026-07-26 (UTC)
The period's motion: spend by hour, and impressions against installs
2026-08-16T16:04:43.097812 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 4 8 12 16 20 hour (UTC) 4.90 4.95 5.00 5.05 5.10 5.15 CTR % CTR 0 4 8 12 16 20 hour (UTC) 3.5 3.6 3.7 3.8 3.9 4.0 4.1 USD per 1,000 impressions CPM 0 4 8 12 16 20 hour (UTC) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install 0 4 8 12 16 20 hour (UTC) 2.40 2.45 2.50 2.55 2.60 USD Cost per install Delivery by hour — T3 (Jul 23), 2026-07-20..2026-07-26 (UTC)
CTR, CPM, click-to-install and CPI by hour, T3 (Jul 23)

Country

Table C below reads 79.4% and 57.8% India on the two ads. It buys the same tier as T3 (Jul 25) and spreads a larger share of it outside India.

2026-08-16T16:04:43.215008 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ IN ID PH PK NG 0 10 20 30 40 USD spend and installs are a META-day cut (no hour x country grid exists); revenue is the report period Spend against within-day revenue by country — 2026-07-20..2026-07-26 spend within-day revenue
Spend against within-day revenue, by country
2026-08-16T16:04:43.253342 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ IN ID PH PK 0.0 0.1 0.2 0.3 0.4 0.5 USD per install Cost per install by country — 2026-07-20..2026-07-26 (META days)
Cost per install by country

Aggregate

$50.02 of within-day revenue against $40.68 of spend, a return of 1.23 on 3 payers. It is the highest return in section 5 and it rests on three people, so it is a direction.

2026-08-16T16:04:43.310183 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ booked within-day cohort @ 24h 0 10 20 30 40 50 USD 1.40 1.23 1.32 the number above each bar is that measure's ROAS against the same period's spend The three revenue measures, 2026-07-20..2026-07-26 (UTC) 2026-07-20..2026-07-26
The three revenue measures on both periods, ROAS above each bar
2026-08-16T16:04:43.352530 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 2026-07-20..2026-07-26 0 10 20 30 40 50 USD the bottom segment IS the within-day figure: the same number seen twice Booked revenue by how long its payer had been installed (UTC) paid the day they installed one day after two days after three days after four or more days after
Booked revenue by how long its payer had been installed

A. Per asset — delivery

Meta's instrument on both sides of every ratio. Our registrations never enter this table.

assetspendimpressionsCPMclicksCTRinstallsclick→installCPI
T3a/utility_sexy#2$28.904,1736.9347811.45%11323.64%$0.256
T3a/control_sexy#3$11.781,7296.811146.59%43.51%$2.945

Two ads at the same impression price finished at $0.256 and $2.945 an install. CPM 6.93 against 6.81: the whole gap is after the impression.

The largest same-price separation on the page still rests on 117 installs. T3a/utility_sexy#2 produced 113 of them on $28.90 of the campaign's $40.68.

B. Per asset — the three revenue measures

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 period. Report clock UTC.

assetbookedbROAS (Meta)within-daywROAScohort@HcROASpayerspayer%ARPUARPPUlargest payer
T3a/utility_sexy#2$57.141.98 (1.83)$50.021.73$53.581.8532.4%0.40316.6770.1%
T3a/control_sexy#3$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——

The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.

Three payers, and one of them is 70.1% of the $50.02. Remove that person and most of the campaign's return goes with them. The delivery result above is worth having; the 1.73 beside it is not a number to plan on.

C. Per asset — country mix

⚠ 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.

assetspendIndia %US %other %US % of its revenue
T3a/utility_sexy#2$28.9079.4%0.0%20.6%0.0%
T3a/control_sexy#3$11.7857.8%0.0%42.2%—

Neither ad spent in the United States and neither earned there. The winner bought 79.4% India against the loser's 57.8%, so part of the cost gap above is a mix difference, and this table is where that shows.

2026-08-16T16:04:43.641829 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T3a/utility_sexy#2 0 20 40 60 80 100 % of that asset's spend Where each asset bought — share of its own spend by region, 2026-07-20..2026-07-26 (META days) IN ID PH PK NG other
Where each asset bought: share of its own spend by region
2026-08-16T16:04:43.681220 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T3a/utility_sexy#2 0.0 0.1 0.2 0.3 0.4 USD per install Cost per install by region — every asset, 2026-07-20..2026-07-26 (META days) IN ID PH PK
Cost per install by region, every asset
2026-08-16T16:04:43.712046 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T3a/utility_sexy#2 0 10 20 30 40 USD Within-day revenue by region — every asset, 2026-07-20..2026-07-26 (META days) IN PH
Within-day revenue by region, every asset

The period across the run

Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs on the period are dropped from the composite and the region charts. One ad in this campaign reached 20 installs.

2026-08-16T16:04:43.785769 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.5 1.0 1.5 2.0 2.5 payers / installs % Payer rate by day — every asset (UTC) T3a/utility_sexy#2
Payer rate by day, one line per asset
2026-08-16T16:04:43.829458 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 within-day USD per install ARPU by day — every asset (UTC) T3a/utility_sexy#2
ARPU by day, one line per asset
2026-08-16T16:04:43.875290 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0 2 4 6 8 10 12 14 16 within-day USD per payer ARPPU by day — every asset (UTC) T3a/utility_sexy#2
ARPPU by day, one line per asset
2026-08-16T16:04:43.926246 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 1.700 1.725 1.750 1.775 1.800 1.825 1.850 1.875 revenue / spend Within-day ROAS by day — every asset (UTC) T3a/utility_sexy#2
Within-day ROAS by day, one line per asset
2026-08-16T16:04:43.982114 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ CTR click→install CPI payer rate * ARPU * wROAS * 0.0 0.2 0.4 0.6 0.8 1.0 normalised across the period (1.0 = best of the pack) * axis sits under the 16-payer bar on most days: direction only, never a level. Assets under 20 installs on the period are not plotted. Composite — every asset across every measure, 2026-07-20..2026-07-26 T3a/utility_sexy#2
Composite: every asset across every measure, normalised across the period
2026-08-16T16:04:43.413502 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 CTR % hour of day, pooled across the 7 days of the period — a pooling, not a timeline CTR by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CTR by hour, one line per asset
2026-08-16T16:04:43.511040 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Click-to-install by hour, one line per asset
2026-08-16T16:04:43.555420 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Cost per install by hour — every asset, 2026-07-20..2026-07-26 (UTC)
Cost per install by hour, one line per asset
2026-08-16T16:04:43.464871 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.0 0.2 0.4 0.6 0.8 1.0 USD per 1,000 impressions hour of day, pooled across the 7 days of the period — a pooling, not a timeline CPM by hour — every asset, 2026-07-20..2026-07-26 (UTC)
CPM by hour, one line per asset

7Per asset, pooled across the campaigns

The same three tables as each tab carries, over every ad the account ran in the week. It is the roll-up of the six tabs above and it is where two ads from different campaigns can be seen beside each other. Fifty ads delivered. A #N suffix on a label is a uniqueness counter, because the same creative name recurs across tiers; it is not a version number.

A. Per asset — delivery

Meta's instrument on both sides of every ratio. Our registrations never enter this table.

assetspendimpressionsCPMclicksCTRinstallsclick→installCPI
T1a/utility_sexy$30.9755955.40244.29%00.00%—
T1a/control_sexy$28.9534982.954011.46%410.00%$7.237
T3a/utility_sexy#2$28.904,1736.9347811.45%11323.64%$0.256
T2a/control_sexy#2$28.181,30321.631219.29%1310.74%$2.168
T2a/utility_sexy#3$27.071,37719.6617512.71%2212.57%$1.230
T3b/utility_6s$21.232,3299.1224910.69%6927.71%$0.308
T2b/utility_6s#3$19.461,04418.64908.62%1617.78%$1.216
T2b/latina_es_slip_dress$19.391,26215.36634.99%2641.27%$0.746
T3b/sasian_slip_dress$18.462,5737.171847.15%4423.91%$0.420
T1b/utility_15s$15.2120076.053618.00%616.67%$2.535
T2b/control_10s$14.5091015.93556.04%35.45%$4.833
T1b/utility_10s$14.3123261.68166.90%00.00%—
T1b/utility_6s#2$14.2220370.053115.27%516.13%$2.844
T1b/control_6s$13.9918874.411910.11%15.26%$13.990
T1b/control_15s$13.8321364.93198.92%315.79%$4.610
T1b/control_10s#2$13.6419370.672512.95%520.00%$2.728
T2b/utility_15s#2$13.3777217.32506.48%816.00%$1.671
T2b/control_6s#2$13.3581716.34415.02%717.07%$1.907
T2b/control_15s#2$13.1482915.85536.39%611.32%$2.190
T3b/control_15s#3$13.011,4838.771248.36%1713.71%$0.765
T3b/utility_10s#2$12.791,2879.9413810.72%2719.57%$0.474
T2b/utility_10s#3$12.7962820.37447.01%920.45%$1.421
T3b/utility_15s#3$12.661,13711.13998.71%1616.16%$0.791
T3b/control_10s#3$12.551,2679.911058.29%109.52%$1.255
T3b/control_6s#3$12.181,5797.7116410.39%3219.51%$0.381
T3a/control_sexy#3$11.781,7296.811146.59%43.51%$2.945
T2b/latina_es_bodysuit_10s$11.0182213.39556.69%1323.64%$0.847
T3b/sasian_bodysuit_10s$7.711,0927.0612511.45%3729.60%$0.208
T3b/sasian_jean_shorts$6.638118.18465.67%919.57%$0.737
T1a/control_sexy#4$6.5617836.8542.25%00.00%—
T2b/latina_es_offshoulder$6.0430819.61113.57%327.27%$2.013
T1a/utility_sexy#4$5.9121028.1431.43%00.00%—
T3b/sasian_corset_6s$4.889645.06626.43%1117.74%$0.444
T2b/latina_es_jean_shorts$3.2623413.93135.56%646.15%$0.543
T2b/latina_es_bikini_10s$2.4623410.51177.26%1058.82%$0.246
T3b/sasian_fishnet_top_6s$2.342778.45248.66%625.00%$0.390
T2b/latina_es_corset_10s$2.2519211.72126.25%541.67%$0.450
T2b/latina_es_bodysuit_6s$2.0013714.60107.30%330.00%$0.667
T3b/sasian_offshoulder$1.802686.72176.34%529.41%$0.360
T3b/sasian_corset_10s$1.772058.63146.83%321.43%$0.590
T3b/sasian_bodysuit_6s$1.762357.492611.06%311.54%$0.587
T2b/latina_es_spice5_15s$1.467718.9622.60%150.00%$1.460
T2b/latina_es_fishnet_top_6s$0.797510.5334.00%00.00%—
T3b/sasian_bikini_6s$0.541154.7076.09%342.86%$0.180
T2b/latina_es_corset_6s$0.52774.29228.57%00.00%—
T2b/latina_es_bikini_6s$0.49598.3146.78%125.00%$0.490
T3b/sasian_bikini_10s$0.40439.30613.95%350.00%$0.133
T2b/latina_es_fishnet_top_10s$0.24386.3225.26%00.00%—
T3b/sasian_spice5_15s$0.11293.7926.90%150.00%$0.110
T3b/sasian_fishnet_top_10s$0.11353.1400.00%0——

The five largest lines by spend sit within $4 of each other and returned 0, 4, 113, 13 and 22 installs.

The same creative idea reads completely differently in two tiers. T3a/utility_sexy#2 bought 113 installs at $0.256 on $28.90; T1a/utility_sexy bought none on $30.97.

Click to install is the funnel step that separates within a tier: inside T3b/* it runs 9.52% to 29.60% on CPMs of 9.91 and 7.06.

B. Per asset — the three revenue measures

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 period. Report clock UTC.

assetbookedbROAS (Meta)within-daywROAScohort@HcROASpayerspayer%ARPUARPPUlargest payer
T1a/utility_sexy$0.000.00 (0.00)$0.000.00$0.000.000————
T1a/control_sexy$9.390.32 (0.32)$0.000.00$9.390.3200.0%0.000——
T3a/utility_sexy#2$57.141.98 (1.83)$50.021.73$53.581.8532.4%0.40316.6770.1%
T2a/control_sexy#2$9.110.32 (0.32)$9.110.32$9.110.3217.7%0.7019.11100.0%
T2a/utility_sexy#3$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/utility_6s$47.422.23 (0.81)$41.671.96$47.422.2367.7%0.5346.9430.9%
T2b/utility_6s#3$21.631.11 (1.10)$21.631.11$21.631.11210.5%1.13810.8173.6%
T2b/latina_es_slip_dress$5.710.29 (0.29)$5.710.29$5.710.2913.3%0.1905.71100.0%
T3b/sasian_slip_dress$32.451.76 (1.74)$32.451.76$32.451.7635.8%0.62410.8264.5%
T1b/utility_15s$4.990.33 (0.33)$4.990.33$4.990.33112.5%0.6234.99100.0%
T2b/control_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T1b/utility_10s$0.000.00 (0.00)$0.000.00$0.000.000————
T1b/utility_6s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T1b/control_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T1b/control_15s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T1b/control_10s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/utility_15s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/control_6s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/control_15s#2$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/control_15s#3$9.320.72 (1.25)$9.320.72$9.320.7215.0%0.4669.32100.0%
T3b/utility_10s#2$11.520.90 (0.89)$11.520.90$11.520.9026.9%0.3975.7650.0%
T2b/utility_10s#3$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/utility_15s#3$4.990.39 (1.30)$0.000.00$4.990.3900.0%0.000——
T3b/control_10s#3$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/control_6s#3$5.760.47 (0.00)$5.760.47$5.760.4712.7%0.1565.76100.0%
T3a/control_sexy#3$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_bodysuit_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_bodysuit_10s$20.832.70 (1.94)$20.832.70$30.153.9137.1%0.4966.9444.7%
T3b/sasian_jean_shorts$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T1a/control_sexy#4$0.000.00 (0.00)$0.000.00$0.000.000————
T2b/latina_es_offshoulder$20.993.48 (3.45)$20.993.48$20.993.48133.3%6.99720.99100.0%
T1a/utility_sexy#4$0.000.00 (0.00)$0.000.00$0.000.000————
T3b/sasian_corset_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_jean_shorts$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_bikini_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_fishnet_top_6s$0.000.00 (0.00)$0.000.00$5.762.4600.0%0.000——
T2b/latina_es_corset_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_bodysuit_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_offshoulder$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_corset_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_bodysuit_6s$12.887.32 (7.24)$12.887.32$12.887.32120.0%2.57512.88100.0%
T2b/latina_es_spice5_15s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_fishnet_top_6s$0.000.00 (0.00)$0.000.00$0.000.000————
T3b/sasian_bikini_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_corset_6s$0.000.00 (0.00)$0.000.00$0.000.000————
T2b/latina_es_bikini_6s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_bikini_10s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T2b/latina_es_fishnet_top_10s$0.000.00 (0.00)$0.000.00$0.000.000————
T3b/sasian_spice5_15s$0.000.00 (0.00)$0.000.00$0.000.0000.0%0.000——
T3b/sasian_fishnet_top_10s$0.000.00 (0.00)$0.000.00$0.000.000————

The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.

Nothing here clears the bar; the largest count is 6. The account's 26 payers spread over thirteen ads, and thirty-four of fifty rows earned nothing.

Twelve of the thirteen paying rows have their revenue concentrated in one or two people. Largest-payer shares read 100.0% on seven, and 30.9% on T3b/utility_6s.

The instrument gap is visible per ad and it does not point one way. T3b/utility_6s reads 2.23 against Meta's 0.81, T3b/utility_15s#3 0.39 against 1.30.

C. Per asset — country mix

⚠ 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.

assetspendIndia %US %other %US % of its revenue
T1a/utility_sexy$30.970.0%51.2%48.8%—
T1a/control_sexy$28.950.0%57.5%42.5%—
T3a/utility_sexy#2$28.9079.4%0.0%20.6%0.0%
T2a/control_sexy#2$28.180.0%0.0%100.0%0.0%
T2a/utility_sexy#3$27.070.0%0.0%100.0%—
T3b/utility_6s$34.1590.5%0.0%9.5%0.0%
T2b/utility_6s#3$39.440.0%0.0%100.0%0.0%
T2b/latina_es_slip_dress$19.390.0%0.0%100.0%0.0%
T3b/sasian_slip_dress$21.50100.0%0.0%0.0%0.0%
T1b/utility_15s$36.350.0%42.6%57.4%0.0%
T2b/control_10s$14.500.0%0.0%100.0%—
T1b/utility_10s$14.310.0%46.3%53.7%—
T1b/utility_6s#2$35.280.0%50.7%49.3%—
T1b/control_6s$13.990.0%39.5%60.5%—
T1b/control_15s$13.830.0%37.4%62.6%—
T1b/control_10s#2$13.640.0%38.8%61.2%—
T2b/utility_15s#2$31.730.0%0.0%100.0%—
T2b/control_6s#2$13.350.0%0.0%100.0%—
T2b/control_15s#2$13.140.0%0.0%100.0%—
T3b/control_15s#3$13.0181.9%0.0%18.1%0.0%
T3b/utility_10s#2$12.7982.5%0.0%17.5%0.0%
T2b/utility_10s#3$12.790.0%0.0%100.0%—
T3b/utility_15s#3$12.6683.9%0.0%16.1%—
T3b/control_10s#3$12.5576.6%0.0%23.4%—
T3b/control_6s#3$12.1861.7%0.0%38.3%0.0%
T3a/control_sexy#3$11.7857.8%0.0%42.2%—
T2b/latina_es_bodysuit_10s$11.010.0%0.0%100.0%—
T3b/sasian_bodysuit_10s$28.58100.0%0.0%0.0%0.0%
T3b/sasian_jean_shorts$6.68100.0%0.0%0.0%—
T1a/control_sexy#4$6.560.0%21.2%78.8%—
T2b/latina_es_offshoulder$6.040.0%0.0%100.0%0.0%
T1a/utility_sexy#4$5.910.0%32.0%68.0%—
T3b/sasian_corset_6s$11.62100.0%0.0%0.0%—
T2b/latina_es_jean_shorts$3.260.0%0.0%100.0%—
T2b/latina_es_bikini_10s$17.430.0%0.0%100.0%—
T3b/sasian_fishnet_top_6s$10.30100.0%0.0%0.0%—
T2b/latina_es_corset_10s$2.250.0%0.0%100.0%—
T2b/latina_es_bodysuit_6s$2.000.0%0.0%100.0%—
T3b/sasian_offshoulder$1.88100.0%0.0%0.0%—
T3b/sasian_corset_10s$2.66100.0%0.0%0.0%—
T3b/sasian_bodysuit_6s$5.56100.0%0.0%0.0%0.0%
T2b/latina_es_spice5_15s$1.460.0%0.0%100.0%—
T2b/latina_es_fishnet_top_6s$0.790.0%0.0%100.0%—
T3b/sasian_bikini_6s$6.46100.0%0.0%0.0%—
T2b/latina_es_corset_6s$0.520.0%0.0%100.0%—
T2b/latina_es_bikini_6s$2.930.0%0.0%100.0%—
T3b/sasian_bikini_10s$0.88100.0%0.0%0.0%—
T2b/latina_es_fishnet_top_10s$0.240.0%0.0%100.0%—
T3b/sasian_spice5_15s$7.87100.0%0.0%0.0%—
T3b/sasian_fishnet_top_10s$0.68100.0%0.0%0.0%—

The three tiers do not overlap here: T3 57.8% to 100.0% India, T2 0.0% on both columns, T1* 21.2% to 57.5% United States.

The last column is 0.0% or blank on all fifty rows. No within-day revenue came from the United States, against $91.78 of spend there.

The spend column here does not match table A. Table A is the UTC week, this one the account's own; compare mix, never level.

2026-08-16T16:03:56.454560 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2b/utility_6s#3 T3b/utility_6s T3a/utility_sexy#2 T3b/sasian_bodysuit_10s T2a/utility_sexy#3 T3b/sasian_slip_dress T2b/latina_es_slip_dress T2b/latina_es_bikini_10s T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_corset_6s T3b/sasian_fishnet_top_6s T3b/sasian_bikini_6s 0 20 40 60 80 100 % of that asset's spend Where each asset bought — share of its own spend by region, 2026-07-20..2026-07-26 (META days) IN MX US GB MY AU other
Where each asset bought: share of its own spend by region
2026-08-16T16:03:56.538532 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2b/utility_6s#3 T3b/utility_6s T3a/utility_sexy#2 T3b/sasian_bodysuit_10s T2a/utility_sexy#3 T3b/sasian_slip_dress T2b/latina_es_slip_dress T2b/latina_es_bikini_10s T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_corset_6s T3b/sasian_fishnet_top_6s T3b/sasian_bikini_6s 0.0 0.5 1.0 1.5 2.0 2.5 USD per install Cost per install by region — every asset, 2026-07-20..2026-07-26 (META days) IN MX MY
Cost per install by region, every asset
2026-08-16T16:03:56.595426 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ T2b/utility_6s#3 T3b/utility_6s T3a/utility_sexy#2 T3b/sasian_bodysuit_10s T2a/utility_sexy#3 T3b/sasian_slip_dress T2b/latina_es_slip_dress T2b/latina_es_bikini_10s T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_corset_6s T3b/sasian_fishnet_top_6s T3b/sasian_bikini_6s 0 10 20 30 40 USD Within-day revenue by region — every asset, 2026-07-20..2026-07-26 (META days) IN MX
Within-day revenue by region, every asset

The period across the run

Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs on the period are dropped from the composite and the region charts. No ad on the account cleared 16 payers this week, so every marker on the money charts is hollow.

2026-08-16T16:03:56.707674 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0 2 4 6 8 10 payers / installs % Payer rate by day — every asset (UTC) T3a/utility_sexy#2 T2a/utility_sexy#3 T3b/utility_6s T2b/latina_es_slip_dress T3b/sasian_slip_dress T3b/control_15s#3 T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
Payer rate by day, one line per asset
2026-08-16T16:03:56.803221 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.1 0.2 0.3 0.4 0.5 0.6 within-day USD per install ARPU by day — every asset (UTC) T3a/utility_sexy#2 T2a/utility_sexy#3 T3b/utility_6s T2b/latina_es_slip_dress T3b/sasian_slip_dress T3b/control_15s#3 T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
ARPU by day, one line per asset
2026-08-16T16:03:56.868586 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0 2 4 6 8 10 12 14 16 within-day USD per payer ARPPU by day — every asset (UTC) T3a/utility_sexy#2 T3b/utility_6s T2b/latina_es_slip_dress T3b/sasian_slip_dress T3b/control_15s#3 T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
ARPPU by day, one line per asset
2026-08-16T16:03:56.937054 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 07-20 07-21 07-22 07-23 07-24 07-25 07-26 day (UTC) 0.0 0.5 1.0 1.5 2.0 2.5 revenue / spend Within-day ROAS by day — every asset (UTC) T3a/utility_sexy#2 T2a/utility_sexy#3 T3b/utility_6s T2b/latina_es_slip_dress T3b/sasian_slip_dress T3b/control_15s#3 T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
Within-day ROAS by day, one line per asset
2026-08-16T16:03:57.029278 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ CTR click→install CPI payer rate * ARPU * wROAS * 0.0 0.2 0.4 0.6 0.8 1.0 normalised across the period (1.0 = best of the pack) * axis sits under the 16-payer bar on most days: direction only, never a level. Assets under 20 installs on the period are not plotted. Composite — every asset across every measure, 2026-07-20..2026-07-26 T3a/utility_sexy#2 T2a/utility_sexy#3 T3b/utility_6s T2b/latina_es_slip_dress T3b/sasian_slip_dress T3b/utility_10s#2 T3b/control_6s#3 T3b/sasian_bodysuit_10s
Composite: every asset across every measure, normalised across the period
2026-08-16T16:03:56.154513 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 6.3 6.4 6.5 6.6 6.7 6.8 CTR % hour of day, pooled across the 7 days of the period — a pooling, not a timeline CTR by hour — every asset, 2026-07-20..2026-07-26 (UTC) T3b/sasian_slip_dress
CTR by hour, one line per asset
2026-08-16T16:03:56.267773 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 20 22 24 26 28 30 installs / clicks % hour of day, pooled across the 7 days of the period — a pooling, not a timeline Click → install by hour — every asset, 2026-07-20..2026-07-26 (UTC) T3b/sasian_slip_dress
Click-to-install by hour, one line per asset
2026-08-16T16:03:56.321778 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 0.35 0.40 0.45 0.50 0.55 0.60 USD hour of day, pooled across the 7 days of the period — a pooling, not a timeline Cost per install by hour — every asset, 2026-07-20..2026-07-26 (UTC) T3b/sasian_slip_dress
Cost per install by hour, one line per asset
2026-08-16T16:03:56.211545 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 2 4 6 8 10 12 14 16 18 20 22 hour (UTC) 6.8 7.0 7.2 7.4 7.6 7.8 USD per 1,000 impressions hour of day, pooled across the 7 days of the period — a pooling, not a timeline CPM by hour — every asset, 2026-07-20..2026-07-26 (UTC) T3b/sasian_slip_dress
CPM by hour, one line per asset

8Caveats

⚠⚠ Nothing sits behind this week, so five standing parts of this format are absent from this page. The matched-hours pairing and its sign tests, the chart that lays a prior period over this one, the pooled two-period funnel with its two-proportion tests, and the mix-neutral account line all require a second period, and 2026-07-20 is the earliest UTC day this account can report. No substitute was constructed: this page is not compared against a daily, against a partial week, or against the run to date.

⚠ The instrument gate reads 1.10 and the band is 0.91 to 1.06, so it is outside. On the account's own clock, which is the only clock the gate is valid on, our records total $528.40 against Meta's booked $480.31. The figure is not rounded in and no day-specific reason is offered for it. It bounds any statement on this page that sets our revenue against Meta's column, and it does not touch within-day, which never reads Meta at all.

⚠ The account spent nothing on this app on 07-20, 07-21 and 07-22. Its first spend is 2026-07-23. The account's own delivery export shows money on 07-20 and 07-21 that this report does not count: it sits under the youguqi_* prefix, which the ledger assigns to the earlier HeiHa test. Meta rows here are selected by Ad ID against the run config's ad map, which is what keeps that traffic out of every table.

⚠ The 16-payer bar is cleared by one cell on the whole page. T3 (Jul 25, India/SEA) carries 17 within-day payers; the account carries 26 across the week and no single ad carries more than 6. Every revenue figure in sections 3, 6 and 7 is a direction, and the campaign-level returns of 1.03 and 1.23 are two campaigns and twenty people.

The hourly axis is hour of day pooled across the week and never a clock. Each of the 24 buckets pools every occurrence of that hour, which here is at most four days because the buy starts on 07-23. An hour's row describes a time of day and cannot describe when in the week anything happened.

The cohort figure is 100% covered and frozen. Every install in the week is roughly three weeks old at the 2026-08-16 payment cut, so cohort at 24 hours is a settled level. That makes this the one report in the series whose cohort column can be read the same way as its within-day column.

The country section and table C in section 7 are the account's own UTC-7 week, seven hours offset from every other table. The same ad reads $21.23 of spend in table A and $34.15 in table C for that reason. They are read for mix and never for level.

No regime table was read for this week, and 07-26 is a mixed design in any case. A regime is a stretch over which an ad set's daily budget did not change, and the budget is a geography dial on this account. No budget history was recorded for these six campaigns, so nothing on this page is stated as regime-matched. Separately, the 07-25 campaigns were restructured on 07-26 with creative packs added and arms culled, so the last day of the window is not the same design as the day before it.

The 07-25 build is two messages by three lengths by three tiers, eighteen cells with one ad set each.

The latina_es_ and sasian_ packs entered on 07-26, twelve ads each, so every rate on their rows rests on the last day of the window.

Fifty ads delivered and the tabs partition them exactly. Four in T1 (Jul 23), two in T2 (Jul 23), two in T3 (Jul 23), six in T1 (Jul 25), eighteen in T2 (Jul 25) and eighteen in T3 (Jul 25, India/SEA). Section 7's table is the same fifty rows pooled, so the tabs and the account totals reconcile.

The three 07-23 campaigns deliver nowhere else in this series. They were paused on 07-25, so their rows here are the whole of what they ever bought. Nothing in a later week can extend or revise them.

9What would settle the open questions

Whether the English-speaking tier can ever pay for itself. The United States, Great Britain and Australia took $91.78, $60.12 and $19.62 this week, returned 19, 9 and 4 installs and booked nothing. Two of the six campaigns exist to buy that tier and they are 16.4% and 13.9% of the week's money. The answer needs either a budget large enough to produce sixteen payers there or a decision to stop asking, and at $4.831 to $6.680 an install the first is expensive.

Whether T3's 1.03 is a level. Seventeen payers is one person over the bar, and the same campaign's best ad has its revenue 30.9% concentrated in a single person. Another week at the same budget answers it and costs nothing extra, because the following week already ran.

Whether the instrument gap at 1.10 is the FX table or the payment join. The gate is outside its band on a Meta base of $480.31, which is small enough that a handful of transactions moves it. The later weeks in this series read the same gate on five to ten times the base, and that comparison is the cheap way to tell a small-sample artefact from a real drift.

Nothing about creative. Fifty ads produced 26 within-day payers. The only creative comparison on the page that separates on delivery is T3a/utility_sexy#2 against T3a/control_sexy#3, at $0.256 and $2.945 on the same CPM, and even that carries a mix difference of 79.4% India against 57.8%.

This is the first report in the series and nothing sits behind it. The hourly archive begins 2026-07-19 and a UTC day needs the Meta day before it, so no week earlier than this one can be built. Every figure on this page is printed once and set against nothing: there is no matched-hours pairing, no pooled two-period funnel and no mix-neutral account line, because each of those is a comparison and there is no second period to make it with.

10What this hands to the next week

The week of 2026-07-27 inherits the six campaigns, a cost ordering across three tiers that is already clear at $520.97, and the first period in this series that has something behind it. Everything this page could not do — the matched-hours pairing, the pooled funnel, the sign tests, the mix-neutral account line — the next report can do against this one.

It also inherits a cohort. Nine tenths of what this week booked came from people who paid on the day they arrived, because there was nobody older to inherit from. From 07-27 onward booked and within-day separate, and the gap between them is the stream this week created.

11Reproduce

Report clock UTC. Meta stamps its exports in the ad account's own zone (UTC-7), so every delivery row is restitched from two Meta days. The country table in section 3 and table C in every tab and in section 7 are not restitched and are labelled where they appear.

run_runs/2026-08-16_periods/, generated by generate.sh
config_runs/2026-08-16_receipt_series/run_config_full.json
window2026-07-20 to 2026-07-26 inclusive, UTC. No prior period exists: the hourly archive begins 2026-07-19 and a UTC day needs the Meta day before it
payment cut2026-08-16 10:59 UTC for the report, 2026-08-16 03:59 on the account clock for the instrument gate
ad accountsB1 only. The two shared Nomad Node accounts did not begin buying this app until 2026-08-11, which is after this period, so no portfolio section exists here
spend not countedthe account's own delivery export carries youguqi_* on 07-20 and 07-21, a test for a different product. Meta rows are selected by Ad ID against the config's ads map, so none of it reaches any table
instrument gateon the account's clock: ours $528.40 against Meta booked $480.31, a ratio of 1.10, outside the documented 0.91 to 1.06 band
figuresad_ops/figures/week_2026-07-20/ for the account and ad_ops/figures/week_2026-07-20/<campaign>/ for each tab
python -m ad_ops.measures --config _runs/2026-08-16_receipt_series/run_config_full.json \
    --from 2026-07-20 --to 2026-07-26
python -m ad_ops.report_tables --config _runs/2026-08-16_receipt_series/run_config_full.json \
    --from 2026-07-20 --to 2026-07-26 --campaign-table
python -m ad_ops.report_charts --config _runs/2026-08-16_receipt_series/run_config_full.json \
    --from 2026-07-20 --to 2026-07-26 --out ad_ops/figures/week_2026-07-20 \
    --relpath figures/week_2026-07-20

Each tab repeats the last two with --campaign <key> and its own --out directory, because the chart filenames do not carry the campaign and two campaigns written to one directory overwrite each other. The instrument gate is a second measures run on tz=META; it is the only clock on which the 0.91 to 1.06 check is valid, because Meta files its conversion value on the conversion hour and that column cannot honestly be restitched into a UTC day.

12Appendix — definitions

The report period is seven UTC days, 2026-07-20 to 2026-07-26. Adjust reports in UTC, so a UTC-bucketed report lines up with the attribution dashboard without anyone converting in their head. B1 is fixed at UTC-7, so a UTC day on that account is Meta day D−1 17:00 to 23:59 plus Meta day D 00:00 to 16:59. The two clocks are not close: this week reads $520.97 of spend on the UTC window and $690.00 on the account's own, because the account week runs seven hours later at both ends.

The hourly table is hour of day, pooled. A seven-day period holds 168 hours and the table has 24, so each row pools every occurrence of that hour across the period. It carries diurnal shape and it is not a timeline.

Booked revenue is split by how long its payer had been installed. Over a single day that is the same as splitting by calendar day. Over a week it is not, and the lag-0 row is exactly the within-day total.

The three revenue measures, never one, never mixed, always labelled:

measurecountsmoves after the period closes?
bookedrevenue that arrived inside the period, whatever day its payer installedsettles about four hours after midnight, then fixed. Meta's own number is this basis
within-dayinstalled on a day and paid before that day closednever. Sealed at midnight
cohort at Heach day's installs, counted within H hours of each person's own install. House horizon H=24rises until every install has lived H hours, then frozen. Always state coverage

All three are read on our own payment records. Meta can express only booked, because it has no notion of an install-day cohort, so it appears bracketed beside that column and never as a row of its own. Use within-day for period-over-period, because it is immutable and needs no horizon; use cohort at a fixed horizon to compare hours to each other, because within-day censors by hour of day; booked is what Meta will quote at you, so it is reported to explain the gap and never to rank.

Two install counts exist and they are never crossed. Meta's Leads and our own registrations disagree by 5 to 10%. Meta's is used for the delivery funnel, so CPI and click→install have both numerator and denominator on one instrument. Ours is used for payer rate and every revenue measure, so the payers and the installs they came from are the same population.

A regime is a stretch over which the ad set's daily budget did not change. The budget is a geography dial on this account, so two creatives measured across a budget change were compared on different audiences. No regime table was recorded for this week, so nothing here is stated as regime-matched.

The 16-payer bar (DECISION_LOG.md #37): below roughly 16 payers a revenue figure is a direction and not a magnitude. Revenue per install on this account is a near-zero vector with rare large entries, so a handful of baskets decides any thin cell. This week has 26 within-day payers in total and one campaign cell at or above the bar.

Internal — noindex. Not for distribution outside the team.