AI Ad Copy Generator for PPC Agencies: Responsive Search Ads at Scale

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Ad Copy Generator for PPC Agencies: Responsive Search Ads at Scale.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Ad Copy Generator for PPC Agencies: Responsive Search Ads at Scale.

Give the generator a written client brief with approved claims, banned words and the landing page text, ask for 15 headlines and 4 descriptions, then run every line through automated limit and policy checks before a strategist signs the set off. Generation takes minutes. The checks decide whether the ad can launch.

Most generator pages stop at the draft, but the draft is where an agency's risk starts. Google assembles a responsive search ad from your assets, so one bad line can surface in any combination, and Google may add assets of its own. Treat the generator as a fast junior writer whose work always needs checking, and spend your effort on the checks.

Follow me on Instagram@sagnikteaches

Why the generator is the easy part at agency scale

A responsive search ad takes up to 15 headlines of 30 characters and 4 descriptions of 90, and needs at least 3 and 2. Google's guidance is to run at least two such ads per ad group, each with its own final URL. Do the sum for a modest agency: 25 clients with six ad groups each is 150 ad groups, 300 responsive ads and 5,700 text assets. Reading each asset for 15 seconds, an assumption you can replace with your own, costs 23.75 hours per round, before a single edit.

Connect on LinkedInSagnik Bhattacharya

That is why the first pass has to be automatic. Formulas can catch length, phone numbers, odd characters and banned words in seconds, leaving people the judgement checks: does the claim have proof, does the offer exist on the page, would the client sign this? Microsoft Advertising's API reference lists the same caps of 30 and 90 characters, so a set that passes here transfers, though its pinning guidance and editorial pages are separate.

Subscribe on YouTube@sagnikteaches

Which generator? A general assistant (ChatGPT, Claude, Gemini or Copilot) given the brief below does the job, and Google's ad builder offers asset suggestions you can accept, edit or use as inspiration. Dedicated ad-copy generators add templates and bulk features, but each still hands you unchecked text, so the checks below apply unchanged. For a Google-focused tool comparison, see the best AI tool for Google Ads copy and keywords.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

A client brief that keeps the generator inside the lines

Generators write what the prompt permits. A brief that lists only approved claims removes most policy problems before they exist. Fill one in per ad group and keep it in the client file; the table shows a plumbing firm's boiler-repair ad group.

Brief fieldEntry for a plumbing firm
Service and ad groupDomestic boiler repair; keywords "boiler repair", "boiler engineer", "boiler not heating"
Approved claims, each with its proofFixed-price repairs (price list on the page); engineers insured (certificate on file, renewal date logged); weekday same-day visits (rota)
Banned words and claimsCheapest, best, number one, guaranteed, emergency, any competitor, phone numbers, emoji, statistics
Required wording"Parts extra" in at least two descriptions
Offer and end dateFree diagnosis with a repair booking, until 31 January; the set is withdrawn on that date
Landing pageLive URL plus the visible page text pasted into the prompt
Tone and spellingPlain and practical, the spelling variant of the client's market, no exclamation marks
Regulated or sensitive?No. If yes, the client's compliance contact signs before upload

The "approved claims, each with its proof" row does the heavy lifting. It turns "write persuasive copy" into "rearrange these facts", which is a job generators do well.

Prompt, first draft and what the checks caught

The main example is an electrical contractor's ad group for domestic quotes. The prompt below carries the brief; the character limits are left to the spreadsheet because a language model reads tokens, not characters, so its counts are estimates.

You write responsive search ad assets for a PPC agency. British English, plain and specific,
no exclamation marks.

Client brief
Business: domestic and small commercial electrician
Ad group: domestic electrician quotes (keywords: electrician quote, domestic electrician,
  house rewire quote)
Services: sockets, lighting, rewires, fuse boards, EV chargers, landlord safety checks
Approved claims (use only these): fully insured; free written quote valid 30 days;
  same-week appointments; tidies up after every job; online booking
Banned: cheapest, best, number one, guaranteed, emergency, competitor names, phone numbers,
  emoji, statistics, any claim not listed above
Required: at least two descriptions say the quote is valid 30 days
Landing page text: [paste the visible page text here]

Task
Write 15 headlines and 4 descriptions. Keep headlines short and descriptions under two
sentences; do not count characters, the sheet will. Give every headline one job: keyword,
benefit, proof, action or offer. Put the service keyword whole in no more than four headlines.
Do not reuse a phrase across lines. Return CSV with the columns type,job,text.

The first draft below is illustrative, but every defect in it is the kind generators produce. The sheet's checks and the strategist's read flagged 10 of the 19 lines. Six were over length (four headlines and two descriptions), two held phone numbers, one held an emoji and one repeated punctuation. Eight used banned, unapproved or unprovable claims; several lines failed more than one test. There was also a set-level problem, because "electrician" sat in 8 of the 15 headlines.

Draft lineCharactersDefectFix
Rewiring and Fuse Board Upgrades32Over 30Rewires and Fuse Boards (23)
Emergency Electrician - Call 0800 123 45641Over 30, phone number, "emergency" is not an approved claimCut; replaced with Book Your Electrician Online (28)
The #1 Electrician in Town26Unprovable superlativeCut; replaced with We Tidy Up After Every Job (26)
(emoji) Power Cuts? We Can Help25Emoji, and implies a service not on the listReplaced with Lighting and Socket Repairs (27)
Cheapest Electrician Guaranteed31Over 30, two banned wordsReplaced with Price Agreed Before We Start (28)
EV Charger Installation Experts31Over 30, "experts" unprovableEV Charger Installation (23)
Trusted by 2,000+ Customers27Statistic with no proof on fileCut; replaced with Homes and Small Businesses (26)
Call us on 0800 123 456 for the cheapest prices around. Guaranteed!!68Phone number, banned word, repeated punctuationRewritten as the same-week booking description (83)
Domestic and small commercial electrical work by fully insured electricians. Free written quotes.97Over 90, no validity wordingFully insured electricians for homes and small firms. Free written quote, valid 30 days. (88)
From socket repairs to full rewires, our team turns up on time and tidies up. Book online in minutes.101Over 90, "on time" not approvedSockets, lighting, rewires and EV chargers, tidied up after. Written quote valid 30 days. (89)

After the fixes the longest headline is 28 characters, the longest description 89, and "electrician" appears in four headlines. The strategist's edits took a few minutes, which is the point: the generator did the volume and the checks found everything a reviewer would have had to hunt for. Here is the set that went into the upload sheet, with character counts and pins marked:

Headlines
 1. Electrician for Your Home (25)        [pin to Headline 1]
 2. Domestic Electrician Quotes (27)      [pin to Headline 1]
 3. Free Written Quotes (19)
 4. Fully Insured Electricians (26)
 5. Rewires and Fuse Boards (23)
 6. Lighting and Socket Repairs (27)
 7. Same-Week Appointments (22)
 8. Book Your Electrician Online (28)
 9. Landlord Safety Checks (22)
10. EV Charger Installation (23)
11. We Tidy Up After Every Job (26)
12. Written Quote, No Obligation (28)
13. Pick a Date That Suits You (26)
14. Price Agreed Before We Start (28)
15. Homes and Small Businesses (26)

Descriptions
 1. Fully insured electricians for homes and small firms. Free written quote, valid 30 days. (88)   [pin to Description 1]
 2. Sockets, lighting, rewires and EV chargers, tidied up after. Written quote valid 30 days. (89)  [pin to Description 1]
 3. Book online in minutes and get a same-week appointment. We tidy up after every job. (83)
 4. Landlord safety checks and fuse board upgrades, quoted in writing before work starts. (85)

Count characters with a formula, not with the model

Paste the generator's CSV into a sheet and let formulas judge each line. These work in Google Sheets, with the text in column C and the banned words listed in F2:F9.

Length (headline):   =IF(LEN(C2)>30,"over 30","ok")
Length (description): =IF(LEN(C2)>90,"over 90","ok")
Banned term:         =IF(SUMPRODUCT(--ISNUMBER(SEARCH($F$2:$F$9,C2)))>0,"banned","ok")
Digits (phones):     =IF(REGEXMATCH(C2,"[0-9]{3,}"),"digits","ok")
Odd characters:      =IF(REGEXMATCH(C2,"[^ -~]"),"check characters","ok")
Repeated marks:      =IF(REGEXMATCH(C2,"[!?]{2,}"),"repeated punctuation","ok")
Shouting:            =IF(AND(LEN(C2)>4,EXACT(C2,UPPER(C2))),"all caps","ok")
Service word count:  =COUNTIF($C$2:$C$16,"*electrician*")

Keep the banned list to real words, since a blank cell in that range matches everything. Path 1 and Path 2 take 15 characters each, so run the same length check on them. Count the final text, not the template: if you use keyword insertion or ad customisers, the line must fit once the inserted words are in, and each character in a double-width language counts as two. Google also advises that a keyword sits whole inside one headline, and that a keyword over 30 characters belongs in a 90-character description.

When a line is over, shorten in this order: drop adverbs, swap a phrase for a number, cut the second clause. "Rewiring and Fuse Board Upgrades" (32) became "Rewires and Fuse Boards" (23) without losing the service. The 101-character description lost its second sentence and gained the booking message in 83.

Policy and brand checks to run before launch

Google's editorial and misrepresentation policies are public, so most of the checks below can be written down once and reused. The rules named here come from Google's editorial policy and its misrepresentation pages; I read them in November 2026, and they change, so keep the links in your checklist.

CheckWhat the rule saysWho runs it
Phone number in textNot allowed in ad text; call assets or call-only ads are the routeFormula, then a glance
Punctuation and symbolsNo repeated marks such as "!!", no emoji or unsupported characters; an asterisk is fine for legally required conditions, but needs a review requestFormula
CapitalisationNo gimmicky capitals; "ASAP" and brand names can be allowedFormula
RepetitionNo unnecessary repetition of names, words or phrases, including the advertiser name and repeated words across assets in a groupFormula plus a person
Unavailable offersProducts, services, prices and deals promised in the ad must be available, and easy to find, from the landing pageAssistant cross-check, then a person on the live page
Unreliable claimsNo claims of improbable results as the likely outcome; no guaranteed returns or risk-free investment promisesA person, against the evidence file
Client brand rulesBanned words, tone, required wording, spelling variantFormula plus the strategist
Sensitive or regulated clientExtra review; Google excludes sensitive verticals from asset sharingClient's compliance contact

The formulas cannot judge sense, so the strategist's own review is a five-minute read-through:

  1. Read the headlines in random groups of three. Assets can show in any order, so each must read sensibly beside any other.
  2. Look for contradictions, such as a fixed price in one headline and "price on request" in another.
  3. Check every claim against the evidence file, not against the generator's confidence.
  4. Open the landing page and confirm the offer, price and wording match.
  5. Confirm the required wording reaches every ad, which means checking the pins.

The offer check is worth automating with the assistant. Paste the landing page text and the final set, and ask it to list every claim in the set that does not appear in the page text. Illustrative output for the electrician set: "Free written quotes" found, in the page heading; "Quote valid 30 days" found, in a footnote; "Same-week appointments" not found. A person then opens the live page. If the claim is true, the client adds it to the page; if not, the headline goes. Google's own example of the problem is an ad promising tablets from a price the destination does not show.

Expiry dates cause the quietest failures. A set that says "free diagnosis until 31 January" and is never withdrawn is still running in February, and Google's rule on unavailable offers names promoting a deal that is no longer active. Put the end date in the brief, in the log and on a calendar, with a named person who pauses the ad.

For an insurance broker or accountancy practice client, add one more step: the client's compliance contact approves the set in writing before upload, and the approval reference goes in the log. The checklist in claims to verify in AI-written pages is a useful companion for the landing page itself.

Pinning: keep required wording without flattening the ad

Pinning fixes a headline or description to a position. Text pinned to Headline 1, Headline 2 or Description 1 always shows; text pinned to Headline 3 or Description 2 is not guaranteed to. Google advises against pinning for most advertisers because it shrinks the pool, and says that if every position is pinned, unpinned assets never show. When it is needed, pin two or three variants per position so the system can still test.

The sum shows the cost. With nothing pinned, Google can draw from 15 headlines in any order: 15 × 14 × 13 is 2,730 ordered triples, and with 4 descriptions there are 12 ordered pairs, so 32,760 arrangements on paper. Pin three lines to each headline position and two to each description position and only 3 × 3 × 3 × 2 × 2 = 108 remain. The electrician set pins just what the brief demands:

PositionPinned linesReason
Headline 1Electrician for Your Home; Domestic Electrician QuotesKeeps the keyword whole in a headline that always shows, with two variants to test
Headlines 2 and 3NonePosition 3 is not guaranteed to show, so pinning there cannot guarantee anything
Description 1The two descriptions carrying "quote valid 30 days"Required wording shows in every ad, in either of two versions
Description 2NoneRemaining two descriptions rotate

That leaves 2 × 13 × 12 × 2 × 2 = 1,248 arrangements, against 108 for a fully pinned ad. A second case: an insurance broker's brief requires "Terms apply" in every ad. Write two descriptions that end with it and pin both to Description 1. Pinning a single line would lock it in place, and Google advises against pinning identical or very similar text to one position, because that restricts the system and can lower Ad Strength. A disclaimer is the standard reason to pin: Google's own example is a description pinned to Description 1 so the wording appears in every ad. Do not chase an "Excellent" rating by padding; Google says Ad Strength is a feedback tool for asset variety and combination testing, and is not used to calculate Ad Rank, Quality Score or auction wins.

Google's own generated assets need the same review

Google's setting for generating extra headlines and descriptions is text customisation, which older help pages called automatically created assets. It builds assets from your domain, landing page, existing ads and keywords, uses generative AI, refreshes them at least every 48 hours and serves them only when it predicts they will beat your uploaded lines. According to Google's help page, from September 2026 campaigns using it are upgraded to AI Max automatically, so check whether an account you inherited already carries generated assets. What AI Max switches on by default covers the wider picture, and controlling search terms under AI Max covers spend.

Generated assets are counted in Ad Strength and marked "Google AI" in the Added by column of the asset report, which makes them reviewable. The routine is short:

  1. Each week, filter the campaign-level asset report to Added by: Google AI.
  2. Run the new lines through the same formula and policy checks as your own.
  3. Remove any non-compliant line at asset level, and log the removal.
  4. If the source of a bad line was your landing page, fix the page, because Google's generator relies heavily on it.

Illustrative case: the report shows a generated headline promising "Free Same-Day Callouts" that the client does not offer. It is removed, and the page footer that said "free callouts for existing customers" is reworded. Google's text guidelines, which need text customisation switched on, let you add up to 25 term exclusions per campaign plus messaging restrictions such as a tone of voice to avoid; use them as a second fence, not a replacement for review. The PPC audit template includes a line for this when you take on a new account.

Upload as proposed changes and log the sign-off

Google Ads Editor can import a CSV with columns such as Headline 1 to Headline 15, a position column for each headline, Description 1 to Description 4, Path 1 and Path 2. Imported rows appear as proposed changes that you can accept, reject or review one by one, and the import can be reverted later. Make that screen the last gate: the strategist reads the proposed changes, not the sheet. To edit an ad without losing its history, rename the column to be changed with the tag #Original and put the new text in a column of the original name.

ClientAd groupSetAutomatic checksHuman checksClient approvalUploaded
Electrical contractorDomestic quotesv319 of 19 lines passStrategist initials, offer verified on live pageEmail from the client's contact, filedProposed changes accepted by the strategist

One row per set is enough. If a disapproval arrives, the log shows which checks the set passed, so the fix goes into the brief or the formulas rather than being patched line by line.

A test plan for responsive search ads

Responsive ads qualify for more auctions, so Google notes that click-through and conversion rate at ad level do not show the whole picture; judge incremental conversions at ad group and campaign level as well. The plan below suits an accountancy practice client with one ad group for fixed-fee bookkeeping.

  1. Two ads, one variable. Ad A leads with price clarity ("Fixed monthly fee"); Ad B leads with speed ("Free 20-minute call"). Everything else, including pins, stays the same. Google recommends a unique final URL per ad; keep both on one URL during the test and accept the trade-off, otherwise page and copy change together.
  2. Scale a winning change with ad variations. The tool tests one text change across many campaigns, with an end date and a traffic share, then lets you apply the result.
  3. Read assets at campaign level. The Performance label column is deprecated; full performance statistics are available for dates from 5 June 2025.
  4. Replace dead assets. If an asset gets no impressions for several weeks, Google suggests swapping it.
  5. Do not touch the set mid-test. Editing or removing assets changes which ads can serve.

A sensible agency rule of thumb, not Google guidance: read the test after four full weeks or 100 clicks per ad, whichever is later, and write the decision in the log. Before then, check disapprovals only. Here is how that looks on a calendar.

WhenActionDecision
LaunchStart both ads and confirm approval status the same dayFix any disapproval at once
Weeks 1 to 3Check disapprovals, spend and search terms onlyNo edits to assets or pins
Week 4First read at ad group level: conversions and cost per conversion, then asset statisticsIf an ad has fewer than 100 clicks, keep running
Week 5Compare the two anglesRetire the weaker, apply the winning change to similar ad groups with ad variations, log the result

The Performance Max reporting tutorial shows how to explain asset-level results to a client in plain words, and the same approach carries over to responsive search ad assets.

Measuring the gate: failures, edits and disapprovals

Track four numbers per month: the share of generated lines failing a check (10 of 19 in the example, 53%), edits per set, disapprovals after upload, and minutes per set from brief to upload. A failure rate that stays high means the brief or prompt is weak, not that the writer needs more review time. If the same defect keeps recurring, such as phone numbers, add it to the banned list and the formulas, and watch for it to disappear. If disapprovals continue despite passing checks, the check list is missing a rule, and the disapproval notice tells you which.

Questions agencies ask about AI-written search ads

Should I let Google generate extra headlines for a client?

Only if the client agrees and the landing page is accurate. Google's text customisation setting generates assets from your domain, landing page, existing ads and keywords, and it counts them in Ad Strength. Review them weekly in the asset report, where they are marked Google AI, and remove any that overpromise. Sensitive clients are better off with it switched off.

How many responsive search ads should an ad group carry?

Google's guidance is at least two, each with Good or Excellent Ad Strength and its own final URL. For a clean copy test, start with two and change one variable between them. More ads dilute the data per ad, so add a third only when the first two have run long enough to read.

What if a client insists on 'best' or 'cheapest' in the copy?

Ask for evidence that matches the landing page and keep it in the client file. Google's misrepresentation policy bars inaccurate claims and improbable promises, and its unavailable-offers rule bars prices the page does not show. If no proof exists, offer factual alternatives such as a starting price, a service area or a response time the client can honour.

Do the same limits apply in Microsoft Advertising?

Microsoft's API reference lists the same caps for responsive search ads: 3 to 15 headlines of up to 30 characters and 2 to 4 descriptions of up to 90. Its reference says not to pin an asset unless you have a specific requirement for it. Editorial rules differ by platform, so run the policy checks against each platform's own pages.

Further reads

Sources: Google Ads Help pages on responsive search ads, Ad Strength, generated text assets in Search campaigns, campaign-level asset reporting, ad variations and Google Ads Editor CSV import; Google Ads policy pages on editorial standards, repetition, phone numbers, punctuation, capitalisation, unreliable claims and unavailable offers; Microsoft Advertising API reference for responsive search ad limits. All read in November 2026.

Want an ad review gate your team will actually use?

On a 1:1 call we'll map how your team writes and approves responsive search ads, pick the checks worth automating first, and decide where a human sign-off has to stay.

Book a 1:1 call with me