skills/eachlabs/skills/google-ad-creative-generation

google-ad-creative-generation

SKILL.md

Google Ad Creative Generation

Generate high-converting Google Ads creatives using each::sense. This skill creates images and videos optimized for Google's ad placements, formats, and best practices across Display Network, YouTube, Discovery, and Performance Max campaigns.

Features

  • Display Ads: Static images for Google Display Network in all standard sizes
  • YouTube Thumbnails: Custom thumbnails for video ads and organic content
  • Discovery Ads: Native-looking images for Gmail, Discover feed, and YouTube home
  • Performance Max: Multi-format assets for automated Google campaigns
  • Responsive Display: Multiple assets for Google's ML-optimized ad delivery
  • Shopping Ads: Product-focused creatives for e-commerce campaigns
  • App Campaign Ads: Visuals optimized for app install campaigns
  • Video Ads: Short-form video content for YouTube placements

Quick Start

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a Google Display ad banner for a SaaS product, 300x250 medium rectangle, showing a clean dashboard interface with professional blue color scheme",
    "mode": "max"
  }'

Google Ads Formats & Sizes

Display Network

Format Size (px) Aspect Ratio Use Case
Medium Rectangle 300x250 1.2:1 Most common, high inventory
Large Rectangle 336x280 1.2:1 Premium placements
Leaderboard 728x90 8:1 Header/footer placements
Mobile Leaderboard 320x50 6.4:1 Mobile header
Half Page 300x600 1:2 High visibility sidebar
Large Mobile Banner 320x100 3.2:1 Mobile interstitial
Billboard 970x250 3.9:1 Premium desktop header
Wide Skyscraper 160x600 1:3.75 Sidebar placements

YouTube & Video

Format Size/Ratio Use Case
Custom Thumbnail 1280x720 (16:9) Video thumbnails, companion banners
In-Feed Thumbnail 1200x628 YouTube Discovery ads
Bumper Ad 6 sec, 16:9 Short unskippable ads
Skippable In-Stream 15-30 sec, 16:9 Pre-roll, mid-roll ads

Discovery & Performance Max

Format Size (px) Aspect Ratio Use Case
Square 1200x1200 1:1 Discovery feed, Performance Max
Landscape 1200x628 1.91:1 Gmail, Discover, YouTube
Portrait 960x1200 4:5 Mobile-first placements

Responsive Display Ads

Asset Type Recommended Sizes Notes
Landscape Image 1200x628 Required, 1.91:1 ratio
Square Image 1200x1200 Required, 1:1 ratio
Logo (Landscape) 512x128 Optional, 4:1 ratio
Logo (Square) 128x128 Recommended, 1:1 ratio

Use Case Examples

1. Display Banner Ad (Medium Rectangle)

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 300x250 Google Display ad for an online course platform. Show a person learning on laptop, modern gradient background in purple and blue, leave space for headline text at top and CTA button at bottom.",
    "mode": "max"
  }'

2. YouTube Custom Thumbnail

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 16:9 YouTube thumbnail for a tech review video. Show a smartphone floating with dramatic lighting, bold contrasting colors, leave right side clear for text overlay. Eye-catching and clickable style.",
    "mode": "max"
  }'

3. Discovery Ad (Gmail/Discover)

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 1.91:1 landscape Discovery ad for a travel agency. Show a stunning beach destination with turquoise water, aspirational vacation vibes. Native content feel, not overly promotional. 1200x628 pixels.",
    "mode": "max"
  }'

4. Shopping Ad Product Image

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a product image for Google Shopping. Show wireless headphones on pure white background, multiple angles visible, clean e-commerce style. High detail, professional product photography look.",
    "mode": "max"
  }'

5. App Campaign Ad

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 1:1 square ad for a fitness app install campaign. Show app interface mockup on phone screen with workout tracking visible, energetic person exercising in background. Vibrant orange and black brand colors.",
    "mode": "max"
  }'

6. Responsive Display Ad Set

# Landscape asset (required)
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 1200x628 landscape image for responsive display ads. Insurance company - show a happy family in front of their home, warm and trustworthy feeling, soft natural lighting. Leave clear space for headline overlay.",
    "session_id": "responsive-insurance-001"
  }'

# Square asset (required)
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 1200x1200 square version of the same insurance ad. Same family, same style, recomposed for square format.",
    "session_id": "responsive-insurance-001"
  }'

7. Performance Max Multi-Asset

# Asset 1 - Square
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 1:1 square image for Performance Max campaign. E-commerce fashion brand - show model wearing casual summer dress, lifestyle outdoor setting, Instagram-worthy aesthetic.",
    "session_id": "pmax-fashion-001",
    "mode": "max"
  }'

# Asset 2 - Landscape
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 1.91:1 landscape version for the same fashion campaign, same model and dress, wider scene showing more environment.",
    "session_id": "pmax-fashion-001",
    "mode": "max"
  }'

# Asset 3 - Portrait
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 4:5 portrait version for mobile placements, same fashion campaign, vertical composition focusing on the dress.",
    "session_id": "pmax-fashion-001",
    "mode": "max"
  }'

8. YouTube Bumper Ad

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 6 second 16:9 bumper ad video for a car dealership. Quick cuts showing sleek new car exterior, interior dashboard, driving on highway. End with logo frame. Fast-paced, cinematic quality.",
    "mode": "max"
  }'

9. Leaderboard Banner

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 728x90 leaderboard banner for a web hosting company. Horizontal layout with server imagery on left, gradient blue tech background. Leave center-right area for headline and CTA. Modern and professional.",
    "mode": "max"
  }'

10. Remarketing Ad (with Product Image)

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 300x250 remarketing display ad featuring this watch product. Place the watch prominently with a lifestyle background showing success and sophistication. Add visual urgency elements suggesting limited availability.",
    "mode": "max",
    "image_urls": ["https://example.com/product-watch.jpg"]
  }'

Best Practices

Display Ads

  • Brand Consistency: Use consistent colors, fonts, and visual style across all sizes
  • Clear Hierarchy: Establish visual hierarchy - image, headline, CTA
  • Minimal Text: Let imagery do the heavy lifting; Google prefers image-focused ads
  • High Contrast: Ensure readability across different website backgrounds
  • CTA Visibility: Make call-to-action buttons stand out clearly

YouTube Thumbnails

  • Face Forward: Human faces with eye contact increase click-through rates
  • Bold Colors: Use contrasting colors that pop against YouTube's white interface
  • Readable Text: If adding text, ensure it's legible at small sizes
  • Emotional Expression: Show strong emotions to trigger curiosity
  • Avoid Clutter: Keep composition simple and focused

Discovery Ads

  • Native Feel: Design to blend with organic content, not look like ads
  • Aspirational Imagery: Use lifestyle images that inspire action
  • High Quality: Discovery placements favor premium-looking content
  • Mobile-First: Design for mobile screens where most Discovery traffic comes from

Performance Max

  • Asset Variety: Provide multiple images in different ratios for ML optimization
  • Consistent Branding: Maintain visual consistency across all asset variations
  • Test Different Styles: Mix lifestyle and product-focused images
  • Avoid Text in Images: Google's ML works better with text-free images

Responsive Display

  • Test All Combinations: Design images that work with any headline/description
  • Safe Zones: Keep important elements away from edges (15% margin)
  • Scalability: Ensure images look good from 300px to 1200px wide

Prompt Tips for Google Ads

When creating Google ad creatives, include these details in your prompt:

  1. Exact Dimensions: Specify pixel size or aspect ratio (300x250, 1.91:1, etc.)
  2. Ad Format: Mention if it's for Display, YouTube, Discovery, or Performance Max
  3. Product/Service: Clearly describe what you're advertising
  4. Visual Focus: What should be the main visual element?
  5. Color Scheme: Brand colors or desired palette
  6. Text Space: Request space for headlines, descriptions, or CTAs
  7. Style Reference: Professional, playful, minimal, bold, etc.

Example Prompt Structure

"Create a [dimensions] [ad format] for [product/service].
Show [visual description] with [color scheme/style].
Leave space for [text elements].
[Additional requirements like brand guidelines, urgency, etc.]"

Mode Selection

Ask your users before generating:

"Do you want fast & cheap, or high quality?"

Mode Best For Speed Quality
max Final ad creatives, Performance Max assets, A/B testing winners Slower Highest
eco Quick drafts, concept exploration, bulk banner variations Faster Good

Multi-Turn Creative Iteration

Use session_id to iterate on ad creatives:

# Initial creative
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 300x250 display ad for a fintech app, modern and trustworthy",
    "session_id": "fintech-display-001"
  }'

# Iterate based on feedback
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Make the background darker, add subtle grid pattern, more techy feel",
    "session_id": "fintech-display-001"
  }'

# Generate size variations
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Now create a 728x90 leaderboard version with the same style",
    "session_id": "fintech-display-001"
  }'

Banner Size Batch Generation

Generate multiple banner sizes for a campaign:

# Medium Rectangle
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 300x250 display ad for online shoe store, lifestyle shot of running shoes in action",
    "session_id": "shoe-campaign-001",
    "mode": "eco"
  }'

# Leaderboard
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 728x90 leaderboard version, same shoe campaign style, horizontal layout",
    "session_id": "shoe-campaign-001",
    "mode": "eco"
  }'

# Half Page
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Create a 300x600 half page version, vertical layout showcasing the shoes",
    "session_id": "shoe-campaign-001",
    "mode": "eco"
  }'

Error Handling

Error Cause Solution
Failed to create prediction: HTTP 422 Insufficient balance Top up at eachlabs.ai
Content policy violation Prohibited content Adjust prompt to comply with Google Ads policies
Timeout Complex generation Set client timeout to minimum 10 minutes
Dimension mismatch Invalid size requested Use standard Google Ads dimensions from the table above

Related Skills

  • each-sense - Core API documentation
  • meta-ad-creative-generation - Meta (Facebook/Instagram) ad creatives
  • tiktok-ad-creative-generation - TikTok ad creatives
  • product-photo-generation - E-commerce product shots
Weekly Installs
23
Repository
eachlabs/skills
GitHub Stars
8
First Seen
Feb 20, 2026
Installed on
gemini-cli23
opencode22
github-copilot22
codex22
kimi-cli22
amp22