
An ad variation testing matrix should be two axes and nine cells: three arguments down the rows, three hooks across the columns. Nine ads is what one person can brief in a morning, produce in a day and read inside a week. The 4x4x3 matrix that looks impressive in a planning deck is 48 ads, and the reason nobody ever finishes one is that neither production capacity nor test budget can carry it.
What belongs on each axis
Rows are arguments: the promise the ad makes. Columns are hooks: how the first three seconds earn the next twelve. Everything else is a constant, written at the top of the brief and not touched: one product, one aspect ratio, one CTA, one length, one landing page.
These two axes earn their place because they fail independently: a weak argument behind a strong hook buys attention and wastes it, a strong argument behind a slow open never gets read. Caption style, music and CTA wording move results by single-digit percentages, which nine cells cannot see anyway.
A filled matrix for a project management SaaS selling to ops teams:
| H1: problem stated to camera | H2: silent screen recording | H3: number in the first caption line | |
|---|---|---|---|
| A1: kills the weekly status meeting | "Our Monday standup used to run 40 minutes. Here is what replaced it." | Six unread chat threads scrolling, caption: "this was the status update" | "40 minutes a week, gone" over a cold open on the calendar |
| A2: cheaper than the two tools it replaces | "We were paying for two tools that did half a job each." | Two browser tabs side by side, both showing the same task | "One tool, two invoices cancelled" |
| A3: set up in an afternoon | "Nobody has time for a six-week rollout. This took an afternoon." | Screen capture of the import finishing, timer visible | "Live before end of day" |
That is the test for whether a cell belongs: if you cannot write the argument line and the hook line in one breath, the cell is filler, and it will read as filler on the platform.
Why nine and not forty-eight
Three constraints bind, all of them before ambition does.
Briefing time. With the axes decided, a cell takes about ten minutes: argument line, hook line, a shot list of three or four clips. Nine cells is 90 minutes. Forty-eight is a full day, and around cell 30 you stop writing arguments and start writing variations on them.
Media budget. The cost of one readable cell is arithmetic:
cost per cell = read impressions × CPM / 1000
At a 5,000 impression read and a EUR 12 CPM, that is EUR 60 per cell, so nine cells cost EUR 540 and 48 cells cost EUR 2,880. Substitute your own CPM: at EUR 20 it is EUR 100 per cell and EUR 900 for the matrix.
The fatigue window. The test has to finish before the creative in it starts dying. Our 2026 fatigue benchmark, a synthesis of published platform and agency figures rather than our own experiment, puts days to a 40 percent CTR decline at 9 for food and beverage, 12 to 14 for fashion, about 18 for beauty and DTC, about 21 for electronics and about 28 for B2B SaaS.
Put the three together and the matrix sizes itself.
| Matrix | Cells | Cost at 5,000-impression read, EUR 12 CPM | Days at EUR 80/day | Briefing time | Verticals it finishes inside |
|---|---|---|---|---|---|
| 3x3 | 9 | EUR 540 | 7 | 90 min | all, including food and beverage at 9 days |
| 3x4 | 12 | EUR 720 | 9 | 2 hours | all but food and beverage |
| 4x4 | 16 | EUR 960 | 12 | 2.7 hours | beauty and DTC upward |
| 4x4x3 | 48 | EUR 2,880 | 36 | 8 hours | none, the first cells die before the last are read |
The last row is the point of the table. Thirty-six days to resolve, against a benchmark that has most creative effectively dead within three weeks, means comparing week-one numbers from cell 1 against week-five numbers from cell 48, where a creative averages 38 percent below its peak. That is a calendar artefact, not a result.
How to expand without splitting the budget
The instinct when nine cells resolve is to add a third axis. Replace instead.
Replace the losing row. Kill the three ads in the worst argument row, brief three new arguments, keep nine cells live. Budget per cell never moves, so the next result stays comparable to the last.
Promote the winner out of the matrix. The winning cell graduates into its own ad set with its own budget and refresh schedule, while the matrix stays at EUR 540 a week doing discovery. That is what lets a small account test continuously, and it is the core of the creative testing workflow we recommend.
Do not count formats as cells. One script exported at 9:16 and 4:5 is one cell in two placements, and a German cut of A1 is a distribution decision. Counting those is how teams convince themselves they run 30 variations while testing three ideas.
Run a third variable as a second matrix. Resolve this one, then run a fresh 3x3 with the winning argument fixed and three offers on the rows. Two sequential nine-cell tests cost EUR 1,080 and give two clean reads. One 27-cell test costs EUR 1,620 and gives you a spreadsheet.
How to read a nine-cell result
Read the margins before the cells. Each cell has roughly 5,000 impressions; each row and column has 15,000, three times the sample.
| Argument | H1 | H2 | H3 | Row mean CPA |
|---|---|---|---|---|
| A1: kills the status meeting | 41 | 38 | 36 | 38 |
| A2: cheaper than two tools | 62 | 55 | 58 | 58 |
| A3: set up in an afternoon | 49 | 44 | 45 | 46 |
| Column mean CPA | 51 | 46 | 46 |
The argument axis spreads from 38 to 58, so the best row runs about 34 percent below the worst. The hook axis spreads from 46 to 51, about 10 percent. The argument is worth roughly three times the hook in this account, which tells you what the next matrix varies and what it holds constant.
- One row wins across all three hooks. An argument finding. Keep it, replace the other two rows with arguments adjacent to the winner.
- One column wins across all three arguments. A hook finding. Standardise on it and take the hook axis off the matrix.
- A single cell wins while its row and column sit mid-table. Noise until it repeats. At 5,000 impressions and a 1.62 percent Meta feed CTR (the benchmark median), a cell carries about 81 clicks, and a 10 percent gap at 81 clicks is not a finding. At row level, roughly 243 clicks, differences start being worth acting on. The creative testing calculator works the read size out against your own CPM.
The common mistake is reading the winning cell and rebriefing nine variations of it. Near-duplicates fatigue together: our benchmark cites Meta internal research showing CTR drops 45 percent after a fourth exposure to the same creative, and a viewer does not distinguish four exposures to one ad from four cuts of it. The wider discipline is in our creative testing glossary entry.
What nine cells cost to produce
Genyad is our product, so weigh this accordingly. Nine variations is nine credits, one credit each. Growth is €99 for 65 credits, about €1.52 each, which covers seven nine-cell matrices. The free plan's five variations fill a five-cell pilot, not a full matrix, and editing or re-exporting costs nothing.
What it does not do matters here. No predicted performance scores, so nothing tells you which cell wins before you spend the EUR 540. No publishing to Meta or TikTok, so you export the nine files and upload them. No AI avatars, no static banners, no product-URL or CSV feed import. To fill the matrix with an avatar reading three scripts instead, Arcads (€100 a month for 10 videos, as publicly listed in August 2026) or Creatify ($39 a month, same date) are built for it, and prices move.
Frequently asked questions
How many ads should an ad variation testing matrix contain?
Nine, arranged as three arguments by three hooks, for most accounts. That is about 90 minutes of briefing and roughly EUR 540 of media at a 5,000 impression read and a EUR 12 CPM. Go to 12 or 16 cells only if your daily spend resolves them inside your vertical's fatigue window.
What do I do if two cells tie?
Look at their row and column means instead of the cells. If both tied cells sit in the same winning row, the argument is your finding and the hook difference is noise. If they sit in different rows and columns, you do not have a result: keep both, replace the seven losers, and see which repeats.
Can I run a nine-cell matrix on a small budget?
Yes, by lowering the read rather than the cell count. At a 3,000 impression read and a EUR 12 CPM a cell costs EUR 36 and the matrix costs EUR 324. That buys a directional read, good enough to kill an argument row, not good enough to separate two cells inside one row.
How often should I rebuild the matrix?
Match the vertical, not the calendar. Our fatigue benchmark puts a 40 percent CTR decline at 9 days for food and beverage and about 28 days for B2B SaaS, so a food brand rebuilds weekly and a SaaS account monthly. Shipping 15 to 50 variants a month, which a rolling nine-cell matrix reaches, is where the benchmark sees 3 to 5 times longer campaign lifespan.