Methodology
Version 1.0, 21 October 2026. How we compute the figures shown on the Patternward site. Data collected overnight on 25 to 26 September 2026; delivery period between 1 September 2025 and 1 March 2026.
Data source
Overnight on 25 to 26 September 2026 we collected ads delivered in Poland from the official Meta Ad Library API: 59,943 ads from 9,378 advertiser pages. One company can run several pages.
We do not use spend or impression data, because Meta does not disclose it for commercial ads in the EU.
How the ads were selected
Every query used the same filters: reach country Poland, active and finished ads, all ad types, delivery on any day between 1 September 2025 and 1 March 2026. The exception: four terms (Black Friday, Black Week, Cyber Monday, Christmas) were collected with a delivery window from 1 September to 15 December 2025.
The first kind is 301 queries over lists of advertiser pages, 3,008 pages in total, one page of results per query, so at most 100 ads per query. They returned 29,158 ads and almost always hit the limit of 100.
The second kind is a search for 13 terms tied to shopping occasions and gifts, such as Saint Nicholas Day, Christmas or Valentine's Day. It returned 30,785 new ads not found by the first kind. An ad found both ways counts once, by its ID.
The API returns the newest ads first, and the queries did not page through every result. This is not a random sample or a census of every ad in Poland. It describes the ads these queries found.
Period
An ad entered the sample if it was delivered on any day between 1 September 2025 and 1 March 2026, so it may have started earlier. 59.9% of ads started in the last week before 1 March 2026, and only 63 ads started before 1 September 2025.
Definitions
- Advertiser page
- The Facebook page an ad runs for. One company can run several pages.
- Finished ad
- An ad with a delivery stop date. There are 59,276; the 667 ads without a stop date are left out of run time.
- Run time
- Stop date minus start date, in days. 0 means the same day.
- Reach
- The ad's total EU reach since it started, as reported by Meta, so it grows with run time. Over 98% of that reach is in Poland; 15.7% of ads also reached other EU countries.
- Share of summed reach
- The summed reach of the ads in a group divided by the summed reach of all ads the group was drawn from: for run time the 59,276 finished ads, for reach concentration all 59,943. We add up reach per ad, so a person who saw several ads counts once for each.
- Lead time
- Delivery start date minus the creation date recorded in the Meta Ad Library. Work done before an ad is created is not visible.
- Primary text
- The ad's first non-empty text. A text is repeated when another ad of the same page has exactly the same primary text. We leave out 6,073 ads whose content Meta replaced with its notice.
Results
Key figures
| Result | Value | Base |
|---|---|---|
| Median run time | 3 days | 59,276 finished ads |
| Finished ads that ran 7 days or less | 72.1% | 59,276 finished ads |
| Finished ads that ran over 45 days | 5.7% | 59,276 finished ads |
| 90th percentile of run time | 27 days | 59,276 finished ads |
| Median reach of an ad | 1,207 people | 59,943 ads |
| Share of summed reach held by the top 1% of ads | 46.4% | 59,943 ads |
| Ads created at least a week before start | 1.2% | 59,943 ads |
| Ads whose text repeats in another ad of the page | 74.8% | 51,915 ads with text |
| Ads set to run on both Facebook and Instagram | 81.3% | 59,943 ads |
Run time and reach
| Run time, days | Share of ads | Share of summed reach |
|---|---|---|
| 0 | 12.47% | 0.18% |
| 1 | 19.52% | 2.59% |
| 2 to 3 | 22.37% | 15.30% |
| 4 to 7 | 17.79% | 21.08% |
| 8 to 14 | 10.52% | 16.85% |
| 15 to 30 | 8.37% | 17.47% |
| 31 to 45 | 3.28% | 10.31% |
| 46 to 90 | 3.34% | 7.30% |
| over 90 | 2.35% | 8.91% |
Base: 59,276 finished ads.
Platforms
| Platform | Share of ads |
|---|---|
| 94.12% | |
| 87.20% | |
| Messenger | 60.24% |
| Audience Network | 60.03% |
| Threads | 52.30% |
Share of ads for which Meta lists the platform. An ad can run on several platforms, so the values do not add up to 100%.
Audience gender
| Group | Share of summed reach |
|---|---|
| Women | 60.05% |
| Men | 39.03% |
| Gender unknown | 0.92% |
Audience age
| Group | Share of summed reach |
|---|---|
| 18 to 24 | 10.16% |
| 25 to 34 | 26.41% |
| 35 to 44 | 25.87% |
| 45 to 54 | 19.01% |
| 55 to 64 | 10.39% |
| 65+ | 8.16% |
Summed reach from Meta's age and gender breakdown, 59,943 ads. Each table adds up to 100%.
Limitations
- The sample is not random, so results describe the ads found, not every ad in Poland.
- Two opposite effects are at work. Occasion terms and newest-first collection can inflate short runs, while selecting ads delivered within a date window favours long ones. The direction of the net error is unknown.
- The 667 ads without a stop date are left out of run time; all of them had run for at least 208 days. Counted as long runs, the share of runs of 7 days or less would be 71.3%.
- 12.5% of finished ads have a run time of 0 days. Some may have been rejected or cancelled; the data cannot tell them apart.
- 9.0% of ads (5,419) have their text replaced by Meta's notice about a disabled account, and another 654 by its notice about removed content. Together that is 10.1% of ads. They stay in run time and reach. 1,955 ads have no text.
- Reach is very uneven: the mean is about 17 times the median.
- The age and gender breakdown does not add up exactly to each ad's reach; across all ads the difference is 0.08%.
- The number of ads is not the number of different creatives, because the same text returns in many ads.
- Run time does not describe sales or ad results.
Uncertainty
The results describe a sample that is not random, and ads of one page are not independent of each other. That is why we do not give classical confidence intervals.
Checks
Every result in the tables and charts was computed by at least two separately written scripts on the same data, and they gave identical figures. This checks the arithmetic, not the sample.
Data in the product
For watched brands we record ads from the same official API. Every record has a source and a date, and version history starts on the day we begin watching a brand. Coverage depends on the source and the category.
Missing data is marked as not observed, never as zero. We keep ad records for 13 months, then delete them and log the deletion.
Versions and citation
1.0, 21 October 2026: first publication.
How to cite: Patternward, Methodology, version 1.0, 21 October 2026.
Questions about the data and error reports: [email protected]. We publish corrections here, with the date and the results they affect.