How Do I Write Facebook and Instagram Ad Copy That Converts?

Write for one person, not a crowd. Open with a hook that names their problem, make one clear promise, back it with one piece of proof, end with one action. Match that promise to the landing page. Then test three variants and let the cost-per-lead pick the winner.

Most Facebook and Instagram ads don't fail because of the budget or the targeting. They fail because of the words. I run Meta ads for clinics, coaches and local shops across Pune, and the copy that converts follows the same shape every time: a hook that names a real problem, one clear promise, one honest proof point, one action. No clever wordplay. No ten features crammed into a caption. This is the framework I use, with real numbers, not vibes. When the clicks come but the sale doesn't, the fix is usually the copy or the page it lands on, not the algorithm.

Start with the hook: you have one second

The first line is the whole battle. People scroll fast, so your opening line has to stop the thumb by naming a problem or desire the reader already feels. "Struggling to get patients to book online?" beats "We are a leading dental clinic in Pune." Speak to one person about one pain. If the hook doesn't earn the second line, nothing else in the ad matters. The reader is already gone, and no amount of budget buys back attention you lost in the feed.

Good hooks come from the words your customers actually use: the complaint they type in a WhatsApp enquiry, the question they ask on a call. I keep a running note of those exact phrases and drop them straight into the first line. A hook in the customer's own language always beats marketing-speak. It feels like the ad is reading their mind instead of shouting a sales pitch at a crowd.

One clear promise beats ten features

After the hook, make one promise. The single outcome the reader gets. Not "we offer teeth cleaning, whitening, braces, implants and root canals"; just "a brighter smile in one visit, no waiting room." A cluttered ad that lists everything says nothing, because the reader can't hold ten benefits in their head mid-scroll. Pick the one that matters most to the person you wrote the hook for, and let the rest live on the landing page.

This is where most local ads go wrong. The owner wants to fit the entire menu into one caption. Resist it. One ad, one audience, one promise. If you have two strong offers, that's two ads, not two sentences in one. A single sharp promise is easier to believe, easier to remember, easier to act on than a paragraph of everything you do.

Add proof so the promise is believable

A promise without proof is a claim, and the feed is full of claims. One honest, specific proof point makes the difference: a real number, a client result, a review line, a "trusted by 200+ families in Baner." Specific beats grand. "Booked out for three weeks" lands harder than "the best in Pune." You don't need a wall of testimonials in the ad. One concrete detail that a real person could have written is enough to turn a skeptical scroll into a considered click.

Keep the proof honest and local. Indian buyers, especially on price-sensitive local offers, are wary of inflated claims, so a modest true number beats a grand fake one every time. If you don't have testimonials yet, use what's real: years in the locality, number of visits, a specific guarantee. The goal isn't to impress. It's to remove the quiet "yeah, right" that kills the click.

End with one clear call to action

Every ad needs exactly one action, and the reader should never have to guess it. "Book your free consultation. Link below." "WhatsApp us to check today's slots." "Fill the form and we'll call you in 10 minutes." One CTA, phrased as the next physical step. Two competing asks ("call or visit or DM or comment") split the reader's decision and most people resolve that friction by doing nothing. Decide the single action that matters and ask for that alone.

Match the CTA to how warm the audience is. A cold audience seeing you for the first time won't book a paid appointment from one ad, but they'll grab a free guide or a WhatsApp chat. Warm retargeting audiences who already know you can handle a harder ask. The button and the copy should agree. If the copy says "book now" the button shouldn't say "learn more," or you reintroduce the exact hesitation you just removed.

Match the ad to the landing page, every time

The biggest leak I fix isn't in the ad. It's the gap between the ad and the page it opens. If the ad promises "free consultation" and the page is a generic homepage with a menu, ten links and no mention of the offer, the click dies. The ad's job is to earn the right click. The page's job is to close it, and it can only do that if the headline, the promise and the offer carry straight through from ad to page.

When an ad gets clicks but no conversions, this mismatch is almost always why. I've written a full breakdown in why your Meta ads aren't converting, and pairing every ad with a focused, fast page is covered in this high-converting landing page guide. Keep the message match tight, cut the form to the fields you truly need, and make the page load quickly. The same traffic starts turning into enquiries.

Test three variants and let the numbers decide

Don't fall in love with one ad. You're a bad judge of your own copy. I launch three creative variants that each change one big thing: a different hook, a different angle, a different offer, not a swapped comma. Three is enough for Meta's system to find a winner without spreading the budget so thin that no single ad gathers real data. Then I read cost-per-lead, not likes, and put budget behind whatever the numbers reward.

Likes are vanity. Cost-per-lead is the truth. With a tight hook, one promise and a matching page, this three-variant approach regularly lands local leads at roughly Rs 20-25 each. But only after the numbers, not my ego, pick the winner.

Once a winner emerges, don't stop. Refresh it. The same audience seeing the identical ad for weeks tunes it out and your cost creeps up. Take the winning hook, spin two new variants against it, and keep the loop running. Ad copy that converts isn't one lucky line. It's a habit of testing, reading the numbers honestly, and feeding budget to what actually works. That's the whole game, and anyone can run it.

Frequently asked questions

How long should Facebook and Instagram ad copy be?

There is no fixed length. Match it to the offer. For a simple lead form or booking, keep the primary text to one or two short lines above the "See more" fold so the hook and CTA are visible without a tap. For a considered purchase, longer copy that handles objections often converts better. I test both: a punchy version and a detailed version, and let the CPL decide which wins.

How many ad variations should I test on Meta?

Start with three creative variants that change one big thing each: a different hook, a different angle, a different offer, not tiny tweaks like a comma. Three is enough for Meta's system to find a winner without splitting your budget so thin that no ad gets data. For Pune clients this three-variant approach regularly lands leads at roughly Rs 20 to 25 each once the winner emerges.

Why is my Meta ad getting clicks but no conversions?

Clicks without conversions almost always means a promise mismatch. The ad sells one thing and the landing page delivers another, or the page is slow, cluttered, or asks for too much. The ad's job is to get the right click. The page's job is to close it. Fix the message match first, cut the form fields, and make the page load fast. The same clicks start converting.

Related guides