# How do I harvest converting search terms into exact match campaigns on Amazon?

A playbook for an AI assistant connected to Nova. It reads your search term report, finds the customer queries that convert in broad, phrase and auto targeting, leaves out the ones you already target in exact match, and gives each one a starting bid. It only reads your data, so you apply the changes in Amazon Ads.

Every step calls a Nova tool that reads your live Amazon data, so paste this into Claude, ChatGPT or any assistant connected to Nova's MCP server. Run it every two to four weeks, marketplace by marketplace.

```text
Use Nova to find the search terms I should harvest into exact match campaigns, with a starting bid for each.

Period: the last 30 complete days. If I name other dates, use those.

Scope: Sponsored Products, one marketplace at a time. If I sell in several, start with the one with the most ad spend.

1. Set the bar. Call Nova's query_advertising with groupBy "childAsin" and the metrics spend, sales, orders, acos and breakEvenAcos. Above its break-even ACOS, a product loses money on each ad sale. Say which products have no break-even because their costs are missing.

2. Find the converting queries. Call Nova's query_search_terms with groupBy "searchTerm", adProducts ["sponsored_products"], targetingDetails ["phrase", "broad", "close-match", "loose-match", "complements", "substitutes"], the metrics spend, clicks, orders, sales, acos and cvr, metricFilters orders above 0, sorted by sales, limit 200. Set aside the rows with the search term "*", which are product page placements. A row that looks like an ASIN is a product to add as a product target, not a keyword.

3. List what is already exact. Call Nova's query_advertising with groupBy "keyword", targetingDetails ["exact"], the metric spend, limit 1000, for the same marketplace. Remove from step 2 every query that already has an exact keyword with the same text.

4. Check what is blocked. For the 10 biggest candidates, call Nova's list_negative_targets with q set to the query. A rule counts only if its keywordText matches the query exactly. Flag any candidate that is negated somewhere, because someone chose to block it.

5. Find where each query sold. For the 10 biggest candidates, call Nova's query_search_terms with searchTerms set to that one query and groupBy "adGroup", with spend, orders and sales. It returns the campaigns and ad groups that caught it.

6. Read the margin behind each ad group. For those ad groups, call Nova's query_advertising with adGroupIds set to them, groupBy "childAsin", and the metrics spend, sales and breakEvenAcos. Use the lowest break-even ACOS of the products in the ad group.

7. Set a starting bid. For each candidate, divide its sales by its clicks to get the revenue per click, then multiply by the break-even ACOS from step 6. That is the most a click can cost before an ad sale loses money. Suggest a starting bid below it, and never above it.

8. Sort the candidates. Harvest: at least 2 orders and 10 clicks, ACOS below break-even. Watch: 1 order, or fewer than 10 clicks. Do not harvest: ACOS above break-even, or the query is negated somewhere.

9. Report, in four lists.
   - Harvest: query, orders, clicks, ACOS, conversion rate, the ad group that caught it, and the starting bid
   - Product targets: ASIN rows with orders, and where they sold
   - Watch: candidates to read again next run
   - Do not harvest: with the reason
   Then give the Harvest list ready to paste, and for each query the source ad group where a negative exact will stop it competing with the new exact keyword.

Rules: you cannot change anything on my account, so I create the campaigns, bids and negatives in Amazon Ads. A query carries no product margin of its own, so say the bid uses the break-even of the products in the ad group. Never add sales across ad types. Say which figures are missing and why, and relay every notice Nova returns (P&L rules, COGS gaps, currency, ad history).
```

## How to read the result

| What you see | What it usually means | What to do in Amazon Ads |
| --- | --- | --- |
| Query with orders, ACOS below break-even, no exact keyword | A proven query you only reach by chance | Add it as an exact keyword at the starting bid |
| The same query caught by several ad groups | Your own targets compete for it | Add a negative exact in the source ad groups once the exact keyword runs |
| ASIN row with orders | A competing or related product page that converts | Add it as a product target |
| One order or few clicks | Too little to judge | Leave it on the watch list for the next run |
| Orders but ACOS above break-even | Each sale loses money at today's bids | Lower the bid in the source ad group before you harvest it |
| Query negated somewhere | Someone chose to block it | Check why before you harvest it |

## Limits

- This playbook only reads, so you apply its changes in Amazon Ads. PPC management from the assistant is in beta and opening to the public soon.
- `query_search_terms` returns queries with at least one click in the period.
- Amazon's search term report has no ASIN, so a query has no margin of its own. The bid uses the break-even of the products in the ad group that caught it.
- There are no impressions or click-through rate per query.
- Sponsored Display has no search term report.
- `list_negative_targets` covers Sponsored Products only.
- Sponsored Products sales count over 7 days on Seller Central and 14 days on Vendor Central. Break-even ACOS is empty on Vendor Central.
- Break-even ACOS uses the costs you entered. Units with no COGS overstate margin, and Nova returns a notice when that happens.
