Copy Generation

Generate product descriptions, ad copy, social posts, and email campaigns — tone-matched, brand-consistent, at 50,000 copies per hour.

Overview

The Copy Generation module produces marketing text for any channel and format. It understands product context from the Analysis module and generates copy that converts.

Throughput: 50,000 copies/hour | 12 languages | Tone-adaptive

Basic Usage

copy = client.creative.generate_copy(
    product=analysis_result,
    formats=["product_listing", "social_post", "ad_headline", "email_subject"],
    tone="premium",
    languages=["en", "ja", "de"],
    count=5  # variations per format
)

for item in copy.results:
    print(f"[{item.format}] ({item.language}) {item.text[:80]}...")

Supported Formats

Format Output Best for
product_listing Full product description (200-500 words) Amazon, Shopify listings
bullet_points 5-7 feature bullets Amazon bullet points
social_post Short-form + hashtags Instagram, Twitter, TikTok
ad_headline 3-10 word punchy headline Google Ads, Meta Ads
ad_description 90-char ad description Search ads
email_subject Subject line (50 chars max) Email campaigns
email_body Full email copy Newsletters, promos
sms 160-char message SMS marketing
push_notification Short alert text App notifications
review_response Reply to customer review Reputation management

Tone Options

# Available tones
tones = [
    "premium",      # Luxury, refined, exclusive
    "casual",       # Friendly, approachable, conversational
    "technical",    # Spec-focused, detailed, precise
    "urgent",       # Scarcity-driven, time-limited
    "playful",      # Fun, energetic, youthful
    "professional", # B2B, corporate, trustworthy
    "minimal",      # Short, clean, no fluff
]

Batch Copy for Catalog

# Generate copy for 5000 products × 3 formats × 2 languages = 30,000 pieces
batch = client.creative.batch_generate_copy(
    products=catalog_results,
    formats=["product_listing", "social_post", "ad_headline"],
    languages=["en", "zh"],
    tone="casual",
    concurrency=100
)

# Export as CSV for bulk upload
batch.to_csv("generated_copy.csv", columns=["sku", "format", "language", "text"])

A/B Testing Support

# Generate multiple variations for testing
variants = client.creative.generate_copy(
    product=result,
    formats=["ad_headline"],
    count=10,  # 10 headline variations
    diversity="high"  # Maximize variation between outputs
)

# Each variant includes a predicted CTR score
for v in variants.results:
    print(f"CTR score: {v.predicted_ctr:.3f}{v.text}")

results matching ""

    No results matching ""