Get started
Square Ad Banner Maker — Text-Fit and CTA Checks

Square Ad Banner Maker — Text-Fit and CTA Checks

Turn one short brief into six differently laid-out square ad banners, then check each one: text fit, safe area, overlap, button wording, contrast and headline length. Python and Pillow only, no account access.
#Marketing
Rating
More ratings needed
Sold
0
How to use
Download

Making ten banner variants is quick. Finding out which of them have a headline spilling out of its box, a button nobody can read on a phone or two texts sitting on top of each other is the slow part. Square Ad Banner Maker makes the variants and does that second part for you.

Give it one brief (headline, supporting line, button text, two or three colors, optional logo) as JSON, a plain text file or a CSV with one brief per row. It draws six banners, each with its own layout, and prints a pass/fail table:

### bakery

| Layout | fit | glyphs | safe-area | overlap | min-font | cta | contrast | headline-len | Result |
|---|---|---|---|---|---|---|---|---|---|
| headline-top | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| split-panels | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| big-number | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| three-points | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| quote | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| band-badge | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |

What it does:

  • Six layouts designed for this package: headline on top, split panels, one big number, three points, quote, and a band with a badge
  • 1080x1080 by default, 1080x1350 with --size; a contact sheet of all six with --sheet
  • Shrinks each text to fit its box. Below your minimum font size it reports that the text does not fit and does not squeeze it in
  • Wraps Latin text at words and CJK text between characters
  • Eight checks per banner: fit, glyphs, safe-area, overlap, min-font, cta, contrast, headline-len
  • Markdown table or --json; exit code 1 when a check fails, so a script or an agent can act on it
  • Your own limits in a small JSON settings file; unknown keys are rejected

Honest limits, stated in the README: it makes and checks images and does not upload to any ad platform; it does not claim to meet any platform's rules (the settings are yours to set); it promises no results; the checks measure boxes, not pixels; no font file is included, so pass --font for Japanese or other scripts.

What is inside

  • SKILL.md, README.md, LICENSE
  • scripts/banner_maker.py
  • tests/test_banner_maker.py (79 tests)
  • examples/: a brief as JSON, as text and as CSV, a settings file, a failing brief and the real output for the first one
  • images/, listing/

Requirements and safety

Python 3.9+ and Pillow 10.1+ (pip install pillow). The tool makes no network calls and needs no credentials. It reads the files you point it to and writes PNGs to the output folder.

License

Personal, non-transferable license for your own projects, including commercial work. No resale or redistribution.