Automating the Google Ads Search Term Review
Automate retrieval and aggregation of the search term report, not the decision. Scripts should pull the data, compute n-grams and flag terms above a cost threshold, while adding negatives stays a human step because the effect is invisible once it is wrong.
The search term report is the only place the account tells you what people actually typed. Reviewing it is the highest-value recurring task in paid search and the first one that gets skipped when the week is busy. Automating the retrieval is straightforward; automating the decision is where accounts get damaged.
What to automate and what not to
| Task | Automate? | Reason |
|---|---|---|
| Pulling the report on a schedule | Yes | Pure retrieval, no judgement involved |
| Aggregating into n-grams | Yes | Arithmetic the interface will not do |
| Flagging terms over a cost threshold with no conversions | Yes | A filter, not a decision |
| Adding negatives automatically | No | Irreversible in effect, and the rule that generates them cannot read context |
| Promoting converting terms to exact keywords | No | Fragments account structure faster than anyone can maintain it |
The line is consistent: automate the retrieval and the arithmetic, keep the decision. Every automated-negatives script eventually blocks something that mattered, and the failure is silent because you cannot see the traffic that did not arrive.
The query
The resource is search_term_view, and one query gets everything a weekly review needs:
SELECT search_term_view.search_term,
campaign.name,
metrics.cost_micros,
metrics.clicks,
metrics.conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
Reports are exempt from entity limits, so this returns everything even in a large account. Remember that cost is in micros, and that terms with no impressions in the window are absent rather than zero.
Building a review that gets read
The failure mode of automated reporting is volume. A weekly email with four hundred rows is not read twice. Three constraints fix it:
Cap the rows. Twenty is the practical ceiling for something someone scans on a phone. If the list is longer, the threshold is too low.
Set the threshold against cost per conversion, not a round number. A term that has spent less than one target CPA has not yet earned an opinion. Threshold at one to two times target CPA and every row in the email is worth a decision.
Say what changed. A term appearing for the first time is more interesting than a term that has been in the list for six weeks. If the script keeps a record in a spreadsheet, it can mark new entries, and that one column is what turns a report into an alert.
What the report cannot show you
Performance Max returns grouped search categories rather than raw terms, so its share of spend is missing from any search term review. Some Search queries are also withheld for privacy when volume is low, which means the report will never reconcile exactly to campaign spend. Both gaps are structural. Neither is a reason to skip the review, but presenting the report as complete is misleading, especially to a client.
A workable weekly loop
- Monday: n-gram report lands, showing patterns over thirty days.
- Fifteen minutes reading the terms behind the top five grams.
- Negatives added by hand, at phrase level, at the right level of the account.
- Monthly: a conflict check to confirm nothing added this month blocks an active keyword.
That is fifteen minutes a week and it holds. An automated system that adds negatives on your behalf is faster right up until the quarter where it is not.
Questions
- Should a script add negative keywords automatically?
- No. The rule that generates them cannot read context, and a wrong negative removes traffic invisibly. Automate the report and the arithmetic, and keep the negative decision manual.
- Which GAQL resource holds search terms?
- search_term_view. It returns one row per search term with the usual metrics, and like all reports it is not subject to entity limits.
- Why does the search term report not match campaign spend?
- Some queries are withheld when volume is too low to report privately, and Performance Max returns grouped search categories rather than raw terms. The gap is structural.
- What is a sensible cost threshold for flagging a term?
- One to two times target cost per conversion. Below that, the term has not had a fair chance to convert and flagging it produces noise.