Ad Copy
Short promotional text written to grab attention and drive a single action under tight character limits.
Ad Copy
Section titled “Ad Copy”Ad copy is short promotional text written to grab attention and drive a single action - usually under tight character limits. A headline, a line or two of benefit, and a call to action make up its entire structure. Every word fights for the click. The defining constraint is compression: where a landing page earns conversion through depth, ad copy earns the right to be clicked in a few characters or a few seconds. Its job is not to close the deal - it is to make the deal irresistible enough to pursue.
Unlike a landing page, which is the full conversion experience a click leads to - value proposition, benefits organized for scanning, objections handled, social proof, and CTA across a whole page - ad copy is the brief hook that earns the click in the first place. The landing page justifies the promise; ad copy makes the promise urgent and specific enough to act on first.
Canonical template
Section titled “Canonical template”[Headline: hook - outcome, problem, or curiosity gap - 5-15 words][Body/reinforcing line (optional): one concrete benefit or mechanism - 10-20 words][CTA: action verb + object - "Start free trial", "Get the guide", "See how it works" - 2-5 words]When to use
Section titled “When to use”Writing paid search ads, social ads, or display placements, crafting email subject lines intended to lift open rate, promoting a product or offer in a constrained format, supporting a campaign where the ad drives traffic to a landing page, testing multiple value angles quickly before committing to a full campaign.
When not to use
Section titled “When not to use”Explaining a complex product that requires context before evaluation, building credibility with an audience unfamiliar with the brand, internal communications or proposals where promotional register would undermine the message.
Pairs well with
Section titled “Pairs well with”product-thinker, direct-communicator, confident, playful, problem-solution
Often confused with
Section titled “Often confused with”landing-page: A landing page is web copy written to convert a visitor into a single action - the full conversion experience the click leads to. It leads with a clear value proposition, organizes benefits for scanning, handles the obvious objections before the visitor raises them, adds social proof, and drives toward one CTA across a complete page. Ad copy is the brief hook that earns the click to arrive at that page. The landing page is what a reader finds after acting on the ad; ad copy is what makes them act in the first place.
- A headline of 5-15 words that names a specific outcome, problem, or curiosity gap rather than the product name
- Extreme compression - the entire ad unit often fits in one to three lines of text
- A call to action phrased as a specific imperative verb plus object (“Start free trial”, “Get the guide”)
- Present tense or imperative mood throughout - no past-tense narration or discursive explanation
- Benefit-first framing: the reader’s gain appears before any product feature or brand claim
- Character count awareness - every word choice optimized against a tight limit
- One idea, one action - no secondary offers or tangential content
Anti-patterns
Section titled “Anti-patterns”- Writing a feature list (“Now with AI-powered analytics”) instead of benefit-led copy (“See your growth levers in 30 seconds”) - Features tell the reader what the product is; benefits tell the reader what they gain. Ad copy has seconds to earn attention - a feature list shifts the translation burden onto a reader who is already scrolling past.
- Inflating claims with stacked superlatives (“the world’s most powerful, revolutionary, game-changing tool for modern teams”) - Superlative stacking signals low-credibility copy and wastes the character budget that should go to a specific, concrete claim. Outcomes beat adjective piles every time.
- Expanding the ad into landing page territory - adding context, objection handling, social proof, and multiple benefit points inside the ad itself - That is landing page structure: a full conversion experience (value proposition, benefits organized for scanning, objection handling, social proof, and CTA across a whole page) that belongs after the click, not before it. Ad copy is the hook that earns the click; putting landing page content in the ad defeats the purpose of both formats.
- Writing a vague or passive CTA (“Learn more”, “Click here”) that does not name what the reader gains by acting - A weak CTA removes the one moment in the ad where specificity matters most. A named reward (“Start your free trial”, “Get the guide”) gives the reader a concrete reason to move.
Failure modes
Section titled “Failure modes”- Over-compresses - the drive for brevity strips out the one specific claim that would make the ad credible, leaving only an empty hook (“Stop struggling. Start winning.” tells the reader nothing about what the product does) - Every ad needs at least one concrete anchor - a number, an outcome, or a named benefit - that keeps the hook from tipping into empty sloganeering. If cutting to the character limit removes all specificity, the hook itself needs to be reconceived, not just shortened.
- Over-pressures - every element piles on scarcity, deadlines, and pressure (“Act now! Limited spots! Don’t miss out! Today only!”) until the ad reads as a count of pressure tactics rather than a credible offer - Urgency is most effective when it is singular and true. One specific deadline or one honest scarcity signal outperforms a stack of generic pressure phrases that trained readers have learned to ignore.
Instruction
Section titled “Instruction”Write as ad copy. The goal is a single specific action - name it in the headline or CTA.Open with a hook that names the reader's problem, desired outcome, or a sharp curiosity gapin 5-15 words. Follow with one optional reinforcing line - a concrete benefit, a specificnumber, or a named mechanism - in 10-20 words. Close with a CTA that uses a specific actionverb and names what the reader gets ("Start free trial", "Get the guide", "See how it works").Every word must fight for its place against the character limit. No feature lists. Nosuperlative stacks. No secondary offers. One idea. One action. The hook earns the click; thelanding page earns the conversion.Template
Section titled “Template”See the Ad Copy template.
Related
Section titled “Related”Pairs well with
Section titled “Pairs well with”Product Thinker, Direct Communicator, Confident, Playful, Problem-Solution
Avoid with
Section titled “Avoid with”Reverent, Confessional, Skeptical
Often confused with
Section titled “Often confused with”Examples
Section titled “Examples”- Whether the team should move to async-first standups
- Designing a sustainable morning routine
- Choosing Postgres vs DynamoDB for a new service
- Telling stakeholders a committed feature is being cut this quarter
- Getting a new engineer productive in their first two weeks
- Writing to thank a mentor who shaped your career
- Reflecting on keeping a discipline of rest
- Marking a long-serving colleague's departure
- Marking the team shipping a hard, long project
- Arguing a public position on return-to-office
- Announcing a new product to an outside audience
- A personal year-end reckoning with a difficult year
Fernbridge Software - Platform team, open engineering roles LinkedIn feed and Recruiter ads. Three headline variants for the Week 1 test read.
Variant A (timezone equity) Headline: No more 9:30pm standups. Not for anyone. Body: Fernbridge engineers post async by 10am their own local time - every time zone, same rules. CTA: See open roles
Variant B (time recovered) Headline: Get 70 minutes back a week. Keep every blocker answered. Body: We swap the daily call for a three-field Slack post. Blockers get a reply in 18 minutes, median. CTA: See open roles
Variant C (persistent record) Headline: Four time zones. One standup that never disappears. Body: Every update lands in a searchable Slack channel, not a call nobody can search afterward. CTA: See open roles
Targeting: software engineers in the US, UK, and India. CTA held constant across variants - only the hook changes.
Campaign: A few boosted posts for the morning-experiment repo, timed to the Day 30 results. Audience: cold and warm, social and email.
Social, Variant A Headline: 23 of 30 mornings. The phone stays in the kitchen, no exceptions. Body: Four steps, one rule, no app. The full protocol and the daily log are public. CTA: Read the log
Social, Variant B Headline: Three failed attempts. One rule that actually works. Body: The fix is not more willpower. It is moving the charger to another room. CTA: See the rule
Social, Variant C Headline: The habit change that costs one phone charger and thirty days. Body: Water, light, movement, planning, in that order, no app required. CTA: Fork the repo
Email, subject and preview Subject: Beating the phone-scroll morning, 23 of 30 days in Preview: Four steps, one non-negotiable rule, and the log that keeps me honest.
Ad Copy - Notification Service Launch Campaign
Section titled “Ad Copy - Notification Service Launch Campaign”Campaign: Notification Service, external launch Audience: Engineering leads evaluating notification infrastructure vendors Timing: Drafted for Priya’s review, to go live once the Postgres path clears internal traffic (target 2026-05-29 per ADR-0023)
Four variations for testing across paid search, social, display, and lifecycle email before we commit spend to one angle. Ana signs off on the unit that names Postgres before it ships.
Paid search (Google Ads)
Section titled “Paid search (Google Ads)”Headline: Stop paging your team over notification uptime
Body: In-app, email, and Slack delivery from one API, built on infrastructure we have run in production for years.
CTA: See the docs
Social (LinkedIn)
Section titled “Social (LinkedIn)”Headline: Your notification vendor shouldn’t be your riskiest dependency
Body: Built on the database we know how to run at 2am. Sub-second p95 delivery across in-app, email, and Slack.
CTA: Book a demo
Display (retargeting banner)
Section titled “Display (retargeting banner)”Headline: Notifications your users actually see in time
CTA: Start the integration
Lifecycle email
Section titled “Lifecycle email”Subject line: Your users get notified faster, starting now
Preview text: Sub-second delivery across in-app, email, and Slack, from infrastructure we have run for years, not infrastructure we are still testing.
CTA: Read the launch notes
In-app banner
Your usage data, exportable today - no dashboard required. One CSV, every event since you signed up. Open it in the spreadsheet or BI tool you already use. Download your export
Lifecycle email
Your Insights data is ready to download The full dashboard ships Q1 2027. Your data does not wait. Get your export
Headline variants (for testing)
- The dashboard is months away. Your data is not.
- Every Insights event, one CSV, zero setup.
- Your data, your tools - export today.
Internal engineering portal banner Your next hire ships real code in two weeks. Backend Services runs a two-week buddy protocol - named owner, pre-scoped ticket, zero guesswork. [Copy the playbook]
Cross-team Slack post in #eng-leads
Stop writing onboarding docs nobody follows.
Ours pairs a checklist with a named buddy - Priya is on track for her Week 2 ship, right now.
[Steal our checklist]
Internal engineering newsletter Backend Services gives every new hire a buddy, not a sink-or-swim week one. Access, a buddy, and a real ticket are ready before day one - every time, not just for Priya. [Read ADR-0023]
Internal email - subject line and preview text Subject: Steal our two-week onboarding checklist. Preview: Named buddy, pre-scoped ticket, and an on-call rule new hires actually like.
Ad set: the Dana thank-you (audience of one)
Section titled “Ad set: the Dana thank-you (audience of one)”Three angles, one action. Testing which version finally gets sent.
Variant A
Section titled “Variant A”Headline: Ten years of compounding interest. Still unpaid. Body: One stretch role, no safety net, a decade of results traced back to it. CTA: Send the letter now.
Variant B
Section titled “Variant B”Headline: The voice in your head has a name. Body: Same nomination. Same restraint. Same decision to stay close without taking over. The pattern finally has a source. CTA: Tell Dana today.
Variant C
Section titled “Variant C”Headline: Some debts don’t show up on any invoice. Body: Ten years of unpriced patience is the reason stretch roles feel survivable now. That balance is still open. CTA: Ship it today.
Decision: shipping Variant A. No more testing.
Ad Copy - Growing the One in Seven List
Section titled “Ad Copy - Growing the One in Seven List”Three headline tests for a short ad pointing back to the sign-up page, drafted the week the phone-away window went from four hours to ten.
Variant A - problem hook
Section titled “Variant A - problem hook”Still checking your phone on your day off?
One in Seven: fourteen weeks of actually stopping - phone in a drawer, every single week.
Get Monday’s note
Variant B - outcome hook
Section titled “Variant B - outcome hook”The day that does nothing makes everything else work.
Fourteen weeks of one real day off a week - read what changed on the other six.
Read the note
Variant C - curiosity hook
Section titled “Variant C - curiosity hook”I let a work message sit unread for a full day.
One in Seven is a Monday note about keeping one day a week completely offline.
Join the list
Testing all three in the same round. Whichever pulls more sign-ups decides what next Monday’s note leads with.
Howard Thayer send-off - 3:00 today
Intranet homepage banner
Headline: 26 years of answers end today at 3:00 Body: Vendor contacts, incident calls, the 2019 fix nobody else remembered - ask while you still can. CTA: Join us at 3:00
Internal Slack channel post
Headline: One last “who do I ask?” before Howard’s gone Body: 26 years, four vendor contacts only he had, one notebook nobody’s cracked the code on. CTA: Stop by at 3:00
All-hands reminder email
Subject: Last chance to say thanks to Howard Thayer Preview: 3:00 today, main conference room. 26 years doesn’t get a second send-off. CTA: RSVP now
Ad Copy - Halyard Engineering Brand Campaign
Section titled “Ad Copy - Halyard Engineering Brand Campaign”Campaign: Engineering brand / recruiting, built around the checkout rebuild’s close-out Audience: Senior backend and infrastructure engineers evaluating where to work next Internal name: Project Halyard (the ads use plain language; codenames stay internal)
Five variations testing which proof point lands hardest before spend commits to one angle. Priya signs off on the specific-numbers unit before anything goes external.
LinkedIn feed ad - Variant A
Section titled “LinkedIn feed ad - Variant A”Headline: We spent fourteen months not breaking checkout.
Body: Parallel systems, gradual traffic, two near-misses caught before a single customer saw them. That is how this team ships.
CTA: Read the story
LinkedIn feed ad - Variant B
Section titled “LinkedIn feed ad - Variant B”Headline: Zero downtime. Fourteen months. One hard migration.
Body: We kept the old system live until the new one proved itself under real peak load, twice.
CTA: See how we build
Google search ad
Section titled “Google search ad”Targeting: “senior backend engineer” / “platform migration case study”
Headline: An Engineering Team That Ships When Ready, Not on a Date
Body: Two launch dates slipped for real bugs, not politics. What shipped held through the two highest-traffic periods on record.
CTA: See open roles
Retargeting display ad
Section titled “Retargeting display ad”Audience: Careers page visitors, no application started after 7 days
Headline: Fourteen months. Zero customer-visible incidents. That is the standard here.
CTA: Meet the team
Careers page teaser email
Section titled “Careers page teaser email”Subject line: The checkout rebuild nobody rushed
Preview text: Fourteen months, two near-misses caught before launch, zero customer-visible incidents. Here is what the team behind it looks like.
CTA: Read the write-up
hybrid-anchor Launch - Ad Copy Set
Section titled “hybrid-anchor Launch - Ad Copy Set”Five ad units supporting the hybrid-anchor framework release, each driving traffic to the landing page. Audience: People, HR, and engineering leaders weighing their own return-to-office policy.
LinkedIn feed ad - Variant A
Section titled “LinkedIn feed ad - Variant A”Headline: Stop picking a side in the return-to-office fight.
Body: Two anchor days a week, fully flexible the rest - the policy we shipped instead of choosing a camp.
CTA: Get the framework
LinkedIn feed ad - Variant B
Section titled “LinkedIn feed ad - Variant B”Headline: We shipped a return-to-office policy nobody had to lose.
Body: Two fixed anchor days beat an unwritten five-day expectation - both objections answered before you announce anything.
CTA: Read the case
Google search ad
Section titled “Google search ad”Targeting: “return to office policy” Display URL: millbrooksoftware.com/hybrid-anchor
Headline: A Return-to-Office Policy, Free Under CC BY 4.0
Body: Two anchor days, three flexible, both sides’ objections pre-answered - built and running before we published it.
CTA: Get the framework
Sponsored newsletter placement - HR trade newsletter
Section titled “Sponsored newsletter placement - HR trade newsletter”Subject: The return-to-office policy that isn’t a compromise
Preview: Two mandatory anchor days. Three flexible. Every objection your team will raise, already answered.
CTA: Get the framework
Retargeting display ad
Section titled “Retargeting display ad”Audience: Landing page visitors, no conversion after 7 days
Headline: Still weighing your return-to-office call?
Body: See how Priya Ahluwalia’s team answered the two objections that stall most hybrid rollouts.
CTA: Book a rollout call
Paid search - Google Ads
Headline A: Feedback Buried in Spreadsheets and Tickets? Headline B: Turn Customer Feedback Into One Roadmap Description: Tidemark ranks what your customers actually ask for and shares one roadmap link. Free plan, no sales call. CTA: Join the Waitlist
Social ad - LinkedIn
Headline: Stop Copying Feedback Into a Spreadsheet Body: Tidemark pulls feedback from wherever it lives, ranks it by what customers ask for most, and shares one roadmap link. CTA: Get On the List
Display banner
Headline: Every Customer Request. One Ranked List. CTA: Join Free
Email subject line
Subject: Your roadmap, ranked by what customers actually said Preview: Public launch June 30. Free plan, no sales call.
Ad set: Meridian coalition email
Headline: Eleven people are still owed one real account of Meridian. Body: The real decision-making, the funder withdrawal, and what changes next time, arriving in February. CTA: Get the real account.
Ad set: The reply to Theo
Headline: A message from April is still sitting unanswered. Body: The longer the wait, the harder the reply gets, and every month proves it again. CTA: Answer it now.
Ad set: Year-end posture
Headline: A hard year does not prove that investing is a mistake. Body: The cost is real and the work still holds; protection is not the same as wisdom. CTA: Choose exposure again.