← All reports
M-Marketing · YouTube Performance

McNeill Stores — YouTube, 13 Markets

← Back to portfolio overview

Google Ads account 480-063-0074. Built directly from BigQuery; no manual export in the loop.

Reporting 2026-09-14 to 2026-10-23 · 30 days · page built 2026-10-26

Range
Custom –
Investment
$77,452
$2,582/day average
Impressions
6.72M
$11.53 CPM
Completed views
5.94M
88.38% watched to the end
Cost / 1k completed
$13.04
the portfolio benchmark
Clicks
4,630
0.069% CTR
Markets
14
over 30 days

01Market performance

The fair way to compare 13 markets running the same creative on the same bid strategy is cost per 1,000 completed views — it folds CPM and completion rate into one number, so a market that buys cheap impressions people abandon gets no credit for it. Portfolio average is $13.04; Lexington is the most efficient, Ann Arbor the least, a 15% spread.

portfolio avg $13.04Lexington$11.99Louisville$12.29Columbus$12.44Tallahassee$12.74Fort Wayne$12.95Toledo$13.03Lansing$13.06Evansville$13.08Bowling Green$13.14Grand Rapids$13.20Detroit$13.22South Bend$13.30Gainesville$13.34Ann Arbor$13.84
MarketBudget/daySpend Impr.CPM Compl. Completed Cost/1k compl. Index
Lexington$50.00$2,075197,803$10.4987.50%173,068$11.9992
Louisville$100.00$4,150389,134$10.6786.77%337,642$12.2994
Columbus$150.00$6,106541,883$11.2790.59%490,889$12.4495
Tallahassee$75.00$3,093272,791$11.3489.04%242,903$12.7498
Fort Wayne$75.00$3,111277,648$11.2086.52%240,211$12.9599
Toledo$150.00$5,531469,671$11.7890.37%424,460$13.03100
Lansing$100.00$3,703315,337$11.7489.94%283,602$13.06100
Evansville$75.00$3,109273,677$11.3686.89%237,795$13.08100
Bowling Green$50.00$2,052178,751$11.4887.35%156,147$13.14101
Grand Rapids$250.00$9,657823,656$11.7288.83%731,617$13.20101
Detroit$500.00$23,8322,041,528$11.6788.32%1,803,075$13.22101
South Bend$125.00$5,028437,503$11.4986.39%377,978$13.30102
Gainesville$50.00$2,051176,352$11.6387.20%153,772$13.34102
Ann Arbor$255.00$3,952324,033$12.2088.12%285,553$13.84106

02Where the ads actually ran

Google itemises channel-level placements for 2,443,468 impressions ($29,266) in this range. This comes from the Google Ads API — the BigQuery transfer carries no automatic-placement data at all.

Inventory typeImpr. CostShare of impr.CPM
Creator / other2,031,668$22,75283.1%$11.20
YouTube TV linear411,800$6,51416.9%$15.82

Top 25 channels by impressions

ChannelImpr.Cost CPM
(YouTube TV) FOX News127,759$2,004$15.69
YouTube Movies52,528$680$12.95
(YouTube TV) MS NOW51,807$747$14.41
(YouTube TV) ESPN34,670$613$17.67
(YouTube TV) CNN30,055$462$15.37
(YouTube TV) Hallmark TV25,133$398$15.82
ABC News23,971$270$11.24
CaseOh21,736$226$10.42
SML21,389$251$11.73
Jimmy Kimmel Live19,601$241$12.30
Midwest Safety18,824$195$10.34
GFAM18,763$251$13.40
CNN16,696$199$11.92
The Daily Show16,398$230$14.03
MS NOW15,856$168$10.57
Candace Owens15,522$173$11.17
Joe Bartolozzi14,469$160$11.06
48 Hours14,406$147$10.19
Joe Bart Games14,276$149$10.41
Fox News14,053$152$10.81
Sam and Colby13,774$148$10.74
CBS News13,569$140$10.35
(YouTube TV) TBS12,864$212$16.52
Jynxzi12,605$138$10.98
NBC News11,835$120$10.15

The long tail is the real story. Across the whole period held (2026-06-24 to 2026-10-23) the ads ran on 300 distinct YouTube channels; 0 of them — 0.0% of the list — delivered fewer than 100 impressions each, 0.0% of disclosed volume in total. Automatic placements concentrate on a handful of large channels and spray the rest across thousands nobody has reviewed.

Those three figures count distinct channels, which cannot be added up across days, so they describe the whole period rather than the selected range. Every other number in this section follows the range exactly. The channel table ranks the 300 largest channels — enough that a top-25 is always correct.

03Who actually saw it

Delivery by age and gender, impression-weighted. Targeting is set to 45+, and the under-45 rows are stray delivery at trivial volume — their CPMs are noise, not signal.

AgeImpr.Cost CPMShare
45-542,323,669$26,680$11.4834.6%
65+1,555,445$18,207$11.7123.1%
55-641,426,584$16,674$11.6921.2%
Undetermined1,414,069$15,890$11.2421.0%
GenderImpr.Cost CPMShare
Male2,879,148$33,702$11.7142.8%
Female2,490,504$28,605$11.4937.1%
Undetermined1,350,115$15,145$11.2220.1%

21.0% of impressions — $15,890 — go to viewers Google cannot age-classify. On connected TV that is usually a shared living-room device rather than a failure of measurement. It is the cheapest inventory in the buy, so excluding it would raise the average CPM while cutting reach. Worth deciding deliberately rather than by default.

03When the ads ran

No ad schedule is set on any campaign, so delivery follows raw YouTube supply. The overnight block runs 0.0% of impressions for 0.0% of spend — 0 impressions costing $0, in the hours when a connected TV screen is most likely to be running unattended.

036912151821MonMonday 00:00 — 0 impressions/dayMonday 01:00 — 0 impressions/dayMonday 02:00 — 0 impressions/dayMonday 03:00 — 0 impressions/dayMonday 04:00 — 0 impressions/dayMonday 05:00 — 0 impressions/dayMonday 06:00 — 0 impressions/dayMonday 07:00 — 0 impressions/dayMonday 08:00 — 0 impressions/dayMonday 09:00 — 0 impressions/dayMonday 10:00 — 0 impressions/dayMonday 11:00 — 0 impressions/dayMonday 12:00 — 0 impressions/dayMonday 13:00 — 0 impressions/dayMonday 14:00 — 0 impressions/dayMonday 15:00 — 0 impressions/dayMonday 16:00 — 0 impressions/dayMonday 17:00 — 0 impressions/dayMonday 18:00 — 53,008 impressions/dayMonday 19:00 — 85,302 impressions/dayMonday 20:00 — 103,790 impressions/dayMonday 21:00 — 144,349 impressions/dayMonday 22:00 — 132,873 impressions/dayMonday 23:00 — 0 impressions/dayTueTuesday 00:00 — 0 impressions/dayTuesday 01:00 — 0 impressions/dayTuesday 02:00 — 0 impressions/dayTuesday 03:00 — 0 impressions/dayTuesday 04:00 — 0 impressions/dayTuesday 05:00 — 0 impressions/dayTuesday 06:00 — 0 impressions/dayTuesday 07:00 — 0 impressions/dayTuesday 08:00 — 0 impressions/dayTuesday 09:00 — 0 impressions/dayTuesday 10:00 — 0 impressions/dayTuesday 11:00 — 0 impressions/dayTuesday 12:00 — 0 impressions/dayTuesday 13:00 — 0 impressions/dayTuesday 14:00 — 0 impressions/dayTuesday 15:00 — 0 impressions/dayTuesday 16:00 — 0 impressions/dayTuesday 17:00 — 0 impressions/dayTuesday 18:00 — 99,240 impressions/dayTuesday 19:00 — 97,456 impressions/dayTuesday 20:00 — 114,637 impressions/dayTuesday 21:00 — 142,014 impressions/dayTuesday 22:00 — 127,349 impressions/dayTuesday 23:00 — 0 impressions/dayWedWednesday 00:00 — 0 impressions/dayWednesday 01:00 — 0 impressions/dayWednesday 02:00 — 0 impressions/dayWednesday 03:00 — 0 impressions/dayWednesday 04:00 — 0 impressions/dayWednesday 05:00 — 0 impressions/dayWednesday 06:00 — 0 impressions/dayWednesday 07:00 — 0 impressions/dayWednesday 08:00 — 0 impressions/dayWednesday 09:00 — 0 impressions/dayWednesday 10:00 — 0 impressions/dayWednesday 11:00 — 0 impressions/dayWednesday 12:00 — 0 impressions/dayWednesday 13:00 — 0 impressions/dayWednesday 14:00 — 0 impressions/dayWednesday 15:00 — 0 impressions/dayWednesday 16:00 — 0 impressions/dayWednesday 17:00 — 0 impressions/dayWednesday 18:00 — 108,017 impressions/dayWednesday 19:00 — 90,469 impressions/dayWednesday 20:00 — 111,918 impressions/dayWednesday 21:00 — 110,600 impressions/dayWednesday 22:00 — 122,906 impressions/dayWednesday 23:00 — 0 impressions/dayThuThursday 00:00 — 0 impressions/dayThursday 01:00 — 0 impressions/dayThursday 02:00 — 0 impressions/dayThursday 03:00 — 0 impressions/dayThursday 04:00 — 0 impressions/dayThursday 05:00 — 0 impressions/dayThursday 06:00 — 0 impressions/dayThursday 07:00 — 0 impressions/dayThursday 08:00 — 0 impressions/dayThursday 09:00 — 0 impressions/dayThursday 10:00 — 0 impressions/dayThursday 11:00 — 0 impressions/dayThursday 12:00 — 0 impressions/dayThursday 13:00 — 0 impressions/dayThursday 14:00 — 0 impressions/dayThursday 15:00 — 0 impressions/dayThursday 16:00 — 0 impressions/dayThursday 17:00 — 0 impressions/dayThursday 18:00 — 87,897 impressions/dayThursday 19:00 — 102,069 impressions/dayThursday 20:00 — 112,441 impressions/dayThursday 21:00 — 87,801 impressions/dayThursday 22:00 — 91,980 impressions/dayThursday 23:00 — 0 impressions/dayFriFriday 00:00 — 0 impressions/dayFriday 01:00 — 0 impressions/dayFriday 02:00 — 0 impressions/dayFriday 03:00 — 0 impressions/dayFriday 04:00 — 0 impressions/dayFriday 05:00 — 0 impressions/dayFriday 06:00 — 0 impressions/dayFriday 07:00 — 0 impressions/dayFriday 08:00 — 0 impressions/dayFriday 09:00 — 0 impressions/dayFriday 10:00 — 0 impressions/dayFriday 11:00 — 0 impressions/dayFriday 12:00 — 0 impressions/dayFriday 13:00 — 0 impressions/dayFriday 14:00 — 0 impressions/dayFriday 15:00 — 0 impressions/dayFriday 16:00 — 0 impressions/dayFriday 17:00 — 0 impressions/dayFriday 18:00 — 63,609 impressions/dayFriday 19:00 — 76,226 impressions/dayFriday 20:00 — 82,725 impressions/dayFriday 21:00 — 75,376 impressions/dayFriday 22:00 — 73,440 impressions/dayFriday 23:00 — 0 impressions/daySatSaturday 00:00 — 0 impressions/daySaturday 01:00 — 0 impressions/daySaturday 02:00 — 0 impressions/daySaturday 03:00 — 0 impressions/daySaturday 04:00 — 0 impressions/daySaturday 05:00 — 0 impressions/daySaturday 06:00 — 0 impressions/daySaturday 07:00 — 0 impressions/daySaturday 08:00 — 0 impressions/daySaturday 09:00 — 0 impressions/daySaturday 10:00 — 0 impressions/daySaturday 11:00 — 0 impressions/daySaturday 12:00 — 0 impressions/daySaturday 13:00 — 0 impressions/daySaturday 14:00 — 0 impressions/daySaturday 15:00 — 0 impressions/daySaturday 16:00 — 0 impressions/daySaturday 17:00 — 0 impressions/daySaturday 18:00 — 0 impressions/daySaturday 19:00 — 0 impressions/daySaturday 20:00 — 0 impressions/daySaturday 21:00 — 0 impressions/daySaturday 22:00 — 0 impressions/daySaturday 23:00 — 0 impressions/daySunSunday 00:00 — 0 impressions/daySunday 01:00 — 0 impressions/daySunday 02:00 — 0 impressions/daySunday 03:00 — 0 impressions/daySunday 04:00 — 0 impressions/daySunday 05:00 — 0 impressions/daySunday 06:00 — 0 impressions/daySunday 07:00 — 0 impressions/daySunday 08:00 — 0 impressions/daySunday 09:00 — 0 impressions/daySunday 10:00 — 0 impressions/daySunday 11:00 — 0 impressions/daySunday 12:00 — 0 impressions/daySunday 13:00 — 0 impressions/daySunday 14:00 — 0 impressions/daySunday 15:00 — 0 impressions/daySunday 16:00 — 0 impressions/daySunday 17:00 — 0 impressions/daySunday 18:00 — 0 impressions/daySunday 19:00 — 0 impressions/daySunday 20:00 — 0 impressions/daySunday 21:00 — 0 impressions/daySunday 22:00 — 0 impressions/daySunday 23:00 — 0 impressions/dayorange = midnight to 6am

04Screens and formats

Creative length is derived from the video duration on each asset. The two cuts buy materially different inventory at materially different prices.

FormatCreativesImpressions SpendCPMShare of spend
15-second144,922,411$51,116$10.3866.0%
30-second391,797,356$26,336$14.6534.0%

05What this report does not cover

Three things in the original July report have no BigQuery source. They are omitted rather than estimated:

  • Co-viewed impressions. Google's estimate of additional people watching the same connected-TV screen. Not exposed by the transfer or the API, so the reach figures here are on a per-viewer basis rather than the co-viewed basis Google's own interface uses.
  • Reach outside a fetched window. Unique users cannot be summed across days or ranges, so reach is only shown when this report's exact period has been requested from the API. Narrow the range and the reach figures disappear rather than mislead.