DEV Community

Nacim Lahouioui
Nacim Lahouioui

Posted on Fully Autonomous

How Meta's ad prices moved quarter by quarter (2021–2026), from Meta's own earnings reports

Meta doesn't publish a CPM or a dollar price per ad. What it does publish, every quarter, is two year-over-year percentages: how much the average price per ad changed, and how much ad impressions changed, across Facebook, Instagram, Messenger and WhatsApp.

Those two numbers are the closest thing to an official "Meta ad price index" there is. Below is every quarter from Q4 2021 (the first release that states both figures) to Q2 2026, read from Meta's earnings releases and presentations, plus a short script to query the dataset yourself.

The worldwide numbers

Each value is the change versus the same quarter one year earlier. Q2 2026 is compared with Q2 2025, not with Q1 2026.

Quarter Avg. price per ad (YoY) Ad impressions (YoY)
Q4 2021 +6% +13%
Q1 2022 −8% +15%
Q2 2022 −14% +15%
Q3 2022 −18% +17%
Q4 2022 −22% +23%
Q1 2023 −17% +26%
Q2 2023 −16% +34%
Q3 2023 −6% +31%
Q4 2023 +2% +21%
Q1 2024 +6% +20%
Q2 2024 +10% +10%
Q3 2024 +11% +7%
Q4 2024 +14% +6%
Q1 2025 +10% +5%
Q2 2025 +9% +11%
Q3 2025 +10% +14%
Q4 2025 +6% +18%
Q1 2026 +12% +19%
Q2 2026 +12% +14%

By region (since Q1 2023)

Meta's earnings presentations split both figures by user geography. The first presentation that includes the split goes back to Q1 2023. Here are the first and the latest quarters:

Region Price per ad, Q1 2023 Impressions, Q1 2023 Price per ad, Q2 2026 Impressions, Q2 2026
US & Canada −13% +22% +20% +9%
Europe −11% +11% +10% +13%
Asia-Pacific −22% +34% +1% +17%
Rest of World −15% +28% +21% +12%

The full regional series, one row per quarter, is in the CSV linked at the end.

What the data shows

These are descriptive observations, not explanations. Meta's releases report the figures; they don't attribute them to a single cause, and neither does this post.

1. Seven quarters of falling prices, then eleven of rising ones. The average price per ad fell year over year in every quarter from Q1 2022 to Q3 2023. The low point was −22% in Q4 2022. It has been up year over year in every quarter since Q4 2023, peaking at +14% in Q4 2024 and running at +12% in both Q1 and Q2 2026.

2. Impressions never shrank. Ad impressions grew year over year in all 19 quarters, from +5% (Q1 2025) to +34% (Q2 2023). The biggest impression growth coincided with the price declines: in Q4 2022, impressions were up 23% while the price per ad was down 22%.

3. The two lines crossed twice. Impressions grew faster than prices through Q1 2024. In Q2 2024 both were +10%. From Q3 2024 to Q1 2025, prices grew faster than impressions. From Q2 2025 onward, impressions pulled ahead again, while price growth stayed between +6% and +12%.

4. Asia-Pacific sits at one extreme every quarter. In each of the 14 quarters with regional data, Asia-Pacific had the fastest impression growth of the four regions, and the lowest price-per-ad growth (tied with US & Canada in Q4 2024). In Q2 2026, the price per ad rose 21% in Rest of World and 20% in US & Canada, against 10% in Europe and 1% in Asia-Pacific.

One caveat worth repeating: these are averages across every advertiser, objective and placement Meta sells. Your own CPM can move very differently, and a YoY change says nothing about the absolute price level.

How to get these numbers yourself

Everything comes from Meta's investor relations site, investor.atmeta.com.

  1. Worldwide figures: open the quarterly earnings press release (filed as Exhibit 99.1 to the 8-K). In the operational highlights, Meta states the year-over-year change in ad impressions delivered across its Family of Apps and in the average price per ad.
  2. Regional figures: open the earnings presentation (slides) for the same quarter. Two slides chart impressions growth and average price per ad growth by user geography. In recent decks they are slides 12 and 13. Meta assigns each impression to a region based on its estimate of where the user was when the ad was delivered.
  3. Mind the URLs. The PDFs live on Meta's IR CDN, but the path pattern isn't stable (Q3 2023, for example, sits under a different folder than its neighbours). Don't generate the links; scrape them from the IR page or take them from a dataset that stores the source of each row.

If you just want to query the data, the CSV has one row per quarter and a column with the source PDF for each row. A standard-library Python example:

import csv, io, urllib.request

URL = "https://adwize.ai/data/meta-ad-price-history.csv"
rows = list(csv.DictReader(io.TextIOWrapper(urllib.request.urlopen(URL), "utf-8")))

# Longest run of consecutive quarters with a year-over-year price decline
run, best = [], []
for r in rows:
    if int(r["price_per_ad_yoy_pct"]) < 0:
        run.append(r["quarter"])
        best = max(best, run, key=len)
    else:
        run = []
print("Longest decline:", best[0], "to", best[-1], f"({len(best)} quarters)")

# Quarters where impressions grew faster than the price per ad
for r in rows:
    p, i = int(r["price_per_ad_yoy_pct"]), int(r["ad_impressions_yoy_pct"])
    if i > p:
        print(f'{r["quarter"]}: price {p:+d}%, impressions {i:+d}%')
Enter fullscreen mode Exit fullscreen mode

Output of the first print: Longest decline: Q1 2022 to Q3 2023 (7 quarters).

Regional columns follow the pattern us_canada_price_per_ad_yoy_pct, europe_ad_impressions_yoy_pct, and so on. They are empty before Q1 2023.

Using it in your own work

A few places where this series is handy:

  • Sanity-checking your own CPM trend. If your cost per 1,000 impressions rose 30% year over year while Meta's average price per ad rose 12%, most of the gap is specific to your account, audience or creative.
  • Annotating dashboards. Plotting the YoY series next to your account's spend makes it easier to tell a platform-wide shift from a campaign issue.
  • Budget planning. It gives a documented baseline instead of a number from a forum thread.

Source & full dataset

All figures above were checked against Meta's earnings releases and presentations on September 29, 2026. The complete table (worldwide and by region, with a link to the Meta document behind every row) and the CSV are here: Meta price per ad and ad impressions by quarter, maintained by Adwize, an AI agent for Meta ads.

The dataset is published under CC BY 4.0: you can reuse it with attribution. If you spot a figure that doesn't match Meta's documents, the source link on each row makes it quick to check.

Top comments (1)

Collapse
 
lukehoang_ab profile image
Luke Hoang •

Useful dataset, thanks for pulling it from the earnings reports instead of guessing. One caveat for anyone reading this as "my CPMs will rise 12%": price per ad is blended across every format, placement and country, and a lot of Meta's impression growth has come from cheaper markets and placements. For a US-focused app advertiser the swing is often bigger than the headline number. It would be interesting to mark the ATT rollout on the chart too, since your series starts right after it.