How to generate ad copy with AI
Last updated July 28, 2026
uplads can write your primary texts, headlines and descriptions for you - tuned for Meta's feed, in the language you pick, and previewed before anything touches your ad. You stay in control: you fill a short marketing brief, choose a few options, and pick which variants to keep.
This article walks through the full flow. For writing copy by hand, see How to write ad copy, URLs and CTAs.
Open Generate with AI in the Text step
In the bulk launch wizard, go to the Text step where you set up your ad copy. Click the Generate with AI button (the one with the sparkle icon) to open the AI text dialog.
Before you can generate, choose either uplads AI credits or Your own API key under Configuration → AI connection. With your own key, it is encrypted on our servers and only used to call the provider on your behalf. See How to set up your AI provider and API keys. If a generation is blocked or erroring, check Why is AI copy generation blocked or failing?.
Start with context, then choose a creative strategy
When a profile exists under Configuration → Brand context, the dialog shows one compact context card with the active product and audience. You can switch either for this generation without editing the profile. Positioning, product facts, audience pains and outcomes, voice, vocabulary rules and verified proof notes are then injected automatically.
Without a saved Brand Context, Website context is the first control in the dialog. Paste a product or landing-page URL and click Read website. The AI fills the brief automatically and caches the result per URL.
The default flow has only two decisions:
- Confirm the Brand Context or read a website.
- Choose whether one copy bundle should be shared or Vision should create copy per creative.
Open Sharpen this campaign only to review or override the product, campaign angle, audience, pains, proof or additional instructions. Without Brand Context or a successfully read website, What you're marketing remains required.
Reusable Brand Context
For durable setup, use Configuration → Brand context → Fill with AI. One website analysis drafts positioning, voice, products and audience segments, while Sources lets you re-analyze pages later. Every extracted value remains editable and is never treated as approved proof merely because it appeared in voice guidance.
Optional generation settings
Provider, campaign mood, variety, language, CTA and output counts live under Generation settings. The defaults are ready for normal generations; open this section only when you need a deliberate override. The app chooses the appropriate internal copy strategy automatically from the campaign objective.
- Campaign mood - Professional, Casual, Urgent, Witty, Empathetic, Bold, or Story-driven. When a saved brand voice is active, the mood adjusts the energy but cannot override the voice's explicit do/don't rules.
- Variety - how different the variants are from each other:
- Tight - same length and angle, just reworded.
- Balanced - mixed lengths and distinct angles (recommended).
- Diverse - short punchy plus medium plus long story, with strong angle contrast.
- Wild - question, statement, list, story and contrarian formats for maximum spread.
- Language - English, Deutsch, Español, Français, Italiano, Português, Nederlands or Polski.
- CTA hint - bias the copy toward a specific Meta call-to-action verb, or leave it as No preference to let the model decide. The list is narrowed to CTAs Meta allows for your campaign objective.
Under How many variants to generate?, set the count (0-5) for Primary texts, Headlines and Descriptions independently. Set a field to 0 to skip it.
At least one of the three counts must be above 0. Partial runs are supported: for example, you can generate only descriptions and apply one without replacing primary texts or headlines already in the template.
Shared copy for all creatives vs. per-creative vision mode
At the top of the dialog you choose a Mode:
- One copy for all creatives - fast and cheap. A single generation is reused for every ad. This is the default and the right choice most of the time.
- Different copy per creative (Vision) - the AI writes one separate copy bundle per selected creative. Images are analyzed visually; videos use the brief plus their filename because video frames are not analyzed yet. This unlocks when Step 1 contains at least one video or an image with a provider-accessible preview.
A few things to know about Vision mode:
- It makes one call per creative, so it costs roughly that many times a normal generation.
- A single run supports up to 20 eligible creatives. Reduce the selection when the dialog shows the limit.
- Your selected model must support vision (for example gpt-4o, gpt-4.1, or Claude Sonnet/Opus).
- Videos can't be read frame-by-frame yet, so video creatives fall back to brief-only copy using the filename as a hint - they're flagged as such in the review.
- Videos remain eligible even if no preview URL is available because their bytes are never sent to the AI provider.
- A selected image whose preview is not reachable by the external AI provider is excluded before generation and called out in the dialog; it can still use shared copy.
When you apply Vision results, each creative keeps its own copy on launch. Switch between creatives in the Text step to view and edit each one.
Preview quality-checked variants before applying
Click Generate variants to run the brief. uplads forces structured JSON and checks exact counts, duplicate variants and platform limits. If the first response has a repairable issue, uplads performs one best-effort repair pass and keeps whichever result has fewer issues. Missing variants remain a non-blocking quality note. A variant that still exceeds a hard platform limit after repair is removed before it reaches the wizard, while the other valid variants remain available. Only a complete zero-output fails the generation. Meta copy may also show recommendations when a headline or description is longer than the preferred display length.
On the review screen:
- A quality banner confirms the hard checks or shows display-length recommendations.
- Every generated variant is shown as a card with its character count. Primary texts and headlines pre-select all variants; descriptions let you pick one.
- Click any card to toggle whether it's applied. Unselected variants are discarded.
- Use Edit brief to go back and change the inputs, or Regenerate to run again with the same brief.
- When you're happy, click Apply to template (or Apply per-creative copy in Vision mode). Nothing overwrites your wizard copy until you confirm.
For Vision mode, the review follows the carousel-builder pattern: choose a creative in the left sidebar, then inspect its media and exact primary texts, headlines and description in the detail pane. Videos are playable when a preview exists and carry a clear brief-plus-filename note. After applying, the Text step keeps the same creative switcher, and the final review resolves the copy belonging to the selected ad. The cost warning appears before generation, so you always know the relative cost up front.
To keep an eye on spend across generations, see How to track AI usage and estimated cost and How to set a monthly AI spend cap. Want to reuse copy you generated? See How to save and reuse ad copy templates.