agentleFS
ArnavPuriArnavPuri/designskills/skills/ad-creative-design/SKILL.md

ad-creative-design

Skill17 starsChanged 8 months agoMITView on GitHub

Paid advertising creative: IAB display banners (300x250, 728x90, etc.), Google Display and Performance Max assets, and paid social ads (Meta, LinkedIn, X), via Gemini 3.1 Flash image generation, HTML/CSS, or HTML5 animated ads. Covers exact-size cropping, CTA design, value proposition hierarchy, A/B variations, and platform ad specs. Use whenever the creative will be bought as ad inventory; for organic posts use social-media-graphic, for on-site hero or email banners use banner-design. Trigger phrases: "design an ad", "create a banner ad", "display ad", "ad creative", "Google Display ad", "Meta ad", "ad banner", "create ad variations", "HTML5 ad".

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 10 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈10

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read .agents/design-context.md first -- brand colors (hex), fonts, style archetype

    line 24
  2. Very specific:

    If missing, use the design-context Default Fallbacks and tell the user defaults were used

    line 25
  3. Distinctive:

    Read every output PNG at 100%: check spelling, offer details (prices, %, dates), CTA legibility, logo fidelity.

    line 36
  4. Distinctive:

    Every ad must follow this strict content hierarchy.

    line 79
  5. Distinctive:

    Use one of three patterns: solid (high-contrast fill + shadow), outline (transparent bg + border), or pill (rounded + arrow icon).

    line 122
  6. Very specific:

    Add hover: translateY(-1px) + increased shadow or background swap

    line 124
  7. Distinctive:

    Always leave at least 8px padding around the CTA

    line 143
  8. Distinctive:

    Always generate at least 2 variations when possible.

    line 186
  9. Distinctive:

    When creating an ad, produce:

    line 201
  10. Distinctive:

    Must degrade gracefully (backup static image)

    line 242
  11. Distinctive:

    All assets loaded from relative paths or data URIs

    line 243
  12. Very specific:

    Staggered entry: Use fadeSlideIn (opacity 0->1, translateY 10px->0) with 0.2s staggered delays for logo, visual, headline, CTA.

    line 262
  13. Distinctive:

    No more than 3 frames/scenes

    line 269
  14. Distinctive:

    Avoid fast flashing (accessibility)

    line 270

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Ad Creative Design

Design high-converting ad banners and display creatives. Covers all standard IAB sizes, platform requirements, CTA optimization, and A/B testing frameworks. Output as a Gemini-generated image cropped to exact size, or HTML/CSS (with optional animation) when copy must be pixel-sharp at small sizes.


Step 1: Load Design Context

  1. Read .agents/design-context.md first -- brand colors (hex), fonts, style archetype
  2. If missing, use the design-context Default Fallbacks and tell the user defaults were used
  3. Ad creatives must be strictly on-brand -- ads are often the first brand touchpoint

Gemini Image Generation Path

Pipeline/CLI: image-generation. Prompt craft, cropping, and text-overlay fallback: graphic-design Step 3.

  1. IAB sizes are not Gemini ratios. Generate at the Gemini ratio in the Step 2 table, then --resize WxH (e.g. --aspect-ratio 5:4 --resize 300x250)
  2. Small formats (728x90, 320x50, 160x600, 300x250): downscaled AI text blurs and misspells. Generate the visual/background only ("no text"), then set headline + CTA in HTML/CSS over it and screenshot at exact size. For multi-size sets, generate one master per ratio family and crop from it
  3. Read every output PNG at 100%: check spelling, offer details (prices, %, dates), CTA legibility, logo fidelity. Fix one issue per follow-up turn

Example Prompts

  • Display Ad: "Create a [square/wide/tall] display ad. [product/service] visual on [background]. Headline '[text]' in [style]. CTA button '[action]' in [color]. Clean, conversion-focused layout."
  • Social Ad: "Create a square Meta feed ad. [product] photo centered on [background color]. Short headline '[value prop]' above. CTA '[action]' button at bottom in [brand color]. Minimal text, bold imagery."
  • Retargeting Banner: "Create an ultra-wide leaderboard ad background (8:1), no text; leave the center clear for copy. Logo left, '[offer headline]' center in [font-weight] [font-family], CTA '[action]' right in [accent color] pill button. [brand color] background. Urgency-driven."

Step 2: Identify Ad Format and Size

Standard IAB Ad Sizes

NameDimensionsTypePerformanceGemini ratio -> --resize
Medium Rectangle300 x 250DisplayHighest inventory5:4 -> 300x250
Large Rectangle336 x 280DisplayHigh performance5:4 -> 336x280
Leaderboard728 x 90DisplayTop of page8:1 -> 728x90
Mobile Leaderboard320 x 50MobileMobile standard8:1 -> 320x50
Large Mobile320 x 100MobileBetter engagement4:1 -> 320x100
Wide Skyscraper160 x 600DisplaySidebar1:4 -> 160x600
Half Page300 x 600DisplayHigh impact9:16 -> 300x600
Billboard970 x 250DisplayPremium placement4:1 -> 970x250
Large Leaderboard970 x 90DisplayWide format8:1 -> 970x90
Square250 x 250DisplayCompact1:1 -> 250x250

Export static ads at 2x (e.g. 600x500 for 300x250) only if the ad server accepts high-DPI assets; otherwise deliver exact size and stay under the file-size cap.

Social Ad Sizes

PlatformFormatDimensions
Meta (Feed)Single Image1080 x 1350 (4:5, best on mobile) or 1080 x 1080
Meta (Stories/Reels)Full Screen1080 x 1920 (9:16)
Google Responsive Display / PMaxAsset setLandscape 1200 x 628, square 1200 x 1200, portrait 960 x 1200; logos 1200 x 1200 and 1200 x 300; 5MB max each
LinkedInSponsored Content1200 x 627 or 1080 x 1080
Twitter/XPromoted1200 x 675 or 1080 x 1080

Step 3: Ad Content Hierarchy

Every ad must follow this strict content hierarchy. Limited space means ruthless prioritization.

The AIDA Framework for Ads

  1. Attention -- Visual hook (image, color, animation)
  2. Interest -- Value proposition (what is it, why care)
  3. Desire -- Benefit statement (what they get)
  4. Action -- CTA button (what to do next)

Content Priority by Size

Large Formats (300x600, 970x250, 300x250)

1. Logo (small, top-left or top-center)
2. Hero image or visual
3. Headline (primary value prop, 5-8 words max)
4. Supporting text (1 line, optional)
5. CTA button

Medium Formats (728x90, 320x100)

1. Logo (left side, compact)
2. Headline (3-5 words)
3. CTA button (right side)
-- No room for supporting text or large visuals

Small Formats (320x50, 160x600 narrow area)

1. Logo or brand name (text only)
2. Headline (2-4 words)
3. CTA (text link or small button)

Step 4: CTA Button Design

The CTA is the most important element. It must be unmissable.

CTA Button Styles

Use one of three patterns: solid (high-contrast fill + shadow), outline (transparent bg + border), or pill (rounded + arrow icon). Key properties:

  • padding: 10-12px 24-28px, font-weight: 700, text-transform: uppercase
  • Add hover: translateY(-1px) + increased shadow or background swap
  • Pill variant: border-radius: 50px with ::after arrow content

CTA Copy Best Practices

WeakStrongWhy
SubmitGet StartedAction-oriented
Click HereShop the SaleSpecific benefit
Learn MoreSee How It WorksCuriosity-driven
Buy NowClaim Your 20% OffValue-driven
Sign UpStart Free TrialLow commitment
DownloadGet Your Free GuideOwnership language

CTA Placement Rules

  • 300x250: Bottom-center or bottom-right
  • 728x90: Right side, vertically centered
  • 160x600: Bottom-center
  • 320x50: Right side
  • Always leave at least 8px padding around the CTA
  • CTA should occupy 15-25% of the total ad width

Step 5: Value Proposition Framework

Headline Formulas

  1. Benefit-first: "Save 3 Hours Every Week"
  2. Problem-solution: "Tired of [Problem]? Try [Product]"
  3. Social proof: "Join 50,000+ [Users] Who..."
  4. Urgency: "Last Day: 40% Off Everything"
  5. Curiosity: "The [Tool] Top Companies Use for [Result]"
  6. Numbers: "3x Faster [Task] Starting Today"

Copy Constraints by Size

SizeHeadline MaxBody MaxCTA Max
300x2508 words12 words3 words
728x905 words0 (no room)2 words
160x6006 words10 words2 words
300x6008 words15 words3 words
320x504 words02 words

Step 6: Layout Templates by Size

Layout Patterns by Size

  • 300x250: Flex column. Logo top (12px padding), visual area (flex:1), content bottom (16px padding, centered). Headline 18px/700.
  • 728x90: Flex row, align-items: center, 20px gap. Logo left (28px height), headline (flex:1, 20px/700), CTA right.
  • 160x600: Flex column, centered text. Logo top, visual middle (flex:1), headline 16px/700, body 12px, CTA at bottom (margin-top: auto).
  • 320x50: Flex row on brand-color bg. Text (flex:1, 13px/700 white), CTA right (white bg, brand-color text, 6px 14px padding).

All sizes: position: relative; overflow: hidden; border: 1px solid #E5E7EB;


Step 7: A/B Testing Variation Framework

Always generate at least 2 variations when possible. Test these dimensions:

Variation Axes

AxisVariation AVariation B
HeadlineBenefit-focusedUrgency-focused
CTA ColorBrand primaryHigh-contrast accent
CTA Copy"Get Started""Try Free"
LayoutImage top, text bottomText left, image right
BackgroundLight/whiteDark/brand color
VisualProduct screenshotAbstract/lifestyle

Generating Variations

When creating an ad, produce:

  • Version A: The primary design
  • Version B: Same content, one variable changed (CTA color, headline, or layout)

Label each variation clearly in the output:

<!-- VARIATION A: Benefit headline, primary CTA -->
<div class="ad variation-a">...</div>

<!-- VARIATION B: Urgency headline, accent CTA -->
<div class="ad variation-b">...</div>

Step 8: Platform-Specific Requirements

Google Display Network

  • File size: max 150KB for static uploaded image ads and zipped HTML5 bundles
  • Animation: must stop within 30 seconds total (loops included)
  • Ads with a white or very light background need a visible border so they're distinguishable from the page
  • HTML5 ads need <meta name="ad.size" content="width=300,height=250"> in <head>
  • Click area must cover the entire ad
  • No auto-playing audio

Meta (Facebook/Instagram) Ads

  • Text on image: the 20% text rule was retired in 2020 and is not enforced; still keep image text short -- the headline and primary text fields carry the copy
  • Primary text: ~125 characters before truncation
  • Headline: ~40 characters before truncation
  • 9:16 safe zones (1080x1920): Stories -- keep text/logos out of the top and bottom ~14% (250px); Reels -- top ~14% and bottom ~35% (670px), ~6% from the sides
  • Google Responsive Display: logo and text on images are discouraged -- Google overlays your headlines; supply clean imagery
  • Square (1:1) and vertical (4:5) perform best on mobile
  • Video thumbnails follow same rules

LinkedIn Ads

  • Professional tone -- avoid clickbait
  • Statistics and data-driven headlines perform well
  • Blue tones blend with platform; use contrasting colors
  • Company logo must be visible

Programmatic Display

  • Must degrade gracefully (backup static image)
  • All assets loaded from relative paths or data URIs
  • Click tag implementation required
<!-- Standard click tag -->
<script>
var clickTag = "https://example.com";
</script>
<a href="javascript:void(window.open(window.clickTag))" style="position:absolute;inset:0;z-index:999;">
</a>
<!-- Parent .ad must be position: relative. The ad server replaces clickTag; never hard-code a tracking URL. -->

Step 9: HTML5 Animation for Ads

Animation Patterns

Staggered entry: Use fadeSlideIn (opacity 0->1, translateY 10px->0) with 0.2s staggered delays for logo, visual, headline, CTA. Add a subtle ctaPulse (scale 1->1.03) after entry completes.

Multi-frame rotation: Position frames absolutely, use a shared @keyframes frame with opacity in/out, stagger by total-duration / num-frames. Max 3 frames over 10-15s.

Animation Guidelines

  • Total animation: 30 seconds max including loops (e.g. a 10s sequence x 3 loops)
  • End on a static frame with CTA visible
  • No more than 3 frames/scenes
  • Avoid fast flashing (accessibility)
  • Final frame must show: headline + CTA + logo

Step 10: Ad Border and Container

Give every display ad a clear boundary (required when the background is white or very light):

  • border: 1px solid #CCCCCC; border-radius: 0; overflow: hidden; position: relative; box-sizing: border-box; (border-box keeps the ad at exact IAB size)
  • Full-bleed click area: position: absolute; inset: 0; z-index: 100; cursor: pointer;

Quality Checklist

  • Dimensions exactly match the target ad size (Gemini output cropped with --resize)
  • Output PNG / screenshot was Read at 100%: copy, prices, and CTA spelled right and legible
  • Clear visual hierarchy: Visual > Headline > CTA
  • CTA is prominent and clearly clickable
  • Copy is concise and within character limits
  • Brand colors and fonts from design-context
  • Visible border on white/light-background display ads
  • File size is reasonable (aim for under 150KB total)
  • Animation (if any) ends on a static frame with visible CTA
  • At least 2 variations provided for A/B testing
  • No text below 10px font size
  • Contrast: 4.5:1 for normal text, 3:1 for large text (>=24px or >=18.66px bold) and for the CTA button against its surroundings

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.