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}")