Skip to content

Add negative keywords

On this page you can detect the search terms that are driving wasted ad spend as negative keyword candidates and approve those candidates to add them as negative keywords. This page is for separating “search terms still worth keeping” from “search terms that are clearly wasted spend,” and taking the latter out of delivery. Detecting candidates is the focus — the actual exclusion happens only once you approve.

ItemDetails
What you can doList high ACoS, zero-sales, and overlapping-delivery search terms as negative keyword candidates, save a decision rule, and add negative keywords through the approval flow
Applies toSponsored Products (SP)
Data & connection neededThe search-term and campaign performance data of your connected account (no additional setup required)
ScopeMainly proposal only. Most prompts just build a list of exclusion candidates, and nothing is actually excluded until you approve it. Saving a decision rule (Prompt 3) is a “record” and does not change ad settings
  • You want to detect, with evidence, search terms that greatly exceed your target ACoS as exclusion candidates
  • You want to organize search terms that get clicks but produce no sales
  • You want to find the same search term being delivered redundantly from multiple campaigns
  • You want to save a decision rule so you can produce exclusion candidates under the same conditions every week
  • You want to extract only the search terms with high spend but zero sales
  • You want to audit keyword duplication (internal competition) across all SP campaigns
  • Target account … if you handle multiple accounts, confirm the target account is correct first.
  • Target period … such as “the past 30 days.” Same-day and previous-day data may not be finalized, so a recently finalized period is safer.
  • Target ACoS … if you have registered it in Set targets for sales, ad spend, and ACoS, it is auto-referenced as the basis for judging exclusion candidates, so you can omit it in the prompt.
GoalWhat you getChangesPrompt
Detect high ACoS / zero-sales search terms as exclusion candidatesA list of candidates with evidence (type, performance, recommended match type)Proposal only (added after approval)Prompt 1
Find overlapping delivery of the same search term and build cleanup candidatesA list of the side to keep, the side to exclude, and the wasted ad spendNo change (proposal only, added after approval)Prompt 2
Save an exclusion decision rule to skip specifying it every timeA confirmation of the registered rule plus a list of exclusion candidatesSaves a decision rule + proposalPrompt 3
Extract high-spend search terms that aren’t sellingA list of exclusion candidates ranked by ad spend (with performance)No change (proposal only, added after approval)Prompt 4
Audit keyword duplication across all SP campaignsA list of duplicate pairs with recommended actions and expected savingsNo change (audit only)Prompt 5

Prompt 1: Detect high ACoS / zero-sales search terms as exclusion candidates

Section titled “Prompt 1: Detect high ACoS / zero-sales search terms as exclusion candidates”

Lists, with evidence, search terms that greatly exceed your target ACoS and search terms that get clicks but produce no sales, as negative keyword candidates.

When to use — when you want to gather both the search terms that badly miss your target and the search terms with clicks but no sales into a single set of exclusion candidates.

What you need — the target ACoS (can be omitted if registered in KPI targets), and the click-count and ACoS-multiple thresholds used for the judgment (defaults below).

Goal: reduce wasted ad spend (search terms that get clicks but don't convert) and improve ACoS.
Target account: {{account}} / Target period: the last 30 days of finalized data / Ad type: Sponsored Products
## 1. Fix the target ACoS (do this first, without exception)
Use a target ACoS of {{target ACoS (e.g., 15%)}}. If you resolve it from the monthly KPI, always confirm the resolution result.
**If the target ACoS could not be resolved, you must not report the "high ACoS" condition as 0 matches.**
State "the high-ACoS determination could not be run because no target ACoS is set," ask for an actual value, and stop.
(Always distinguish 0 matches from suppression.)
## 2. Negative keyword candidates (zero-conversion only)
List search terms with {{minimum clicks (e.g., 20)}} or more clicks and **zero sales** as negative keyword candidates.
- Sort by **the measured spend (cost) over the last 30 days, highest first**. State explicitly that this is measured spend, not an estimate
- On each row, output the search term / clicks / spend / sales / campaign ID / ad group ID / recommended match type
- **Distinguish terms that had sales in the comparison period (the preceding 30 days)**. To prevent the accident of excluding a performing term because of a single month's noise,
show terms with zero conversions across two consecutive periods separately from terms with zero conversions only in the current period
- Remove candidates that duplicate existing negative keywords, and **state how many were deduplicated**
## 3. Bid-adjustment review targets (a separate group — do not make them exclusion candidates)
Search terms with {{minimum clicks (e.g., 20)}} or more clicks that **do have sales** but whose ACoS exceeds {{multiple (e.g., 2)}}x the target
should **not** be made exclusion candidates — show them separately as "bid-adjustment review targets."
Excluding terms that have sales costs you performance, so handle them with bid adjustment rather than exclusion.
If the matching count makes up the bulk of the population, point out that the target ACoS value may be out of line with actual capability.
## 4. Needs review (do not judge automatically)
Do **not** judge the following yourself — always separate them out as "needs review."
- Whether a term is a brand term or related to your own ASINs (there is no automatic way to tell, so the operator decides)
- Candidates that **come from ASIN targeting rather than keywords**
(they are subject to product-target exclusion rather than keyword exclusion, so put them in a separate section)
## 5. Disclose data coverage (required)
- The upstream total / the number of rows actually retrieved and the percentage / whether the fetch was cut off
- How far you were able to check for duplication against existing negatives, and **the unchecked count and percentage**
- Always distinguish whether "0 candidates" is a true 0 or suppression caused by a fetch cutoff or a precondition
## Before executing, always
Present the list of changes (target search terms and spend) and do not apply anything to Amazon Ads until approved
(applying is done in "approve and apply the proposal").
Guardrail: {{metric to protect (e.g., Orders within -5% week over week)}}.
If there is no way to evaluate it in advance, state "only post-hoc measurement is possible."
## After executing
At {{evaluation date (e.g., 30 days later)}}, compare Before/After for ACoS and the ad spend utilization rate,
and present one of Keep/Expand/Adjust/Pause/Revert/Investigate.

What you can change — the target ACoS (can be omitted if registered in KPI targets) / the target click-count threshold (e.g., 20 or more) / the allowed ACoS multiple (e.g., 2x the target).

What you get back — a table listing, per search term, its type (high ACoS or zero sales), clicks, ad spend, sales, ACoS, and the recommended negative match type (usually negative exact). The prompt specifies that a single registration stays within 50 items.

Changes — proposal only. Nothing is actually excluded until you approve it.

Next steps — when you want to approve and add exclusions, you can pass this list straight into the approval flow in Create Sponsored Products (SP) campaigns.


Prompt 2: Find overlapping delivery of the same search term and build cleanup candidates

Section titled “Prompt 2: Find overlapping delivery of the same search term and build cleanup candidates”

Detects duplicates where the same search term is delivered from multiple campaigns, and organizes the lower-CVR side as an exclusion candidate.

When to use — when you want to find and clean up duplicates where your own campaigns compete on the same term and waste ad spend.

What you need — the target period (default is the past 30 days) and the number of items to show (default is the top 30).

From the most recent finalized data over the past 30 days, find duplicates of
the same search term being delivered from two or more campaigns. List up to 30
candidates for registering a negative keyword on the lower-CVR side.
Also include an estimate of the ad spend being wasted.

What you can change — the target period / the number of items to show (e.g., the top 30).

What you get back — a table listing, per search term, the campaign to keep (the higher-CVR side), the campaign to exclude (the lower-CVR side), and the estimated wasted ad spend.

Changes — no change (proposal only). This detects only and does not register automatically. Actual exclusions go through the same approval flow as Prompt 1.

Next steps — when you want to approve and add exclusions, do so in the approval flow in Create Sponsored Products (SP) campaigns.


Prompt 3: Save an exclusion decision rule to skip specifying it every time

Section titled “Prompt 3: Save an exclusion decision rule to skip specifying it every time”

Register a per-account exclusion decision rule so you don’t have to write the parameters each time, leaving future detections callable in a single line.

When to use — when you want to stop writing judgment criteria such as target ACoS, minimum click count, and allowed multiple every time, and fix them as a rule.

What you need — the target ACoS, minimum click count, and allowed ACoS multiple (registered if not yet set).

Goal: consolidate the criteria for judging negative keywords and improve ACoS on an ongoing basis.
1. Check the state of the decision rule. Even when the automation-rule list shows the negative-keyword (negative) rule as "enabled," that can be an unsaved default fallback.
🔴 You can tell from the list itself. Look at these three things.
- Whether the list's "source" column says default
- Whether the rule ID starts with picaro-default-
- Whether the list heading says "(includes unsaved Picaro defaults)"
On top of that, always fetch it individually and quote the "source" line from the response verbatim
(when unsaved, it states "Picaro recommended default (unsaved fallback; save with upsert to change it)").
Confirm whether the individual-fetch response actually shows all three of target ACoS, minimum click count, and allowed multiple,
and state which of "saved rule," "unsaved default fallback," or "not registered" applies.
* In measurements, the default negative rule held only the minimum click count — the target ACoS and the allowed multiple did not appear in the response.
Do not misread that state as "all three are present."
2. For detecting exclusion candidates, don't leave it to automatic resolution by the rule — specify the judgment values explicitly every time
(target ACoS {{target ACoS (e.g., 15%)}} / minimum click count {{minimum clicks (e.g., 10)}} / allowed multiple {{allowed multiple (e.g., 2x)}}).
As measured in step 1, the target ACoS is not included in the default rule, so if you omit the explicit specification it runs unresolved,
the review of high-ACoS terms is silently suppressed to a count of 0, and it becomes indistinguishable from "no matches."
* Pass the target ACoS as a decimal between 0 and 1 (0.15 = 15%). Don't pass a percentage value as is.
3. Always attach these 3 items to the output.
- The basis on which the target ACoS was resolved (explicit specification / KPI target / saved rule / unresolved)
- Whether the review of high-ACoS terms was suppressed (and if so, that fact and the cause)
- Whether the search-term data fetch was cut off (pages fetched / total pages, and the percentage)
🔴 If the search-term retrieval rate is low, try these two things before giving up.
- The max_pages limit is 100 (100 rows per page = up to 10,000 rows), and it is 20 when omitted. Left at the default, the retrieval rate looks low.
- Passing min_clicks filters on the upstream server side, shrinking the population and making the retrieval rate jump
(this prompt has a "minimum click count" condition, so it converts directly into the server-side filter).
Measured reference: passing min_clicks=10 on the target performance list gave total_results 295 / fetched 295 = 100% coverage.
Only if it still falls short, state "results within the fetched range" and do not write that you saw the full set.
4. Separate candidates matching {{brand term list (e.g., your brand names and their spelling variants)}} into a separate group as brand terms, and sort the rest by estimated saving (the spend of zero-conversion terms), largest first. As a rule, keep brand terms out of the exclusion candidates; if you do recommend excluding one, state the reason.
Present the estimated saving as "the total spend actually used within the period," not as a forecast of future savings.
5. If the decision rule is unsaved or judgment values are missing, go no further than presenting the contents that should be registered (target ACoS, minimum click count, allowed multiple, scope) as a proposal, and do not register it until approved.
* In Phase 1 the rule's execution modes are only propose_only / on_demand — scheduled automatic execution is not possible. Don't write that it "runs automatically."
* The rule limit is 20 per account.
Before executing, always: present the list of changes (target search terms and estimated saving) and do not apply anything to Amazon Ads until approved (applying is done in "approve and apply the proposal").
If you don't approve a proposal you generated, always discard it and report that you discarded it (a proposal stays in the account awaiting approval for 24 hours, and there is no way to find it in a list).
Guardrail: exclude from the proposal any change that would push {{metric to protect (e.g., Orders within -5% week over week)}} below that line. Confirm that every exclusion candidate is a zero-conversion term (0 orders, 0 sales); if terms with sales are included, don't exclude them — move them to a separate group as bid-adjustment review targets.
After executing: at {{evaluation date (e.g., 30 days later)}}, compare Before/After for ACoS and ad spend, and present one of Keep/Expand/Adjust/Pause/Revert/Investigate. Make the comparison at the ad group level (an excluded term on its own will always be -100%).

What you can change — the target ACoS / minimum click count / allowed ACoS multiple.

What you get back — a confirmation of the registered rule’s contents, plus an exclusion-candidate table in the same format as Prompt 1. From next time on, you can invoke the same conditions with just “list the exclusion candidates.”

Changes — saves a decision rule against your account (a record; does not change ad settings). The exclusion candidates are proposal only, and nothing is actually excluded until you approve it.

Next steps — to systematize recurring monitoring and proposals using the saved rule, use Save rules to systematize proposal approval and monitoring.


Prompt 4: Extract high-spend search terms that aren’t selling

Section titled “Prompt 4: Extract high-spend search terms that aren’t selling”

Lists every search term with high spend but zero sales (zero orders), ranked by total spend, highest first.

When to use — when you want to see the wasted, high-spend search terms in order of amount and prioritize cleaning them up.

What you need — the target period (default is the past 30 days) and the ad spend floor (default is over ¥5,000).

Analyze the search term data from the past 30 days and table every search term whose ad spend exceeds {{threshold (e.g., ¥5,000)}} but whose sales are zero, together with its ad spend, clicks, and cost per click, ranked by ad spend, highest first.
Goal: surface negative keyword candidates in order to cut wasted ad spend.
[Procedure]
1. Confirm the finalized data boundary first. Check each day of the target period with `get_data_ingestion_status` and drop `fully_missed` / `in_progress` days from the period. State both the requested number of days and the effective number of days at the top (today is often unfinalized, and the period silently shortens by a day, making the absolute ad spend come out understated).
2. Fix the data source to `list_search_term_performance`. Always confirm that the response's `comparison_period` matches the requested period. `start_search_terms_job` can return the immediately preceding period of the same length rather than the requested period while still showing the period as requested, so don't use it unless you can verify the period match by cross-checking the same terms against `list_search_term_performance`.
3. State the rows retrieved / the upstream total / the retrieval rate / the truncation flag at the top. If truncation occurred, show numerically whether any terms above the threshold were missed (identify the axis of the upstream sort order by comparing adjacent rows; if the ad spend of the last retrieved row is below the threshold, everything above the threshold was retrieved).
4. Verify numerically that the output order really is ad spend descending before making the table (specifying filters can cause results to come back sorted on a different axis). If it isn't descending, re-sort by ad spend.
5. Attach a determination to each row. Because the extraction condition is "zero sales in the current period," the current-period CVR is structurally 0 for every row and "an improving CVR trend" never fires. Classify with the following instead.
- Watch … there were sales in the preceding period of the same length (possibly a temporary slump)
- Exclusion candidate … there was delivery in the preceding period of the same length as well, with zero sales (it consistently fails to convert)
- On hold … a new term with no delivery in the preceding period of the same length (not enough to judge on)
6. Always check the conversion lag. Sales are aggregated on a 7-day attribution from the click, so clicks in the last 7 days have not finished attributing. For each candidate, calculate "ad spend in the last 7 days / ad spend over the whole period"; for terms with a high ratio, take them out of the exclusion candidates on the grounds that they may simply have "not converted yet," and attach the date on which to re-judge them after attribution completes.
Guardrail:
- Do not make a term an exclusion candidate if it had sales in the preceding period of the same length.
- Do not make a term an exclusion candidate if its ad spend is concentrated in the last 7 days, as attribution is incomplete.
- Do not make brand keywords (your own brand names and their spelling variants, in kana or Latin script) exclusion candidates. There is no tool that returns a list of brand terms, so state that the basis for the judgment is visual inspection.
Finally, output these 3 items.
1. Recommended action — state the list of exclusion candidates, the reason (return on ad spend), the priority (ad spend, highest first), the confidence, and the risk (mistakenly excluding a term that works). Exclusions are hard to undo and there is no way to trace the change history afterwards, so mark low-confidence ones "on hold" and attach a re-judgment date
2. How to execute it — after the user reviews and approves the targets, apply the exclusions with `create_sp_negative_keywords` or the like. This prompt stops at extraction and does not execute the exclusion
3. Measurement — two weeks after adding the exclusions, re-fetch ACoS and sales with "measuring the effect of a change"; Keep if there is no impact on sales, Revert if sales fell

What you can change — the target period / the ad spend floor (e.g., over ¥5,000).

What you get back — a table listing, per search term, the ad spend, clicks, cost per click, and recommended negative match type, ranked by ad spend, highest first.

Changes — no change (proposal only). Actual exclusions go through the approval flow.

Next steps — when you want to approve and add exclusions, do so in the approval flow in Create Sponsored Products (SP) campaigns.


Prompt 5: Audit keyword duplication across all SP campaigns

Section titled “Prompt 5: Audit keyword duplication across all SP campaigns”

Analyzes keyword duplication across all active SP campaigns and ad groups, detecting internal competition (cannibalization).

When to use — when you want to audit all campaigns together rather than one at a time, and surface keywords competing internally (the whole-account version of Prompt 2).

What you need — the scope is all active SP campaigns and ad groups (period and count are optional).

Analyze keyword duplication across all active SP campaigns and ad groups.
Estimate the duplication rate and flag pairs that compete with each other
internally on the same search term.
Recommend which keywords to add as merges or exclusions, and show the
expected cost-per-click savings.

What you can change — the scope of campaigns to target (all active SP is the default).

What you get back — a table listing, per duplicate pair, the keyword, the competing campaigns, the recommended action (merge or exclude), and the expected cost-per-click savings.

Changes — no change (audit only). This produces the audit results only and does not apply merges or exclusions.

Next steps — add exclusions via the approval flow in Create Sponsored Products (SP) campaigns, and revise the bids of overlapping keywords in Adjust bids.