Search ads fail in two directions that look unrelated until you read the headlines. One is a model that invents "20% off" or "free shipping over $25" because that is what ads in the category often say. The other is an automated text setting that writes a competitor's name into your headline because the query contained it. Both spend your money on a promise the landing page cannot keep.

Advertisers have described both failures in public. Text customization has produced headlines that were only a competitor name. Separate from that, people using a general writing model to draft Responsive Search Ads keep hitting the same mechanical miss, and they also get offers the site never published. The store still owns the claim after the click.

Check the line against the page, not against the brief

A claim is allowed in an ad only when a shopper can see the same fact on the destination at the moment the ad is approved. That is a tighter rule than "marketing said this in January."

Hold every headline and description against four sources on the live URL:

  • Price and offer: the number, the percent, the code, and the end date match the page and the checkout, not a slide in last week's promo doc.
  • Shipping and returns: thresholds, countries, and windows match the policy you are willing to honor on this order.
  • Product facts: materials, dimensions, compatibility, and what is included match the SKU, not a sibling product in the same collection.
  • Trademarks: competitor names, even when the query is a competitor query, do not appear in your headlines or descriptions.

If the page does not say it, the ad does not say it. A useful test is to imagine the shopper taking a screenshot of the ad and a screenshot of the first screen. The two should not argue.

Competitor queries and competitor words are different

You can decide to bid on competitor searches in their own campaign, with your own offer and your own landing page. That decision does not require printing the other brand in the headline. Many stores should not run that campaign at all until brand and non-brand are already split. The reasoning is the same one in brand defense versus competitor conquesting: know which budget is buying your own demand and which budget is trying to intercept someone else's.

When a competitor name does show up, treat it as a defect in the ad, not as a clever dynamic keyword. Remove it, and check whether text customization or a generated asset put it there.

Why this belongs before launch, next to message match

A fact-check after disapproval is late. The same pass should confirm that the landing page still says what the ad says. If the collection title, the feed title, and the headline have drifted, use the message consistency checklist before you raise the budget. An accurate sentence pointed at the wrong product is still a bad click.

How Kopa handles unproven lines

In Kopa, Smart Campaigns drafts headlines from store USPs, numbers, reviews, and calls to action that are on the page, then strips a discount, shipping promise, or competitor name that the live site does not support. Your team still approves the draft before it publishes.

What good looks like

  • Every offer in an ad can be found on the landing page and honored at checkout on the day you approve it.
  • Competitor names are absent from headlines and descriptions, including on competitor campaigns.
  • Shipping, warranty, and discount lines are copied from the current policy, not from a previous season.
  • Text customization and generated assets are reviewed for names and prices you did not write.
  • A failed fact-check stops the ad. It does not become a note in next week's report.