Skip to content

Add negative keywords

Cut wasted ad spend by detecting negative keyword candidates and tidying up duplicate delivery. The goal of this category is to separate “search terms worth keeping” from “search terms that are clearly wasted spend.”

  • “Want to exclude search terms with excessively high ACoS.”
  • “Want to stop search terms that get clicks but produce zero conversions.”
  • “Want to clean up duplicates where the same search term is delivered from multiple campaigns.”
  • “Want to turn the same weekly negative-candidate detection into a fixed rule instead of retyping parameters.”

Prompt 1: Detect high ACoS / zero-conversion negative keyword candidates

Section titled “Prompt 1: Detect high ACoS / zero-conversion negative keyword candidates”

List, with evidence, search terms that significantly exceed the target ACoS and search terms that have clicks but no sales — as negative keyword candidates.

  • Want to exclude search terms with excessively high ACoS
  • Want to stop search terms that get clicks but zero conversions
  • Want a unified list of negative candidates
From the most recent finalized weekly data, against the target ACoS {{TARGET_ACOS}},
extract search terms that have at least min_clicks {{MIN_CLICKS}} and exceed
the target ACoS by {{ACOS_RATIO}}x, or search terms with clicks but zero conversions,
as negative keyword candidates.

Placeholders:

PlaceholderDescriptionDefault source
{{TARGET_ACOS}}Target ACoS (e.g. 15%)Auto-resolved from monthly KPI targets
{{MIN_CLICKS}}Minimum click count to qualify (e.g. 20)Default 20
{{ACOS_RATIO}}Multiple of target ACoS that triggers negative candidacy (e.g. 2)Default 2
  1. Extract two types of negative candidates — From finalized weekly data, separately detect (a) search terms where ACoS exceeds 2x the target and (b) search terms with clicks but zero conversions
    • Why split into two streams: “Search terms that are unprofitable” and “search terms that are wasted spend” deserve different urgency, so listing them mixed together obscures the right action
    • Why finalized weeks: Unfinalized weeks have incomplete data and lead to misjudgments
  2. Click-count floor — Extract only those with min_clicks 20 or more
    • Why min_clicks 20: Low click counts have large variance, raising the risk of mistakenly excluding a search term that happened to have zero conversions
  3. Automatic ASIN detection — Strings in B0XXXXXXXX format are treated as ASINs and displayed separately from regular search terms in the table
  4. Recommended match type — Default is negativeExact; competitor-style search terms also list negativePhrase as an alternative
    • Why negativeExact is the default: Negative phrase or broad-style exclusion can block unintended search terms, so the default minimizes blast radius
  5. Return an approval table — 7 columns: search term, type, clicks, ad spend, sales, ACoS, recommended match type

Negative keyword candidates: 11 items (high ACoS 7 / zero-conversion 4)

Search termTypeClicksAd spendSalesACoSRecommended match
commercial shampooHigh ACoS32¥2,560¥1,200213%negativeExact
competitor-brand shampooHigh ACoS28¥2,240¥980229%negativePhrase
amino acid shampoo cheapZero-conversion24¥1,920¥0negativeExact
B0XXXXXXXXZero-conversion22¥1,760¥0negativeExact
…(remaining 7 items)…

Across all 11 items, the estimated monthly ad spend savings is approximately ¥18,400. To apply, reply “execute.” To approve a subset, specify like “execute only item 1.”

  • The number of negative keywords registrable in a single execution is auto-clamped to a maximum of 50 (to prevent accidentally excluding too many)
  • Nothing is applied unless “execute” is explicitly stated (no changes apply until approval)
  • Default match type is negativeExact (narrowest blast radius)
  • Each proposal has a 1-hour validity window; regeneration is required after expiry
  • Rollback can be performed in the Amazon Ads console, or by sending the prompt “I want to revert the negative keyword”
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just a Picaro connection
Phase 2 (Q3 2026)Daily runMonthly KPI target registration + “saved prompt”
Phase 3 (Q4 2026)Auto-execute (approval-flow)One-click Slack approval, weekly, up to 50 items/week
Phase 4 (2027)Fully automaticML confidence >= 0.85, within guardrails

Q: Can a subset of candidates be excluded? A: Yes. Specify by number, like “execute only items 1 and 3.”

Q: What about excluding registered keywords (the ones added to the ad), not search terms? A: This prompt targets search terms (what users actually typed). To pause registered keywords, use Prompt 3 (zero-sales target extraction) of Adjust bids.


Prompt 2: Detect and organize duplicate delivery

Section titled “Prompt 2: Detect and organize duplicate delivery”

Detect duplicates where the same search term is delivered from multiple campaigns, and propose the lower-CVR side as a negative candidate.

  • Want to clean up duplicates where the same search term runs in multiple campaigns
  • Want to find search terms wasting ad spend through duplicate delivery
  • Want to add a negative on the lower-CVR side to consolidate delivery
From the most recent finalized weekly data, detect search terms delivered
across two or more campaigns. Output the top {{TOP_N}} candidates for
registering a negative on the lower-CVR side, with estimated wasted ad spend.

Placeholders:

PlaceholderDescriptionDefault source
{{TOP_N}}Cap on output row count (e.g. 30)Default 30
  1. Detect duplicate search terms — Cross-campaign extraction of search terms appearing in two or more campaigns
    • Why finalized weeks: In unfinalized weeks, one campaign’s data may settle before the other’s, making duplicate detection unstable
  2. Identify the lower-CVR side — For the same search term, the campaign with lower CVR is flagged as “the side to exclude”
    • Why CVR-based judgment: Even for an identical search term, the landing ASIN and bid level change conversion efficiency, so consolidating into the higher-CVR side improves ad spend efficiency
  3. Estimate wasted ad spend — Approximate via “ad spend consumed on the lower-CVR side × duplication period”
    • Why include an estimate: A monetary figure helps prioritize which duplicates to address first
  4. Detection only — registration is a separate flow — This prompt produces the candidate list; the actual negative keyword registration goes through the same approval flow as Prompt 1

Duplicate delivery cleanup candidates: 8 items (top 30, ranked by estimated waste)

Search termKeep campaign (higher CVR)Exclude campaign (lower CVR)Wasted ad spend (estimated)
amino acid shampooSP - flagship ASIN (CVR 8.2%)SP - secondary ASIN (CVR 1.1%)¥4,200
refill shampooSP - flagship ASIN (CVR 6.5%)SP - auto (CVR 0.9%)¥3,800
B0XXXXXXXXSP - product targeting (CVR 5.1%)SP - auto (CVR 0%)¥2,400
…(remaining 5 items)…

Total estimated wasted ad spend in the most recent finalized week: ¥18,200. To proceed with negative registration, use the same approval flow as Prompt 1.

  • This prompt is detection only — no automatic negative keyword registration
  • Wasted ad spend is an estimate; the actual savings vary with delivery conditions
  • Each proposal has a 1-hour validity window
  • Negative registration goes through the same approval step as Prompt 1 (nothing applies until “execute” is explicitly stated)
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just a Picaro connection
Phase 2 (Q3 2026)Daily runMonthly KPI target registration + “saved prompt”
Phase 3 (Q4 2026)Auto-execute (approval-flow)One-click Slack approval, weekly, up to 30 items/week
Phase 4 (2027)Fully automaticML confidence >= 0.85, within guardrails

Prompt 3: Apply negative keyword detection rules

Section titled “Prompt 3: Apply negative keyword detection rules”

Register a per-account negative detection rule once so future detections can be invoked with a single line, without re-specifying parameters each time.

  • Re-specifying parameters every time is tedious
  • Want to lock in a per-account negative detection rule
  • Want to run the same conditions for negative candidate detection weekly
Check whether a negative keyword detection rule is registered. If registered,
auto-apply it. If not registered, register target_acos / min_clicks /
max_acos_ratio first, then detect negative keyword candidates.

Placeholders: None (the prompt registers the rule interactively, so no placeholders are used).

  1. Check for existing rule — First check whether the account already has a negative detection rule attached
    • Why check first: If a rule already exists, parameters need not be retyped; if it’s stale, an update can be prompted
  2. If not registered, start an interactive registration — Accept the 3 values target_acos / min_clicks / max_acos_ratio interactively and save them
    • Why these 3 values: The minimum thresholds needed by Prompt 1’s logic are just three — target ACoS, minimum click count, and the exclusion multiplier
  3. Detect candidates using the applied rule — Run the same detection logic as Prompt 1 with the registered values
  4. One-line invocation thereafter — Once a rule is saved, future calls work with just “list negative candidates”

Detection rule confirmed

ItemValue
target_acos15%
min_clicks20
max_acos_ratio2.0

Detecting negative candidates with this rule.

Negative keyword candidates: 9 items (high ACoS 6 / zero-conversion 3)

Search termTypeClicksACoSRecommended match
commercial shampooHigh ACoS32213%negativeExact
…(remaining 8 items)…

Future calls work with just “list negative candidates” under the same conditions. To apply, reply “execute.”

  • Rule registration and updates are confirmed interactively before saving (prevents saving incorrect thresholds)
  • After rule application, negative registration still goes through the same approval step as Prompt 1 (nothing applies until “execute” is explicitly stated)
  • The number of negative keywords registrable in a single execution is auto-clamped to a maximum of 50
  • Rules are saved per account and do not affect other accounts
  • Each proposal has a 1-hour validity window
PhaseStatusConditions
Phase 1 (current)One-shotAvailable with just a Picaro connection
Phase 2 (Q3 2026)Daily runRule registration + “saved prompt”
Phase 3 (Q4 2026)Auto-execute (approval-flow)One-click Slack approval, weekly, up to 50 items/week
Phase 4 (2027)Fully automaticML confidence >= 0.85, within guardrails

Q: Can the rule be changed later? A: Yes. Send “update the negative detection rule” to see the current values and update them interactively.

Q: Can a different rule per account be used? A: Rules are saved per account, so switching accounts uses that account’s rule.


GoalUse
Detect high ACoS / zero-conversion negative candidatesPrompt 1
Detect duplicate deliveryPrompt 2
Lock in a detection rule for reusePrompt 3