How to Automate Your Google Ads Search Term Report With AI
October 16, 2026
How to Automate Your Google Ads Search Term Report With AI
Google Ads is spending your money on search terms you would never pay for if you saw them. If you aren't checking your search terms regularly, that waste is happening every single day.
The fix is to automate your search term report. In this post I'll walk you through the exact setup we run across our client accounts: a Google Ads script, a Zapier zap, and an AI model that reviews every search term and sends us a clean report in Slack every Monday morning telling us what to cut.
By the end you'll have the same setup running in your own account. If you'd rather watch, the full video walkthrough is embedded above.
Search terms vs keywords
A keyword is what you bid on. A search term is what someone actually types into Google that triggers your keyword and makes your ad show up.
Depending on the match type you're using, Google will go outside your exact keyword and match you to other searches it thinks are related. Broad match especially gives Google a lot of room to wander.
Sometimes that's good. Google finds relevant searches you never thought to add, and some of them turn into your best converting terms.
Other times it's bad. You end up paying for clicks on searches that have nothing to do with what you sell. For a moving company that might be "moving boxes for sale," "moving company jobs," or "how to move a piano yourself." Every one of those clicks costs real money and none of them will ever book a move.
The search term report is where you catch all of this. The problem is most people check it once in a while, or never, because exporting and combing through it by hand is tedious. That's the part we're automating.
What you're building
The setup has four pieces that run in order every week:
- Google Ads script pulls the last 7 days of search terms with clicks, cost, and conversions.
- Zapier webhook catches that data.
- Gemini (or ChatGPT, or whatever AI you prefer) analyzes the search terms and flags wasted spend and opportunities.
- Slack receives a clean, formatted summary of what to cut and what to lean into.
The result is a weekly audit with negative keyword recommendations, wasted spend, and high intent search terms, without anyone exporting a spreadsheet.
This works best for local service businesses (movers, HVAC, auto repair, trades) and lead gen accounts running Search or PMax where query quality matters. It's not worth setting up for tiny accounts with almost no search volume, or brand only campaigns.
What you need before you start
- Google Ads access to the account (Standard or Admin).
- A paid Zapier account. The webhook feature isn't available on the free plan.
- An AI API key. We use Gemini through Google AI Studio, which has a free tier you'll probably never exceed unless you're running this on hundreds of accounts. An OpenAI key works too.
- Somewhere to send the report. We use Slack, but Telegram, ClickUp, Notion, or email all work.
Step-by-step setup
Step 1: Create the zap and get your webhook URL
Start in Zapier, because the Google Ads script needs a destination to send its data to.
- Log into Zapier and create a new zap.
- For the trigger, choose Webhooks by Zapier with the event Catch Hook. Leave "Pick off a Child Key" blank.
- Copy the webhook URL. It looks like
https://hooks.zapier.com/hooks/catch/123456/abcdef/.
Keep that tab open. You'll paste the URL into the script next.
Step 2: Install the Google Ads script
- In your Google Ads account, go to Tools → Bulk Actions → Scripts.
- Click the blue + to create a new script and name it something like "Search Term Automation."
- Delete any code already in the editor and paste in the script below.
- Replace the placeholder webhook URL near the top with your real Zapier URL. Keep the quotes around it.
-------
--------
- Click Save. A yellow bar will ask you to authorize the script. Click Authorize and sign in.
- Click Run. Authorization can be a bit buggy, so if it fails the first time, authorize again and rerun.
- Open the Logs tab. You want to see "Zapier response code: 200."
When it runs, the script goes through your search terms and sends the data to your webhook URL.
Step 3: Test the zap trigger
Back in Zapier, open the webhook trigger and click Test Trigger (or Find New Records). You should see a record with fields like summaryText, accountName, and dateRange. That's all the data from your Google Ads account, now living inside Zapier. Select it and continue.
Step 4: Have Gemini analyze the search terms
First, get your API key. Go to Google AI Studio, create a new project called "Search Term Automation Report," generate an API key attached to it, and save the key somewhere safe.
Then add a new step in your zap:
- App: Google AI Studio (Gemini). Connect it using the API key you just made.
- Action event: Send Prompt.
- Model: Gemini 2.5 Flash. It's fast and cheap.
Paste this into the System Instructions field and fill in the placeholders for the account you're running it on:
You are a senior Google Ads strategist. You are writing a weekly search term audit for a local service business.
Business Context: Business Type: {{INSERT BUSINESS TYPE}} Location: {{INSERT CITY/REGION}} Core Services: {{INSERT LIST OF SERVICES}}
Formatting Rules: Use bold only for the title line and section headers. Use • for bullet points. Do NOT use Markdown headings. Do NOT use code blocks. Output must be plain text.
Content Rules: Focus on search intent, negative keywords, and wasted spend. Be concise and tactical.
Then paste this into the Prompt field. Where it says to select a field, click the + button and pick that field from the webhook step:
Account: [select accountName from the webhook step] Date range: [select dateRange from the webhook step]
Here are the search terms and performance data from the past 7 days:
[select summaryText from the webhook step]
Write a Slack formatted audit with three sections:
1. Recommended Negative Keywords • Provide a bullet list of search terms/themes to exclude. • Include match type in brackets (e.g., Phrase). • Briefly explain why (cost/irrelevance).
2. High Intent Opportunities • Provide a bullet list of strong search terms. • Mention if a term deserves its own ad group.
3. Other Notes • Patterns in search behavior or broad match risks.
Keep the response under 250 words.
Test the step. You should see Gemini's analysis of your search terms come back. This is where the magic happens.
Step 5: Clean up the formatting
Gemini often returns text with literal \n characters instead of real line breaks, which turns into one ugly paragraph in Slack. Fix it with a formatter step:
- Add Formatter by Zapier, event Text, transform Replace.
- Input: the response from the Gemini step.
- Find:
\n(backslash, then n). - Replace: press Shift + Enter to insert a real line break.
- Test the step.
Step 6: Send it to Slack
- Add a Slack step with the event Send Channel Message.
- Pick the channel for that client.
- For the message text, use a title like "AI Search Term Recommendations," then the
dateRangefield from the webhook step, then the output from the formatter step. - Optionally set a bot name. Ours is called Gemini.
- Test it, check Slack, and publish the zap.
If everything is set up right, you'll get a clean, formatted message showing which search terms wasted spend so you can go cut them.
Step 7: Schedule the script
Back in Google Ads, go to the Scripts page, find your script, and change the frequency from Manual to Weekly. We run ours Monday between 2 and 3 a.m. That way the report is sitting in Slack when the team comes online Monday morning and we can act on it right away.
Getting good output
The most important part of this whole setup is the system instructions and prompt. Customize them for each account or client so the AI has as much context as possible about the business, the location, and the services you actually sell.
If you're too vague or generic, you'll get generic output. It gets messy, and it might even tell you to cut search terms that are actually good for the business. Spend the extra five minutes getting the context right.
Also, the AI is giving you recommendations, not making changes. Someone still reviews the report and adds the negatives. That's on purpose.
