adspirer-creative · git:20260709.76b05ab · 2026-07-09 · sha256 a6307b304df40c39
adspirer-creative git:20260709.76b05abA
Immutable. This exact content is served forever at /api/v1/blob/a6307b304df40c39.
--- name: adspirer-creative description: Write and refresh ad creative with Adspirer — headlines, descriptions, primary text, and ad copy for Google, Meta, TikTok, LinkedIn, and Amazon, plus diagnosing and fixing creative fatigue when CTR falls and frequency rises. Respects each platform's character limits. --- # Ad creative Follow `adspirer-mcp` before any tool call. Load the platform skill for its exact limits. ## Write from evidence, not imagination Before writing a single headline, look at what already works: - `analyze_search_terms` (Google) or `get_amazon_search_terms` — the actual words people typed to find this business. Those words belong in the copy. - `get_ad_performance` / `get_meta_ad_performance` — which existing ad has the best CTR, and why. - The landing page. Copy that promises something the page doesn't deliver converts once and never again. Ask what makes this business different if it isn't obvious. Generic ad copy is a choice, not a fate. ## Character limits | Platform | Field | Limit | |---|---|---| | Google Search | Headline | 30 | | | Description | 90 | | | Long headline (PMax) | 90 | | Meta | Headline | 255 (~40 visible) | | | Primary text | 2200 (~125 visible) | | | Description | 255 (~30 visible) | | Meta carousel | Card headline | ~40 | | LinkedIn | Headline | 70 | | | Introductory text | 600 (~150 visible) | | TikTok | Ad text | 100 | | Amazon SB | Headline | 50 | Where the hard limit and the visible limit differ, **write to the visible one.** Meta's 2200-character primary text truncates at about 125; anything after that is read by nobody. ## What good looks like - **Lead with the offer or the outcome**, not the company name. Nobody searched for your brand. - **One idea per headline.** Google rotates them independently; a headline that only makes sense next to another headline will appear alone. - **Specifics beat adjectives.** "Same-day callout, no fee" beats "Fast, reliable service." - **Match the search intent.** Someone searching "emergency plumber near me" wants availability and a phone number, not your 30-year heritage. - **Give Google variety.** Fifteen headlines that all say the same thing give the system nothing to test. Vary the angle: price, speed, proof, risk reversal, outcome. Write more than you need and cut. Then check every claim is one the business can actually make — "#1 in the UK" is a legal problem, not a headline. ## Refreshing fatigued creative Rising frequency plus falling CTR is fatigue. The same people keep seeing the same ad. **No bid or budget change fixes it** — a fatigued ad set with more budget just annoys the same people faster. Diagnose: `detect_meta_creative_fatigue`, `detect_tiktok_creative_fatigue`, `analyze_linkedin_creative_performance`. On Meta, a 7-day frequency above ~3 with declining CTR is the signal. Fix, in order of leverage: 1. **New creative concept** — a different hook, not the same image recoloured. 2. **New format** — video where there was static, carousel where there was a single image. 3. **Broaden or rotate the audience** — fatigue is partly an audience-size problem. 4. Only then touch budgets. Change one variable at a time. Swapping the image *and* the copy *and* the audience teaches you nothing about which one mattered. ## Applying it Update in place with `update_ad_headlines`, `update_ad_descriptions`, or `update_ad_content` on Google; the platform's ad-update tools elsewhere. Keep the winning ad running while the new one gathers data — pausing the control before the challenger has proven itself is how accounts go backwards. Ads may need review before serving. Say so, rather than letting the user think it's live.