Should you put the price on your ad creative?
A price overlay on your ad creative changes who clicks as well as how many. How to decide whether to show it, and how to read the result.
A price overlay on your ad creative changes who clicks as well as how many. How to decide whether to show it, and how to read the result.
Your client wants a red discount sticker on every product image in the catalog. Your designer wants the clean shot. You have to decide, and the uncomfortable part is that you have run catalog ads for years without Ads Manager ever telling you what an overlay did to a single campaign.
Meta made that decision easier to execute and no easier to judge. Advantage Plus catalog ads support dynamic overlays: sticker-style labels stamped onto the product image straight from the feed. Search Engine Land's writeup of the launch lists 4 label options (current price, a struck-through sale price, percentage off, free shipping) and notes you can style them yourself or let Meta choose based on performance signals. One toggle, catalog-wide.
Every guide I read either says "always show the price" or explains where the toggle lives. Neither answers the question in front of you.
Short answer: Put the price on the creative when price is a reason to buy and the number is legible at thumbnail size. A price overlay qualifies the click and spends attention that the product would otherwise get, so judge it on revenue per order rather than on click-through rate.
The takeaways
Attention. A product image has one hot region on a phone screen, and a high-contrast badge with text in it is close to the ideal target for whatever grabs the first glance. So the frame is a trade: you buy qualification with attention that was going to the product.
That half is measurable before launch. Run the static through a saliency pass and check two things: which region collects the predicted attention, and whether the scan path still reaches the element doing the selling. Every generated static in my own pipeline gets a DeepGazeIIE pass with a per-pixel heatmap, the scan-path order and region scores. The flags sit next to the draft and a person decides.
If a €49 badge is taking 40 percent of predicted attention on a product whose whole appeal is how it looks, the badge is losing the sale before anyone reads it. Reading those maps honestly is a short discipline of its own.
Both, and that is the trap. A visible price filters out people who were never going to pay it, so click-through rate can drop while cost per purchase improves. It also runs the other way. A big percentage-off sticker pulls in bargain hunters who buy once, refund more often, and never come back at full price.
Which is why the usual case-study line, that overlays lifted CTR by some percentage, tells you close to nothing. CTR is the number the sticker was designed to move. It moved. You changed the buyer, not just the click rate.
Read it on metrics that survive that shift: revenue per order, ROAS over a window long enough to catch refunds, repeat rate if you track it. My own scoring runs a composite of 6 metrics with weights adjustable per project and funnel stage, for this reason. A click-rate win that costs order value should never take the budget.
They are not interchangeable. A current price qualifies: it tells a shopper whether to bother. A struck-through price or a percentage off makes a claim about a discount, which pulls harder and promises more.
Two things to settle before you switch the discount labels on. First, a struck-through reference price is regulated in the EU. The price-indication rules introduced with the Omnibus Directive tie an announced reduction to the lowest price of the previous 30 days, and in Germany that obligation lives in the Preisangabenverordnung. Whoever owns your pricing signs that off before a media buyer flips a switch.
Second, Meta can pick the combination for you. That is less work and it ends the experiment: the platform stops holding anything still, so no comparison you run afterwards means much. Use auto-select when you have decided you do not care which label wins.
You build the dimension yourself. Ads Manager will break results down by age, placement, platform and a dozen other things. "Had a sticker on it" is not one of them, so the split has to exist in your account structure before it can exist in a report.
The cheap version: duplicate the product set, run the same products through 2 ad sets, overlays on in one and off in the other, same budget, same audience, same window. Name them so the difference is readable in 6 weeks. Then wait for the event count you would demand of any other test, because a catalog with 400 items generates a lot of noise per item.
The awkward part is the cost. You lose auto-select and you halve the scale on both sides. On a small catalog that is often a bad deal, and a month on against a month off is the weaker read you settle for.
When the number argues against you before the ad does. Three cases keep showing up: the price sits above the category and needs the reasoning first, the real price depends on configuration so any single figure misleads, or the product is bought on desire and a sticker interrupts it.
There is a duller failure too. If the number cannot be read at the size the ad is served, it is decoration that eats attention. Check it at feed thumbnail size on a phone, never at 100 percent in the design file.
And the honest limit: I cannot tell you whether your overlay will make money, and neither can the case study you read this morning. Price sensitivity belongs to your category, your margin, your customer. What you can stop guessing about is the attention half, which is predictable on a static. That is the loop the rest of the creative workflow runs on: draft, predict, launch, read the result, feed it back.
This is the thinking behind Adscalr.
See the product →