← Template Library Download Template ↗

Automation template

Core: Pause Underperforming Keywords & Targets

Pause keywords and targets that spent enough to prove they are not converting profitably.

Ready to use Merch Jar workflow
Version
1.0
Type
Last updated
2026-07-08T00:00:00.000Z
Active
Yes

Download this template

Description

Purpose

Pause keywords and targets that have spent enough to prove they are not converting profitably.

This Segment is for:

  • Cleaning up wasted spend on keywords and targets that draw clicks but no profitable orders.
  • Accounts running many keywords and targets where reviewing waste by hand does not scale.
  • Advertisers who want underperformers paused against their Target ACOS, not a flat number.
  • Any account with lifetime history, since the logic decides on lifetime totals rather than a short window.

Key Features

  • Match-type-aware thresholds: Broad and auto targets get more clicks before judgment (50) than exact match (20), because exploratory match types need more room to prove themselves.
  • Evidence scales with success: Each lifetime order raises the click bar by 20, so proven converters are held to a higher standard before they can be paused.
  • Target-ACOS driven: The inefficiency line is your Target ACOS times a multiplier, so it adapts across campaigns and accounts instead of a hardcoded percentage.
  • Converter safeguard: Anything with 10 or more lifetime orders is never paused, regardless of ACOS.

Configuration Guidance

  • Tune strictness with the ACOS multiplier: The pause line is Target ACOS times 300 percent. Lower it to pause sooner, raise it to give inefficient terms more rope.
  • Adjust thresholds by match type, not by excluding campaigns: Raise the broad and auto click thresholds if you want more runway on discovery traffic.
  • Protect brand and test campaigns: Add their names to the exclude filter so the segment never touches them.
  • Run daily: Lifetime metrics move slowly, so a daily cadence catches waste without churning your account.

Daily automation: Set State to Paused for the entities this segment returns.

How it works

How the Logic Works

Each keyword or target is evaluated on its lifetime performance and paused under one of two conditions: it has spent enough with zero orders, or it has enough orders to trust its ACOS and that ACOS sits above your pause threshold. A converter safeguard and a per-match-type evidence bar prevent it from pausing anything prematurely.

Key Technical Concepts

Match-type-aware evidence bar

Different match types deserve different patience. Exact match is deliberate, so 20 clicks with nothing to show is enough to act. Broad match and auto-targeting groups are exploratory, so they get 50 clicks before the segment considers them. The base click requirement is selected from the entity's own match type.

Evidence scales with orders

A keyword that has produced orders has earned some benefit of the doubt. Each lifetime order adds 20 clicks to its requirement, so a target with 2 orders must reach its base plus 40 clicks before it can be paused. This keeps a periodic converter from being paused on a short cold streak.

Target-relative ACOS

The ACOS pause line is your Target ACOS times 300 percent. A 30 percent target pauses at 90 percent ACOS, a 60 percent target pauses at 180 percent. Because it scales with your target, the same segment behaves correctly across campaigns with different goals.

Configuration Deep Dive

Click thresholds by match type

  • Exact match (20): Lowest, because exact match is intentional traffic.
  • Phrase match (30) and Product targeting (20): Moderate.
  • Expanded product targeting (40): Higher, since it reaches beyond your chosen ASINs.
  • Broad match and Auto targeting (50): Highest, because discovery types need room to find winners.
  • Raise these to give traffic more time, lower them to act on waste faster.

Safeguards

  • Converter safeguard (10 orders): Hard protection. An entity with 10 or more lifetime orders is never paused, even at high ACOS. Lower it to be more aggressive, raise it to protect more converters.
  • Spend floor ($5): An entity must have spent at least this much before any pause. Prevents acting on trivial spend.

Orders threshold for ACOS

  • Minimum orders for ACOS (5): ACOS is only trusted for pausing once an entity has at least 5 lifetime orders. Below that, only the zero-order path can pause it.

Diagnostic Property Interpretation

$reason values:

  • "Protected - proven converter" → Has 10 or more lifetime orders and is safeguarded from pausing.
  • "Insufficient spend to evaluate" → Below the spend floor, not enough money spent to judge.
  • "Insufficient clicks for match type" → Has not reached the click bar for its match type.
  • "Spend with zero orders" → Enough data, still no orders. Being paused as waste.
  • "ACOS above pause threshold" → Enough orders and ACOS above your Target ACOS line. Being paused.
  • "Converting within acceptable range" → Has orders and an acceptable ACOS. Left running.
  • "No action needed" → Default healthy state.

$result values:

  • "Pause - Zero Orders" → Will be paused for spending without converting.
  • "Pause - Poor ACOS" → Will be paused for inefficient ACOS against your target.
  • "No Action" → Left running.

Common Performance Patterns

New keywords are left alone

Until an entity clears both its match-type click bar and the spend floor, it returns an "Insufficient" reason and is never paused. Expect new traffic to run untouched while it gathers data.

Proven converters are protected

High-order keywords show "Protected - proven converter" and never pause, even when a recent stretch looks expensive. This is intentional. The safeguard trusts accumulated results over short-term ACOS.

Discovery targets get more runway

Broad match and auto-targeting groups are held to a higher click bar than exact match before they can be paused, so exploratory traffic gets a fair chance to find winners before the segment acts.

Change log

v1.0 (Jul 2026)

Initial release. Match-type-aware click thresholds, order-scaled evidence, target-relative ACOS pausing, and a 10-order converter safeguard. Two pause paths: zero-order waste and poor ACOS.

Syntax

/*
=== Core: Pause Underperforming Keywords & Targets ===
Version: 1.0
Docs: merchjar.com/templates?t=core-pause-underperforming-keywords-targets
 
Purpose: Pause keywords and targets that spent enough to prove they are not converting profitably.
Dataset: Keywords & Targets
Recommended: Set State: Paused | Daily
*/
 
// === Core Settings ===
let $orders_min_for_acos = 5;                  // CORE: Minimum lifetime orders before ACOS is trusted for pausing
let $spend_min = 5.00;                         // CORE: Minimum lifetime spend before an entity is eligible to pause ($5.00)
 
// === Strategy Settings ===
// Match-type click thresholds: lifetime clicks with no efficient result before an entity can be paused.
 
// Manual keywords
let $clicks_exact = 20;                        // STRATEGY: Exact match keywords - base clicks before evaluation
let $clicks_phrase = 30;                       // STRATEGY: Phrase match keywords - base clicks before evaluation
let $clicks_broad = 50;                        // STRATEGY: Broad match keywords - base clicks before evaluation
 
// Product targeting
let $clicks_product = 20;                      // STRATEGY: Product (ASIN) targeting - base clicks before evaluation
let $clicks_expanded = 40;                     // STRATEGY: Expanded product targeting - base clicks before evaluation
 
// Auto targeting
let $clicks_auto = 50;                         // STRATEGY: Auto-targeting groups - base clicks before evaluation
 
// === Advanced Settings ===
let $clicks_scaling_per_order = 20;            // ADVANCED: Extra clicks required per lifetime order [e.g. 2 orders = base + (2 x 20)]
let $t_acos_threshold_pause = 300%;            // STRATEGY: Pause when ACOS >= (Target ACOS x 300%) [e.g. 30% target = 90% threshold]
 
// === Safeguards ===
let $safeguard_orders = 10;                    // SAFEGUARD: Never pause entities with this many lifetime orders or more
 
// === Segment Filters ===
let $include_campaigns = [""];                 // FILTER: Apply to all campaigns, or specify terms like ["SP-", "Auto"]
let $exclude_campaigns = ["NEVER_MATCH"];      // FILTER: Exclude campaigns containing these terms, e.g. ["Brand", "Test"]
 
// ============================================================================
// === Segment Logic ===
// ============================================================================
// Advanced logic below - modify carefully
 
// Lifetime performance metrics
let $lifetime_orders = orders(lifetime);
let $lifetime_clicks = clicks(lifetime);
let $lifetime_spend = spend(lifetime);
let $lifetime_acos = acos(lifetime);
 
// Match-type-aware base click requirement (match-type values are API-level)
let $base_clicks = case(
    match type = "exact" => $clicks_exact,
    match type = "phrase" => $clicks_phrase,
    match type = "broad" => $clicks_broad,
    match type = "product exact" => $clicks_product,
    match type = "similar" => $clicks_expanded,
    match type = "close match" => $clicks_auto,
    match type = "loose match" => $clicks_auto,
    match type = "complements" => $clicks_auto,
    match type = "substitutes" => $clicks_auto,
    else $clicks_expanded
);
 
// Clicks required scales up as orders accumulate (more evidence before pausing a converter)
let $clicks_required = $base_clicks + ($lifetime_orders * $clicks_scaling_per_order);
 
// Data sufficiency: enough clicks AND enough spend to judge
let $sufficient_data = case(
    $lifetime_clicks >= $clicks_required and $lifetime_spend >= $spend_min => 1,
    else 0
);
 
// ACOS pause threshold, relative to the account Target ACOS
let $acos_pause_threshold = target acos * $t_acos_threshold_pause;
 
// Safeguard: protect proven converters
let $protected = case(
    $lifetime_orders >= $safeguard_orders => 1,
    else 0
);
 
// Path 1 - zero-order waste: enough data, still no orders
let $zero_order_waste = case(
    $lifetime_orders = 0 and $sufficient_data = 1 => 1,
    else 0
);
 
// Path 2 - poor ACOS: has orders, enough data, ACOS above the pause threshold
let $poor_acos = case(
    $lifetime_orders >= $orders_min_for_acos and $sufficient_data = 1 and $lifetime_acos > $acos_pause_threshold => 1,
    else 0
);
 
// Pause candidate (either path), unless protected
let $pause_candidate = case(
    $protected = 1 => 0,
    $zero_order_waste = 1 => 1,
    $poor_acos = 1 => 1,
    else 0
);
 
// === Diagnostics ===
let $reason = case(
    $protected = 1 => "Protected - proven converter",
    $sufficient_data = 0 and $lifetime_spend < $spend_min => "Insufficient spend to evaluate",
    $sufficient_data = 0 => "Insufficient clicks for match type",
    $zero_order_waste = 1 => "Spend with zero orders",
    $poor_acos = 1 => "ACOS above pause threshold",
    $lifetime_orders > 0 => "Converting within acceptable range",
    else "No action needed"
);
 
let $result = case(
    $pause_candidate = 1 and $zero_order_waste = 1 => "Pause - Zero Orders",
    $pause_candidate = 1 and $poor_acos = 1 => "Pause - Poor ACOS",
    else "No Action"
);
 
// === Final Filter ===
state = "effectively enabled"
and (campaign name contains any $include_campaigns)
and (campaign name does not contain all $exclude_campaigns)
and $pause_candidate = 1