Five hundred and seventy-two ads, one copy pool
Hundreds of finished Malay social ads, each carrying its own headline, CTA and destination URL, exported at four placement sizes - and each contrast-checked at its worst text pixel before it counts as finished.

What was done
Not one is picked by hand. One engine renders every ad from a copy pool plus a variation plan, and the variation axes - layout, typeface, gradient ground, palette, CTA treatment - turn on co-prime numbers so two ads next to each other in a batch cannot match.
One 50-ad batch measured 21 layouts, 23 typefaces, 24 gradient styles, 9 CTA treatments, 7 palettes and 50 unique headlines. The worst contrast in that batch was 5.93:1 - measured, not assumed.
What was measured
572finished ads
11batches
4placement sizes
5.93:1worst measured contrast