Ad Copy Variations Builder

Every pairing of your lines, checked before you paste.

  • Every combination
  • Length by your limits
  • Clashing pairs flagged
Rows of blank rounded paper cards in orange and sky blue laid in a neat grid on a desk, a few pairs overlapping, in soft daylight.

The guide

Nobody reads your ad in the order you wrote it

Rotating ad formats assemble your lines into thousands of orders you never typed. Counting them exactly, and reading the pairs, is how you proofread what will actually run.

  • 32,760 ordered arrangements of 15 headlines and 4 descriptions, 3 and 2 shown
  • 2,730 the same kit counted without order, twelve times too few
  • 240 to 40 arrangements in the worked example before and after one pin
  • 37 arrangements that show every one of the 171 pairs at least once
  • 183,866 code points classed Wide or Fullwidth in the Unicode 18 width data
Read the full guide Fold the guide 8 min · 18 sources

A writer hands over fifteen headlines and four descriptions in a tidy numbered list. That list is the last time anyone will see the lines in that order.

Rotating ad formats take a pool of short lines and assemble an advertisement from a few of them at the moment it is shown. The best documented case is the responsive search ad. Google’s developer documentation, as read on 12 October 2026, describes a format that accepts three to fifteen headlines and two to four descriptions, shows up to three headlines and up to two descriptions at a time, and rotates them while favouring the combinations that work well together. The arithmetic that follows applies to any format that fills ordered positions from a pool.

The consequence is easy to state and hard to feel. You did not write an advertisement. You wrote a kit, and the advertisement is whatever the kit produces. Proofreading the kit line by line tells you that each part is sound. It tells you nothing about the assembled thing.

Counting what the kit can make

How many assembled things are there? The answer turns on one decision that is easy to get wrong: whether order matters. It does. A reader meets the first headline first, and “Open Sundays” followed by “Book a Tune-Up Online” is not the same row of text as the reverse. Choosing some items from a set and placing them in order is what combinatorics calls a k-permutation, an ordered arrangement of k distinct elements selected from a set.

The count comes from filling the positions one at a time. The first position can take any of the n lines, the second any of the n - 1 that remain, and so on for k positions, which gives n! / (n - k)!. The On-Line Encyclopedia of Integer Sequences tabulates exactly this triangle, the number of permutations of n things taken k at a time. For fifteen headlines shown three at a time it is 15 x 14 x 13, or 2,730 headline rows. Four descriptions shown two at a time give 4 x 3, or 12. The two choices are independent, so they multiply: 32,760 different advertisements from nineteen short lines.

Count the same kit as combinations, where a selection is a set and the arrangement of its members does not matter, and the figures shrink to 455 sets of headlines and 6 pairs of descriptions. That is 2,730 in all, by coincidence the figure for the ordered headline rows alone, and it is twelve times too few. Every set of three headlines can be laid out in six orders and every pair of descriptions in two. A spreadsheet that reports the smaller number is counting the unordered contents of an advertisement, which is something no reader ever sees.

Thirty-two thousand is too many to read. It is not too many to count, to number or to reach. Because every position has a fixed number of candidates, the ten-thousandth arrangement can be written down directly, without listing the 9,999 before it.

The errors that live in pairs

Most of what goes wrong in a rotating format is invisible in the list, because it belongs to no single line. Two headlines can each be fine and still say the same thing twice when they land side by side. A headline that promises local mechanics sits above a description that also promises local mechanics. A line that begins with a lower-case “and” reads as a continuation, and whether it continues anything sensible depends entirely on which line the rotation happens to put in front of it.

These are properties of pairs, and pairs multiply faster than lines. Fifteen headlines hold 105 pairs among themselves. Add four descriptions and there are 171 pairs of lines in the kit, every one of which the slot shape allows to appear together. A person reading the list sees nineteen things. The format can produce 171 distinct meetings, and a repeated phrase in any one of them is a small, public stumble.

A worked example makes the scale concrete, and it is the one the tool on this page opens with. An invented bicycle workshop has six headlines and two descriptions, shown as three headlines and one description. With nothing pinned the count is 6 x 5 x 4 x 2, which is 240 arrangements. Among them, the headline “Repairs From Local Mechanics” can meet a description that says the tyres are “fixed by local mechanics”, and “Same-Day Bike Repair” can meet one that ends “collect it the same day”. Neither clash is visible in either list alone.

Software testers met the same problem long ago. A program with many settings cannot be tested in every configuration, so they build small sets of test cases in which every pair of setting values appears together at least once. A 1997 paper on the AETG system described generating such tests from combinatorial designs and reported that the test set grows only logarithmically with the number of parameters. The mathematical object behind them is the covering array, a relaxation of the older orthogonal array in which every combination must appear but need not appear equally often. The United States National Institute of Standards and Technology keeps tables of them for the design of small but effective test sets.

The same idea proofreads a kit. For the fifteen-and-four example, a greedy construction finds 37 arrangements in which each of the 171 pairs appears at least once, against 32,760 in the full list. No set smaller than 35 could do it, since the 105 headline pairs fit only three to an arrangement. Greedy methods are not guaranteed to find the smallest set, and this one proves nothing about its own size. What it offers is a reading list of a few dozen advertisements, after which no two lines can surprise you by meeting.

Pinning: control bought with variety

The documented format offers a way to take some control back. It is called pinning. A line can be fixed to a position so that it appears only there, several lines can share a pinned position and rotate within it, and a line that is unpinned, or pinned somewhere else, is kept out of a position that has pins.

The arithmetic of a pin is blunt. A pinned position stops being a free choice among all the remaining lines and becomes a choice among the few lines pinned there, while the free positions are filled from the unpinned lines only. In the bicycle example, pinning the workshop’s name to the first headline position leaves one way to fill that position, five ways to fill the second and four ways to fill the third. The count is 1 x 5 x 4 x 2, so the kit goes from 240 to 40. Five sixths of the arrangements are gone, and with them every arrangement that opens with anything else.

That is the trade. A pin guarantees that the name is always present and always first. It also means there are 40 things to show instead of 240. On the larger kit, one headline pinned to the first position cuts 32,760 to 2,184. Pinning a second headline to the same position brings some variety back, 3,744, because the position now rotates between two lines.

Pins also repair pair problems, which is their less obvious use. The headline that opens with “and” does less harm if it can never open the row. Two headlines that say nearly the same thing can be pinned to the same position, and then they can never appear together, because a position shows one line at a time. Seen this way a pin is not only a way to protect a name. It is an edit to the set of pairs.

The cost has to be counted, not assumed. In a model like the one on this page, a pin that names a position the shape does not have, or a set of pins that leaves the unpinned lines no free position to occupy, removes lines from every arrangement, and nothing in the list shows it.

Thirty characters of what, exactly

The documented format sets length limits, and its published figures are 30 characters for a headline, 90 for a description and 15 for each display path. The word doing the quiet work in that sentence is “characters”. The pages that give those figures do not say how a character is counted, and for text outside the basic Latin alphabet the answer changes the number.

Unicode offers at least three honest answers. A code point is one entry in the standard’s table. A UTF-16 code unit is the unit in which a JavaScript string measures its own length. A grapheme cluster is what the Unicode text segmentation annex calls a user-perceived character: the thing a reader would point at and call one letter. An e with a separate combining accent is one cluster and two code points. A family emoji built from three people joined invisibly is one cluster, five code points and eight code units.

East Asian text adds a fourth answer. Unicode’s East Asian Width annex sorts characters into narrow and wide, a distinction inherited from fixed-width legacy fonts whose wider glyphs were twice as wide as the narrower ones. A tally of the current data file finds 183,866 code points classed Wide or Fullwidth, among them the Han ideographs, the kana and the Hangul syllables. A limit that charged two units for each of them would make a headline of twenty ideographs twenty characters by one count and forty by another. Whether a given system counts that way is something to check at the source, and the annex itself calls its guidance a recommendation that implementations may override.

The practical rule is to find out which count the destination uses and, until then, to look at all of them. Browsers can do the work. The Intl.Segmenter object splits a string into graphemes, and the canvas measureText method returns the measured width of a string in a given font, which matters when the real limit is a line of pixels and not a number.

One more honest count belongs here, and it concerns the spreadsheet where most kits are kept. The CSV format wraps a field in quotation marks when it holds a comma or a quotation mark, which is routine. Less routine is a line that begins with an equals sign, a plus, a minus or an at sign: a spreadsheet may treat it as a formula, and the OWASP guidance on CSV injection is to make sure no cell begins with those characters.

None of this predicts what a platform will show. The count is of what a slot shape allows; a platform chooses among those by rules of its own and may show fewer lines than the shape has room for. The pair checks are mechanical. They find repeated words and dangling openers, and they cannot tell whether a line is true, kind or any good. A width measured in one browser’s system font is a measurement of that font and no other.

What the arithmetic does give is an honest picture of the job. Nineteen lines are 32,760 advertisements and 171 meetings. Read the 37.

Sources

Every source consulted for this guide. Links checked October 12, 2026.

  1. Responsive search ads Google for Developers, Google Ads API documentation
  2. Create responsive search ads Google for Developers, Google Ads API documentation
  3. System limits Google for Developers, Google Ads API documentation
  4. AdTextAsset Google for Developers, Google Ads API reference
  5. Permutation Wikipedia
  6. Combination Wikipedia
  7. A008279: Triangle T(n,k) = n!/(n-k)! (0 <= k <= n) read by rows, giving number of permutations of n things k at a time The On-Line Encyclopedia of Integer Sequences
  8. A000142: Factorial numbers The On-Line Encyclopedia of Integer Sequences
  9. The AETG system: an approach to testing based on combinatorial design Cohen, Dalal, Fredman and Patton, IEEE Transactions on Software Engineering, 1997 (OpenAlex record)
  10. Combinatorial Aspects of Covering Arrays Charles J. Colbourn, Le Matematiche, 2004 (OpenAlex record)
  11. NIST Covering Array Tables National Institute of Standards and Technology
  12. UAX #29: Unicode Text Segmentation Unicode Consortium
  13. UAX #11: East Asian Width Unicode Consortium
  14. EastAsianWidth-18.0.0.txt, Unicode Character Database Unicode Consortium
  15. Intl.Segmenter MDN Web Docs
  16. CanvasRenderingContext2D: measureText() method MDN Web Docs
  17. RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files IETF, RFC Editor
  18. CSV Injection OWASP Foundation