The 3-Line Ad Copy Formula for Facebook and Instagram Ads
Most small business ads say too much or too little. A simple three-line structure that works for almost any local service: hook, reason to believe, offer plus next step. With templates, a before-and-after rewrite and a testing plan.

When owners write their own Facebook ads, the copy usually goes one of two ways. Either it's a paragraph about the company ("Family-owned since 2009, we pride ourselves on…") or it's two words and a phone number. Neither tells the person scrolling why they should stop.
Here's a structure I use for almost every local service ad. Three lines, each with one job.
Why short copy wins for local ads
People scroll Facebook and Instagram fast. On most placements Meta shows only the first line or two of your primary text, then cuts it off with See more. Meta's own ad guidelines recommend keeping primary text short for that reason. If your main message sits in the hidden part, most people never read it.
So the first line has to stop the right person, and the whole message has to make sense without the reader tapping anything. Three short lines do that.
Line 1: the hook
Name the problem, or the person who has it, in their words. The goal is for the right person to think "that's me".
- "Leaking water heater? Don't wait for the flood."
- "Dallas homeowners: is your AC struggling this summer?"
- "Back pain that won't go away after desk work?"
Five hook templates you can fill in for any service:
| Template | Example |
|---|---|
| [Problem]? | "Roof leaking after the storm?" |
| [City] [customer type]: [problem]? | "Austin homeowners: is your yard ready for spring?" |
| Still [annoying situation]? | "Still waiting days for a plumber to call back?" |
| Don't [common mistake]. | "Don't sign a roofing quote until you read this." |
| [Number] [things] before [event] | "3 checks before your AC quits this summer" |
Line 2: the reason to believe
One specific detail that makes you credible. Specific beats general every time.
- "Licensed plumbers, on site within 2 hours across Dallas."
- "Over 300 five-star Google reviews." (Only if it's true.)
- "Upfront prices before we start. No surprises."
Good reasons to believe usually come from one of these:
- Speed: how fast you respond or show up.
- Credentials: licensed, insured, certified. Name the one that matters to your customer.
- Proof: real review counts, years in your town, jobs completed. Use real numbers only.
- Risk removal: upfront prices, a written guarantee, no call-out fee.
- Local presence: "Family-run in Plano" means more to a Plano homeowner than "serving all of Texas".
Pick one. Two at most. A list of five claims reads like every other ad.
Line 3: the offer and next step
What they get, and exactly what to do. One action, not three.
- "Book a free inspection: tap Get Quote."
- "$49 tune-up this month. Tap Book Now to pick a time."
- "Get your quote in 60 seconds: tap Sign Up."
The next step should match one of Meta's call-to-action buttons, such as Get Quote, Book Now, Sign Up, Call Now or Send Message. When the copy and the button say the same thing, people know exactly what happens when they tap.
Put together
| Business | Hook | Reason to believe | Offer + next step |
|---|---|---|---|
| Plumber | Leaking water heater? Don't wait for the flood. | Licensed plumbers on site within 2 hours. | Tap Get Quote for a same-day visit. |
| Dentist | Nervous about the dentist? You're not alone. | Gentle care and evening appointments. | New patient exam: tap Book Now. |
| Roofer | Storm damage on your roof? | Free photos and a written report. | Tap Get Quote for a free inspection. |
| HVAC | Is your AC blowing warm air? | Same-day repairs, upfront pricing. | Tap Book Now to pick a time today. |
| Cleaner | Back from work to a messy house? | Insured cleaners, same team every visit. | First clean booked in 2 minutes: tap Book Now. |
A before-and-after rewrite
Here's a typical ad a roofer might write, and how the formula changes it.
Before:
Smith Roofing has been proudly serving the community for over 15 years. We offer residential and commercial roofing, repairs, replacements, gutters and more. Quality workmanship and customer satisfaction are our top priorities. Call us today!
Nothing in the first line is about the reader. The offer is unclear, and "call us today" competes with whatever button the ad uses.
After:
Storm damage on your roof? Free drone photos and a written report, usually within 48 hours. Tap Get Quote to book your free inspection.
Same business, same service. Now the right person recognizes themselves, has a reason to trust you, and knows exactly what to do. (Only promise the 48 hours if you can deliver it.)
Don't forget the headline
Below the image, most placements show a headline. Use it to restate the offer in a few words: "Free Roof Inspection", "$49 AC Tune-Up", "New Patient Exam". Keep it short so it isn't cut off on mobile. The headline is often the last thing people read before the button, so it should repeat the reason to tap.
Three rules that make it work
- Use their words, not yours. "Water heater leaking" beats "comprehensive water heating solutions".
- Only claim what you can prove. Numbers, reviews and guarantees must be real. Facebook can reject ads with misleading claims, and customers notice.
- Match the button to line 3. If the copy says "Get a quote", the button should say Get Quote, and the form or page should actually give one.
Want a head start? The Local Ads Swipe File has 100 ads written this way for 10 local industries, plus 50 hooks to test.
Common mistakes
- Starting with your company name. Nobody scrolling cares who you are until they know you can solve their problem.
- Several calls to action. "Call, message, visit our site or stop by" gives people four decisions. Give them one.
- Vague claims. "Best service in town" means nothing. "On site within 2 hours" means something.
- Jargon. Write the way your customer would describe the problem to a friend.
- A form that doesn't match the ad. If the ad promises a quote in 60 seconds, a 12-question form breaks that promise.
If you advertise housing, employment or financial products, Meta's Special Ad Category rules limit your targeting options. The copy formula still works the same way.
Test the hook first
Write three versions of the ad that only change line 1. Run them together for a week with the same budget, then keep the hook with the lowest cost per lead. The hook does most of the work, so it's the best thing to test first.
When creating the ad, Meta also lets you add several primary text options in one ad and will rotate them for you. That's a quick way to test hooks without building separate ads. Once you have a winning hook, test line 2, then the offer. One change at a time, so you know what made the difference.
I explain the same formula in a short YouTube video. Good copy still needs the right campaign behind it: our Facebook and Instagram ads management includes 4 new creatives a month written this way, and the free ad account audit will tell you where your current ads fall short. Once the copy is live, the 3 numbers in your Meta Ads report tell you whether it's working.
Frequently asked questions
How long should Facebook ad copy be?
Short enough that the main message fits before the 'See more' cut-off. Three lines usually does it. Longer copy can work for expensive services, but start short.
Should I use emojis in ad copy?
One can help a line stand out, but they don't replace a clear message. Never use them in place of words.
How many ad versions should I test?
Three to five per ad set is plenty for a small budget. Change one thing at a time, usually the hook.
What goes in the headline field?
Restate the offer in a few words, like 'Free Roof Inspection' or '$49 AC Tune-Up'. On many placements the headline sits under the image, right next to the button.
Does the same formula work for Instagram?
Yes. Instagram shows even less text before cutting it off, so the hook matters more there. Make sure line 1 works on its own.
4 Google Business Profile Fixes for More Local Calls
Boost Post vs. Lead Ads: Which One Brings Real Customers?