← Template Library Download Template ↗

Automation template

Core: Impression Recovery Boost

Increases bids for proven performers when impression volume drops significantly.

Ready to use Merch Jar workflow
Version
1.0
Type
a9aee5434d1625f04c922fab8fb4ed89
Last updated
2025-11-19T00:00:00.000Z
Active
Yes

Download this template

Description

Purpose

Recovers lost impression share for proven high-performers when visibility suddenly drops.

This Blueprint is for:

  • Best-selling keywords and targets with 15+ lifetime orders experiencing traffic drops
  • Accounts with competitive markets where impression share fluctuates due to competitor activity
  • Proven performers losing visibility despite maintaining good ACOS performance
  • Accounts spending $10k+/month where traffic recovery matters for revenue consistency

Key Features

  • Baseline comparison analysis - Compares recent 7-day impression averages against 30-day baseline to detect meaningful drops, not just daily fluctuations
  • Performance-gated increases - Only acts when baseline ACOS is within 120% of target, preventing bid increases on marginally profitable traffic
  • Proven performer qualification - Requires 15+ lifetime orders to ensure you're recovering traffic for established winners, not testing unproven targets
  • CPC-based bid limits - Caps increases at 2× average CPC to prevent runaway bids in highly competitive auctions

Configuration Guidance

  • Impression Drop Threshold: Default 40% balances sensitivity with action frequency. Lower to 25-30% for highly competitive markets where you want faster recovery. Raise to 50%+ for stable markets to avoid reacting to normal fluctuations.
  • Lifetime Orders Requirement: 15 orders provides strong performance history. Lower to 10 for newer accounts building proven winners. Never go below 5 orders - insufficient data creates recovery risk.
  • ACOS Threshold for Increases: 120% of target prevents recovering expensive traffic. Tighten to 110% if margins are thin. Loosen to 130-140% for high-margin products where volume matters more than efficiency.
  • Minimum Daily Impressions: 50 impressions ensures meaningful baseline. Increase to 100+ for high-volume products where small percentage drops still represent significant traffic loss.

Daily Automation: Change Bid: Set ($) using $target_bid

How it works

How the Logic Works

The blueprint calculates daily impression averages over two time periods (recent 7 days vs. baseline 30 days) and detects percentage drops from baseline. When qualified targets show drops of 40%+ and meet performance criteria (15+ lifetime orders, ACOS within 120% of target, 2+ baseline orders), it applies a 10% bid increase with CPC-based safety limits. A 3-day cooldown prevents over-adjustment while allowing the market to respond to bid changes.

Key Technical Concepts

Baseline vs. Recent Comparison

Rather than reacting to single-day impression changes, the algorithm compares daily averages across time periods. Recent period (7 days) captures current state. Baseline period (30 days) represents normal performance. This approach filters out daily noise and identifies sustained traffic loss requiring intervention.

Drop Detection Calculation

The impression drop ratio is calculated as: (Baseline Daily Avg - Recent Daily Avg) / Baseline Daily Avg. For example, if baseline is 1000 impressions/day and recent is 600/day, the drop ratio is 0.40 (40%). The algorithm only acts when this ratio exceeds your configured threshold, ensuring you're responding to material changes.

Performance Protection Gates

Multiple conditions must be met simultaneously: proven performer status (15+ lifetime orders), acceptable baseline performance (ACOS ≤ 120% of target with 2+ orders), sufficient baseline volume (50+ daily impressions), and cooldown clearance (3+ days since last change). This layered approach ensures bid increases only happen for established winners experiencing genuine traffic loss.

CPC-Based Bid Limits

The final bid is capped at 2× your 90-day average CPC. If the 10% increase would push your bid above this limit, it gets reduced to the cap. This prevents expensive recovery attempts in markets where competitors have significantly higher bids, protecting you from unprofitable visibility recovery.

Configuration Deep Dive

Balancing Sensitivity vs. Action Frequency

The impression drop threshold creates a tradeoff: lower values (25-30%) respond faster to traffic loss but act more frequently, while higher values (50%+) wait for severe drops but act less often. Consider your market dynamics - highly competitive markets benefit from faster response, while stable markets need patience to avoid chasing normal fluctuations.

Lifetime Orders and Risk Management

The 15-order requirement ensures you're only recovering traffic for genuinely proven performers. Lowering this threshold allows faster recovery for newer winners but increases risk of boosting marginally profitable targets. If you lower it below 10 orders, tighten the ACOS threshold (110% vs. 120%) to maintain safety.

ACOS Threshold Interaction with Margins

The 120% ACOS threshold means a 30% target allows increases up to 36% baseline ACOS. For high-margin products (50%+ profit margins), loosening to 130-140% recovers more volume. For thin-margin products (20-30% profit margins), tighten to 110% to avoid recovering unprofitable traffic. This setting directly impacts which performers qualify for recovery.

Time Period Adjustments

The 7-day recent period vs. 30-day baseline balance responsiveness with stability. Shortening recent to 3-5 days responds faster but risks reacting to weekend/weekday patterns. Extending baseline to 60 days smooths seasonal fluctuations but may miss market shifts. Maintain at least a 3:1 ratio (baseline 3× longer than recent) for reliable comparisons.

Diagnostic Property Interpretation

Understanding $result Values

Bid Increase: Major Drop (75%+) - Severe traffic loss requiring immediate attention. Verify if this is due to competitors, budget constraints in parent campaigns, or Amazon algorithm changes.

Bid Increase: Significant Drop (50-75%) - Substantial traffic loss indicating market shift. Most common scenario for competitive keywords where recovery is warranted.

Bid Increase: Moderate Drop (25-50%) - Meaningful but not extreme. Typical when new competitors enter the auction or your Quality Score decreases slightly.

Bid Increase: CPC Limited - Attempted recovery but capped by 2× CPC limit. Indicates highly competitive auction where full recovery may be unprofitable. Consider whether this target is still worth pursuing.

Major/Significant/Moderate Drop - No Action - Traffic dropped but didn't meet qualification criteria (lifetime orders, ACOS performance, or cooldown). Review $reason to understand blocking factor.

Common $reason Patterns

"Insufficient lifetime orders" - Target hasn't proven itself yet. Let it accumulate more conversion history before recovery attempts.

"ACOS too high for increase" - Baseline ACOS exceeds 120% of target. This target may be declining in profitability - consider whether it's worth recovering or should be allowed to phase out naturally.

"Low baseline impression volume" - Less than 50 daily impressions in baseline period. Traffic is too low for reliable drop detection. May indicate dying keyword or very niche target.

"Cooldown active" - Changed within last 3 days. Be patient - Amazon needs time to adjust ad positioning after bid changes.

Common Performance Patterns

High-Confidence Recovery Scenarios

Best results occur with established winners (20-30+ lifetime orders) showing 50-75% impression drops while maintaining strong ACOS (90-110% of target). These typically indicate competitor bid increases or temporary Quality Score dips where recovery is highly effective.

Medium-Confidence Scenarios

Targets with 15-20 lifetime orders showing 40-50% drops and 110-120% baseline ACOS. Recovery often works but requires monitoring - if ACOS deteriorates further after increase, the market dynamics may have permanently shifted against this target.

When Not to Expect Action

The blueprint intentionally won't act on: targets with inconsistent baseline performance (fewer than 2 orders in 30 days), targets recently adjusted (within 3 days), or targets where the calculated increase would exceed 2× average CPC. These protective measures prevent wasteful spending on declining performers or markets where you can't compete profitably.

Expected Bid Change Frequency

With default settings, expect 5-15% of your proven performers to qualify for increases on any given day. If you're seeing higher rates (25%+), your impression drop threshold may be too sensitive. If you're seeing lower rates (<5%), either your proven performers are maintaining visibility well, or your thresholds are too conservative for your competitive market.

Syntax

/*
=== Core: Impression Recovery Boost ===
Version: 1.0
Docs: merchjar.com/templates?=impression-recovery-boost
 
Purpose: Increases bids for proven performers when impression volume drops significantly.
Dataset: Keywords & Targets
Recommended: Change Bid: Set ($) using $target_bid | Daily
*/
 
// === Core Settings ===
let $orders_min_lifetime = 15;                  // CORE: Minimum lifetime orders to qualify as "proven performer"
let $orders_min_baseline = 2;                   // CORE: Minimum orders in baseline period for data reliability
let $impression_drop_threshold = 40%;           // CORE: Act when impressions drop at least 40% from baseline
let $bid_change_increase = 10%;                 // CORE: Bid increase amount when conditions are met
 
// === Strategy Settings ===
let $t_acos_threshold_increase = 120%;          // STRATEGY: Only increase if ACOS ≤ (Target ACOS × 120%) [e.g., 30% target = 36% threshold]
let $impressions_min_daily = 50;                // STRATEGY: Minimum daily impressions for reliable analysis
 
// === Time Periods ===
let $period_recent = 7d;                        // TIME: Recent period for drop detection
let $period_baseline = 30d;                     // TIME: Baseline comparison period
let $cooldown_period = 3d;                      // TIME: Wait 3 days after bid change before adjusting again
 
// === Advanced Settings ===
let $bid_limit_cpc_multiplier = 2.0;            // SAFEGUARD: Max bid = Avg CPC × 2.0 [e.g., $0.50 CPC = $1.00 max]
let $bid_limit_cpc_period = 90d;                // SAFEGUARD: Period for calculating CPC-based bid limits
 
// === 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
 
// === Impression Analysis ===
let $recent_impressions = impressions($period_recent);
let $baseline_impressions = impressions($period_baseline);
 
let $recent_days = interval($period_recent) / 86400;
let $baseline_days = interval($period_baseline) / 86400;
 
let $recent_daily_avg = $recent_impressions / $recent_days;
let $baseline_daily_avg = $baseline_impressions / $baseline_days;
 
let $impression_drop_ratio = case(
    $baseline_daily_avg > 0 => $recent_daily_avg / $baseline_daily_avg,
    else 1  // No baseline data = no drop detected
);
 
let $impression_drop_percent = case(
    $baseline_daily_avg > 0 => (($baseline_daily_avg - $recent_daily_avg) / $baseline_daily_avg) * 100,
    else 0  // No baseline data = no drop
);
 
// === Performance Protection ===
let $baseline_orders = orders($period_baseline);
let $baseline_acos = acos($period_baseline);
let $acos_acceptable = case(
    target acos > 0 and $baseline_orders >= $orders_min_baseline and $baseline_acos <= (target acos * $t_acos_threshold_increase) => 1,
    else 0
);
 
// === Bid Calculation ===
let $calculated_target_bid = bid * (1 + $bid_change_increase);
 
// === Dynamic Bid Cap ===
let $avg_cpc = cpc($bid_limit_cpc_period);
let $dynamic_cap = case(
    $avg_cpc > 0 => $avg_cpc * $bid_limit_cpc_multiplier,
    else 999  // No cap if no CPC history
);
 
let $target_bid = case(
    $calculated_target_bid > $dynamic_cap => $dynamic_cap,
    $calculated_target_bid < 0.02 => 0.02,
    else $calculated_target_bid
);
 
// === Cooldown Check ===
let $cooldown_cutoff = now() - interval($cooldown_period);
let $timing_ready = case(
    is_null(last bid change) => 1,
    last bid change < $cooldown_cutoff => 1,
    else 0
);
 
// === Qualification Logic ===
let $impression_drop_detected = case(
    $impression_drop_percent >= ($impression_drop_threshold * 100) => 1,
    else 0
);
 
let $action_needed = case(
    target acos <= 0 => 0,                       // Invalid target
    orders(lifetime) < $orders_min_lifetime => 0, // Not proven performer
    $baseline_daily_avg < $impressions_min_daily => 0, // Insufficient baseline data
    $impression_drop_detected = 0 => 0,          // No drop detected
    $acos_acceptable = 0 => 0,                   // Poor baseline performance
    $timing_ready = 0 => 0,                      // Cooldown active
    $target_bid <= bid => 0,                     // No increase calculated
    else 1
);
 
// === Diagnostic Properties ===
let $reason = case(
    target acos <= 0 => "No target ACOS set",
    orders(lifetime) < $orders_min_lifetime => "Insufficient lifetime orders to qualify as proven performer",
    $baseline_daily_avg < $impressions_min_daily => "Baseline impression volume too low for reliable analysis",
    $impression_drop_detected = 0 => "No significant impression drop detected",
    $acos_acceptable = 0 => "Baseline ACOS exceeds acceptable threshold for bid increase",
    $timing_ready = 0 => "Recently changed - cooldown active",
    $target_bid <= bid => "No bid increase calculated",
    $calculated_target_bid > $dynamic_cap => "Impression drop detected - bid capped by CPC limit",
    $action_needed = 1 => "Impression drop detected on proven performer - increasing bid",
    else "Stable impression volume"
);
 
let $result = case(
    $action_needed = 1 => case(
        $impression_drop_percent >= 75 => "Bid Increase: Major Drop (75%+)",
        $impression_drop_percent >= 50 => "Bid Increase: Significant Drop (50-75%)",
        $calculated_target_bid > $dynamic_cap => "Bid Increase: CPC Limited",
        else "Bid Increase: Moderate Drop"
    ),
    $impression_drop_percent >= 75 => "Major Drop (75%+) - No Action",
    $impression_drop_percent >= 50 => "Significant Drop (50-75%) - No Action",
    $impression_drop_percent >= 25 => "Moderate Drop (25-50%) - No Action",
    $impression_drop_percent > 0 => "Minor Drop (<25%) - No Action",
    $impression_drop_percent < 0 => "Impressions Increased - No Action",
    else "No Change Detected"
);
 
// === Final Filter ===
state = "effectively enabled"
and (campaign name contains any $include_campaigns)
and (campaign name does not contain any $exclude_campaigns)
and $action_needed = 1