Claude Memory for Paid Media: The Brand-Voice Foundation Every Skill Inherits
How to set up Claude Memory entries for brand voice, USPs, banned claims, and audience so every paid-media skill you run inherits the right context, without re-pasting it every time.

The fastest way to make Claude useless at paid media is to start every session by re-describing your brand. The second-fastest is to write a brilliant prompt for one ad, then write a slightly-different prompt for the next, and watch your voice drift across the campaign.
Claude Memory fixes both. It’s the single piece of setup that makes every Claude skill in our skill bundle inherit the right context, brand voice, banned claims, USPs, audience, without you re-pasting any of it.
This guide is the foundation post. Read it once, set up the five core entries, then chain the skills as much as you like.
What Claude Memory actually is
Claude Memory is a persistent, file-based context store. Every entry is a small markdown file with frontmatter. When you open a new conversation, all relevant memory entries are loaded into context before your first message.
Three things matter for paid media:
- It survives sessions. Unlike a system prompt, you don’t lose it.
- It’s small and focused. Each entry is a markdown file you can read and edit by hand.
- It’s inherited by every skill. When you invoke
google-ads-rsa-headlinesormeta-primary-text, the skill sees your brand voice without you mentioning it.
If you’re using Claude Code, the memory files live under
~/.claude/projects/<project>/memory/. In Claude.app and Desktop, they
live in the equivalent application data directory and you edit them via
the Memory settings UI.
Why most operators get this wrong
Three common mistakes kill the ROI of memory:
Mistake 1, Putting too much in. Memory is loaded into every conversation. If your brand-voice entry runs 3,000 words, you’re paying for those tokens on every prompt and crowding out the skill’s own instructions. Keep each entry under 400 words.
Mistake 2, Putting too little in. A memory entry that says “premium D2C brand” gives Claude no more than its own training data would. Memory needs to be specific, the exact phrase you use, the exact promise you don’t make, the exact customer you’ve sold to.
Mistake 3, Never updating. Brand voice drifts. Compliance adds banned claims. Q4 brings new offers. Memory entries that haven’t been touched in 9 months hallucinate themselves into wrongness.
The five memory entries every paid-media setup needs
These are the minimum-viable entries. They cover ~85% of the context that an ad-copy skill needs. Anything beyond them is per-campaign.
1. brand-voice.md
This is the entry that makes every skill sound like your brand instead of the generic optimised-for-clicks voice every LLM defaults to.
---
name: brand-voice
description: How [Brand] sounds in every ad, page, and email
type: reference
---
[Brand] is the [category] brand for [audience]. We sound direct, warm,
and a little dry. Never corporate. We talk about products like a friend
who actually uses them, not a marketer trying to sell them.
**In-voice examples:**
- "Wool that wicks. Even on mile 20."
- "We've shipped 1.2M pairs. Roughly 12,000 hikers told us how."
- "Built in Vermont. Worn in Patagonia."
**Out-of-voice phrases (do not generate):**
- "Game-changing"
- "Revolutionary"
- "Elevate your [anything]"
- Anything with em dashes
- Phrases starting with "Discover" or "Experience"
**Tone descriptors:** direct, warm, dry, specific, never breathless.
Why specifics matter: when a skill generates 15 RSA headlines, it recombines patterns from your in-voice examples. Generic descriptors like “premium” produce premium-sounding clichés. Specific descriptors like “a little dry” produce headlines that actually sound like you.
2. banned-claims.md
Compliance debt is real, and a single banned claim slipping into a live ad can cost real money in disapprovals or worse, FTC attention.
---
name: banned-claims
description: Claims, words, and patterns that cannot appear in any ad copy
type: reference
---
The following are never to appear in any ad copy. Each has a reason, use
the reason to judge edge cases (e.g., a synonym should also be banned if
the reason applies).
- **"Clinically proven"**, FDA letter 2024, applies to all supplements
- **"100% organic"** unless USDA-certified for the specific SKU in the ad
- **"Lifetime warranty"** unless the product has the lifetime SKU code
- **"Free returns"**, we charge $5 outside US; rephrase as "Returns from $5"
- **"Doctor-recommended"**, no clinical endorsement on file
- **Any "#1" or "best" claim** without a sourced ranking in the last 12 months
- **Price drops > 50%** in headline text, VAT/sale-price policy
Skills then see this entry and self-check against it before output. Our
ad-copy-qa-checker skill explicitly reads this entry as its banned-
claims source.
3. usp-stack.md
The USPs that show up most often in your top-performing ads. Ordered by how often they convert, not by what marketing thinks is most exciting.
---
name: usp-stack
description: Ranked USPs to draw from when generating ad copy
type: reference
---
Universal USPs (apply to every SKU):
1. Free shipping over $50 (US, CA, UK)
2. 30-day no-quibble returns
3. Made in Vermont
4. 12,000 5-star reviews
5. Founded 2011, family-run
Hero-product USPs (apply only to flagged SKUs):
- Lifetime warranty (SKUs starting LFW-)
- Carbon-negative shipping (DTC website orders only)
- Free monogramming (SKUs in /collections/personalised)
Quarterly refresh: 2026-04-01.
When a skill writes ad copy, it weights toward the top USPs. The quarterly refresh note prompts you to revisit when offers change.
4. audience-profile.md
Who the ad is talking to, by temperature. Skills like meta-primary-text
explicitly branch on audience temperature, so getting this right means
they pick the right hook framework.
---
name: audience-profile
description: Cold / warm / retargeting audience profiles for ad targeting and copy
type: reference
---
**Cold (prospecting)**, Hikers and outdoor enthusiasts, ages 32–55,
HHI $75k+. Skeptical of brands. Tired of $14 socks that fail at mile 15.
What they feel before the product: frustration that their feet always
hurt after long days.
**Warm (engagers, video viewers, IG followers)**, Same demographic, but
have seen us once and are still figuring out if we're worth the $24/pair.
Need social proof and origin story, not feature lists.
**Retargeting (cart abandon, PDP visitors)**, Already chose, balked at
checkout. Reasons (from exit survey): shipping cost (28%), wanted to
compare with REI (22%), got distracted (50%). Hooks that win: free ship
threshold reminder, bundle discount, social proof from outdoor magazines.
5. account-context.md
Operational anchors, which accounts you’re talking about, what the quarter’s goals are, what’s already running.
---
name: account-context
description: Ad account IDs, current campaigns, and quarter targets
type: project
---
**Google Ads:** Customer ID 123-456-7890. Active campaigns: Brand,
Non-Brand-Hiking-Socks, Non-Brand-Wool, PMax-Footwear. Q2 target: 4.2x
ROAS, $180k spend.
**Meta:** Business ID 789012345. Active campaigns: ASC-Footwear,
Retargeting-30d, BAU-Prospecting. Q2 target: 3.8x ROAS, $120k spend.
**Catalog:** 412 active SKUs, fed via Shopify > AI Shopping Feeds.
Last full feed audit: 2026-05-15.
**Currently testing:** UGC vs studio creative split in ASC, weeks 18–22.
Updated: 2026-05-20.
The “Currently testing” line is what stops Claude from suggesting tests you’re already running.
How memory and skills compose
A skill is a specialised instruction set Claude follows when it sees a matching task. Memory is the always-on context every skill inherits.
When you invoke google-ads-rsa-headlines, the skill asks for:
- Product or service
- Landing page
- Primary keyword
- Audience
- 3–5 USPs
- Brand name + forbidden words
With memory configured, you only need to provide #1, #2, and #3. The
skill reads the rest from your brand-voice.md, banned-claims.md,
usp-stack.md, and audience-profile.md entries.
Time saved per skill invocation: 3–5 minutes of context-pasting. Quality difference: massive, the skill stops being “Claude with an instruction set” and becomes “Claude with your account loaded”.
A 10-minute setup that pays for itself in two ads
If you do nothing else with this post, do this:
- Install the Claude skills bundle, it’s free.
- Create the five memory entries above. Use the templates verbatim, then replace bracketed sections with your brand specifics.
- Run one skill (start with
google-ads-rsa-headlines) on a product you know well. Compare the output to ads you’ve actually shipped. - Refine the memory entries based on what was off. (Usually it’s the
brand-voiceentry needing more in-voice examples.) - Re-run the skill. If you’ve done step 4 well, the output should now read as something you’d ship without rewriting.
The whole loop takes one cup of coffee. After that, every ad-copy generation in the next 12 months is faster and more consistent than manual writing.
What not to put in memory
Some operators put their entire campaign brief in memory. Don’t. Memory is for what never changes. Per-campaign context (offer dates, creative themes, test hypothesis) belongs in the conversation, not in memory.
Other things to keep out of memory:
- Per-product specs, there are too many. Use product feed exports or live LP fetches instead.
- Search Console / Ads Manager exports, paste at start of a session, don’t store.
- Anything time-sensitive, promo end dates, holiday hours, weekly pacing targets. These rot in memory and produce wrong output.
- Anything sensitive, API keys, customer PII, financial data. Memory is loaded into every prompt, including ones you might paste to a teammate.
Memory hygiene: the quarterly review
Once you have the five entries, schedule a 30-minute quarterly review:
- Update
usp-stackwith current offers and remove discontinued lines. - Update
account-contextwith current campaign names and quarter targets. - Re-read
brand-voice. If your voice has shifted (it does, brand voice evolves), update the in-voice examples to recent ads that worked. - Re-read
banned-claims. Add anything new from compliance. Remove any that no longer apply. - Leave
audience-profileunless you’ve genuinely repositioned.
A 30-minute review every 90 days keeps memory honest. Skip it for two quarters and memory starts hallucinating you into yesterday’s brand.
Combine with skills, MCPs, and live data
Memory is the always-on layer. Skills are the task layer. Two other layers complete the stack:
- MCP servers, connect Claude to live data sources. For paid media, the relevant MCPs are Google Ads MCP, Meta Ads MCP, and the Shopify MCP for catalog operations. MCPs make skills work on real account data, not hypothetical.
- Project files, paste once at session start. Use for the per-campaign brief that doesn’t belong in memory.
When all four layers are configured (memory + skills + MCPs + brief), Claude becomes a paid-media operator who knows your brand, your account, your tools, and today’s campaign, without you typing any of it.
Start with memory. Add the skills next. Wire up MCPs when you’re ready to let Claude touch live accounts. Then read the end-to-end workflow guide to see all four layers running in one session.
Why wait? Try it free today.
Stop managing feeds manually. Start optimising with AI in 30 seconds.
- 100% free forever, no credit card required
- 1 brand, 1 feed, 100,000 products per feed
- Full AI Product Optimisation, Rule Engine, and 200+ channel exports
- Pay only for AI credits when you need them