Skip to content

Design label classifications

Assigning Labels (individual classification values) to Search terms, ASINs, and campaigns lets you slice sales and ad spend on dashboards and N-gram analysis along axes like “offensive KW / defensive KW / brand / use / competitor.” This page collects prompts for designing a Taxonomy (the overall structure of the classification system), auto-labeling competitor ASINs, bulk-labeling Search terms, and managing naming conventions. In the AI era, differentiating bid and creative strategies based on search intent — why a shopper searched — is increasingly critical. Picaro Labels support 3-tier hierarchy (major → mid → minor) for analysis at a granularity that Amazon’s portfolios cannot match.

  • You want to classify Search terms along the 5 axes of offensive KW / defensive KW / brand / use / competitor
  • You want to auto-classify competitor ASINs that have slipped into Search terms by price band, reviews, and Category
  • You want to apply Taxonomy rules — designed once — in bulk to existing Search terms
  • You want to standardize campaign naming conventions for stable aggregation in reports
  • You want to classify by search intent (Branded / Discovery / Solution-based / Competitive) and optimize bids and RoAS per intent type

Prompt 1: Auto-label competitor ASINs on 4 axes

Section titled “Prompt 1: Auto-label competitor ASINs on 4 axes”

Extract competitor ASINs that have slipped into Search terms, and generate and assign Labels that auto-classify them on 4 axes: price band, reviews, Category relevance, and product name.

  • You want to classify competitor ASINs mixed into Search terms for benchmarking
  • You want to organize competitors along price band / review count / Category relevance axes
  • You want to keep periodically labeling newly detected competitor ASINs
Extract ASIN-format strings (B0XXXXXXXX) from Search terms,
and generate Labels that auto-classify competitor ASINs on 4 axes:
1. Price band (low / mid / high)
2. Review rating (many reviews / high rating, etc.)
3. Category relevance
4. Product name
skip_labeled={{SKIP_LABELED}} (exclude existing Label),
limit={{LIMIT}} (required, for external API cost control).
First confirm the plan with dry_run=true →
if it looks good, run for real with dry_run=false.

Placeholders:

PlaceholderDescriptionDefault source
{{SKIP_LABELED}}Whether to exclude ASINs that already have Labels (e.g., true)Default true (set false only when relabeling)
{{LIMIT}}Upper bound on ASINs handled per run (e.g., 50)Default 50 (required, to cap external product-info API costs)
  1. Extract ASINs from Search terms — pull B0XXXXXXXX-format strings from Search terms
    • Why pull from Search terms: to capture cases where users search for other products inside Amazon, so the competitor benchmarking universe has no gaps
  2. Fetch product info — retrieve price, reviews, Category, and product name for the extracted ASINs via an external product-info service
    • Why limit is required: external product-info retrieval is metered, so running without a cap can blow up the bill
  3. Generate Labels on 4 axes — auto-create Labels along the price band, review rating, Category relevance, and product name axes
    • Why 4 axes: combining price, reputation, Category match, and per-product views connects directly to competitor strategy (choosing differentiation axes, tuning expected price bands)
  4. Skip ASINs that already have a Label — with skip_labeled=true, ASINs that already carry a Label are excluded from relabeling
    • Why skip: because of the 1 target = 1 Label constraint, to avoid accidentally overwriting an existing classification
  5. Return an approval table — present 5 columns: ASIN, recommended Label, price, review count, Category

Cases requiring prep:

  • For ASINs from overseas marketplaces (US / EU / UK), first register amazon_domain / currency / language via update_asin_enrichment in Prompt 5
  • When not configured, defaults to Japan (amazon.co.jp / JPY / ja_JP)

Competitor ASIN auto-labeling candidates: 18 (new)

ASINRecommended LabelPriceReviewsCategory
B0XXXXXXXXcompetitor / mid-price / many reviews¥2,4801,243Hair care
B0YYYYYYYYcompetitor / high-price / high rating¥4,980412Hair care
B0ZZZZZZZZcompetitor / low-price / new¥1,28038Body care
… (15 more) …

skip_labeled=true excluded 7 ASINs that already had Labels. Reply “execute” to run. To confirm one at a time, say e.g. “execute item 1 only.”

  • Labels are not actually written until you confirm the plan with dry_run=true
  • skip_labeled=true is the default, preventing silent overwrite of existing Labels
  • Execution is rejected when limit is not specified (prevents external API cost runaway)
  • Each proposal has a 1-hour validity; expired proposals must be regenerated
  • If an overwrite occurs, roll back via Prompt 3 (manual assignment) by reassigning the original label ID
PhaseStateConditions
Phase 1 (now)One-shotAvailable with Picaro connection only
Phase 2 (Q3 2026)Daily (on new ASIN detection)Taxonomy registered + saved as a “Saved prompt”
Phase 3 (Q4 2026)Auto-execution (approval flow)Weekly auto + Slack 1-click approval, within volume cap
Phase 4 (2027)Fully automatedML confidence ≥ 0.85, within guardrails

Q: Does this also label the Search term side? A: This prompt assigns Labels to “competitor ASINs.” For Search-term-side labeling, use Prompt 2.

Q: Can I cover overseas marketplaces in one go? A: Yes — register amazon_domain etc. via Prompt 5. If not registered, ASINs are interpreted under Japan’s product info.


Prompt 2: Bulk-label Search terms with the Taxonomy

Section titled “Prompt 2: Bulk-label Search terms with the Taxonomy”

Use Label patterns already registered in the Taxonomy to bulk-assign Labels to all Search terms ingested into Picaro.

  • You want to classify Search terms at once using your offensive KW / defensive KW / brand / use / competitor Taxonomy
  • You want to relabel existing Search terms after updating your Label design
  • You want consistent, rule-based classification without one-by-one manual assignment
For all Search terms registered in Picaro,
bulk-apply Labels using the Taxonomy rules.
skip_labeled={{SKIP_LABELED}} (exclude existing Label),
confirm the plan with dry_run=true →
if it looks good, run for real with dry_run=false.

Placeholders:

PlaceholderDescriptionDefault source
{{SKIP_LABELED}}Whether to exclude Search terms that already have Labels (e.g., true)Default true (set false only when relabeling)
  1. Load Taxonomy patterns — fetch the “Label × match pattern” rules registered via Prompt 5
    • Why via Taxonomy: changing the Label design only requires a re-run to apply consistent classification across all Search terms
  2. Match Search terms — evaluate each Search term against the registered patterns
  3. Skip existing Labels — with skip_labeled=true, exclude Search terms that already have a Label
    • Why skip: because of the 1 Search term = 1 Label constraint, to avoid silently overwriting classifications you previously assigned by hand
  4. Return an approval table — present 4 columns: Search term, planned Label, matched pattern, count

Taxonomy bulk-label candidates: 184

Search termPlanned LabelMatched pattern
amino acid shampoooffensive KW / useamino acid, shampoo
picaro original shampoodefensive KW / brandpicaro
B0XXXXXXXXcompetitorASIN format
camp shampoooffensive KW / usecamp
… (180 more) …

Skipped 42 Search terms that already had Labels. Reply “execute” to run.

  • Nothing is written until you confirm the plan with dry_run=true
  • skip_labeled=true is the default, preventing silent overwrite of existing Labels
  • Search terms that match no pattern are left unlabeled (no forced classification)
  • Each proposal has a 1-hour validity
  • If bulk overwrite introduces unintended classifications, narrow the target and reassign to the original label ID via Prompt 3
PhaseStateConditions
Phase 1 (now)One-shotAvailable with Picaro connection only
Phase 2 (Q3 2026)Daily-runnableTaxonomy registered + saved as a “Saved prompt”
Phase 3 (Q4 2026)Auto-execution (approval flow)Weekly auto + Slack 1-click approval
Phase 4 (2027)Semi-automatedApproval only on new pattern detection; existing patterns auto-applied

Prompt 3: Manually label Search terms (label ID direct assignment)

Section titled “Prompt 3: Manually label Search terms (label ID direct assignment)”

Without going through Taxonomy auto-matching, directly assign Search terms or ASINs to a specified label ID.

  • You want to manually add ASINs to a competitor Label generated by Prompt 1
  • You want to register, into a specific Label directly, Search terms that didn’t hit any Taxonomy pattern
  • You want to fix terms that bulk-labeling misclassified by reassigning them to the intended Label
For label_id {{LABEL_ID}},
directly assign the following Search terms / ASINs:
{{TARGETS}}
Verify with dry_run=true →
if it looks good, run for real with dry_run=false.

Placeholders:

PlaceholderDescriptionDefault source
{{LABEL_ID}}The destination label ID (from the Taxonomy)User input (retrievable via show in Prompt 5)
{{TARGETS}}List of Search terms or ASINs (e.g., ["term1", "term2", "B0XXXXXXXX"])User input
  1. Validate input — confirm that the label ID exists in the Taxonomy
    • Why validate: assignment to a non-existent ID will fail, so we catch it during dry_run
  2. Interpret targets — split list entries into “ASIN format (B0XXXXXXXX)” and “Search terms”
    • Why auto-split: lets you mix Search terms and ASINs in one list, reducing input effort
  3. Detect existing Labels — if a target already has a Label, flag it explicitly as an overwrite
    • Why flag it: because of 1 target = 1 Label, the user can confirm before an overwrite happens
  4. Return an approval table — present 4 columns: target, type (Search term / ASIN), existing Label, post-assignment Label

Manual assignment candidates: 6

TargetTypeExisting LabelPost-assignment Label
competitor brand X shampooSearch term— (none)competitor / high-price
B0AAAAAAAAASIN— (none)competitor / high-price
B0BBBBBBBBASINcompetitor / mid-pricecompetitor / high-price ← overwrite
… (3 more) …

1 overwrite will occur. Please confirm this is intended. Reply “execute” to run.

  • Nothing is written until you confirm the plan with dry_run=true
  • Targets with existing Labels are flagged with an overwrite indicator so you don’t unintentionally wipe out another Label
  • A non-existent label ID stops with an error (typo protection)
  • Each proposal has a 1-hour validity
  • If you overwrite by mistake, reassign to the original label ID to restore
PhaseStateConditions
Phase 1 (now)One-shotAvailable with Picaro connection only
Phase 2 (Q3 2026)Remains one-shotItem-level scope; not an automation target
Phase 3 (Q4 2026)Remains one-shotSame as above
Phase 4 (2027)Remains one-shotKept positioned as a manual correction tool

Prompt 4: Assign Labels to campaigns / DSP / products

Section titled “Prompt 4: Assign Labels to campaigns / DSP / products”

Assign Labels not only to Search terms and ASINs but also to Sponsored Products (SP) campaigns, DSP line items, and product ASINs — so they can be used as slicing axes in dashboards and N-gram.

  • You want to group Sponsored Products (SP) campaigns by “offensive / defensive / competitor” Labels for analysis
  • You want to classify DSP line items with Labels
  • You want to attach product Labels to product ASINs to add product-level aggregation axes
To label_id {{LABEL_ID}}, assign the following:
- SP campaigns: campaign_ids = {{CAMPAIGN_IDS}}
- DSP line items: line_item_ids = {{LINE_ITEM_IDS}}
- Product ASINs: product_ids = {{PRODUCT_IDS}}
Verify with dry_run=true →
if it looks good, run for real with dry_run=false.

Placeholders:

PlaceholderDescriptionDefault source
{{LABEL_ID}}The destination label IDUser input (retrievable via show in Prompt 5)
{{CAMPAIGN_IDS}}List of SP campaign IDs (omit if not needed)User input
{{LINE_ITEM_IDS}}List of DSP line item IDs (omit if not needed)User input
{{PRODUCT_IDS}}List of product ASINs (omit if not needed)User input
  1. Inspect applyTo — verify which targets (campaign / DSP / product) the Label can be applied to
    • Why inspect: each Label has eligible apply targets; this prevents assignment to unintended targets
  2. Conflict detection (where possible) — for SP campaigns and DSP line items, detect collisions with existing Labels upfront
  3. Flag overwrite risk on product ASINs — for Product assignments, no conflict-detection API exists, so the approval table emphasizes the possibility of an overwrite
    • Why emphasize: in the Product category — where 1 target = 1 Label combines with the absence of a detection API — overwrites can occur silently
  4. Return an approval table — present 4 columns: target, type (SP / DSP / Product), existing Label status, post-assignment Label

Per-target Label assignment candidates: 12 (SP 6 / DSP 3 / Product 3)

Target IDTypeExisting Label statusPost-assignment Label
cmp_XXXXXXSP campaignnoneoffensive KW / use
cmp_YYYYYYSP campaigncompetitor ← overwriteoffensive KW / use
li_ZZZZZZDSP line itemnoneoffensive KW / use
B0AAAAAAAAProduct ASINundetectable (caution)offensive KW / use
… (8 more) …

For 3 Products, conflict detection is unavailable, so existing Labels may be silently overwritten. Reply “execute” to run.

  • Nothing is written until you confirm the plan with dry_run=true
  • SP / DSP have pre-execution conflict detection; for Product there is no conflict-detection API, so the caution flag is always shown
  • Each proposal has a 1-hour validity
  • If an unintended overwrite occurs, restore via Prompt 3 (manual assignment) by reassigning the original label ID
PhaseStateConditions
Phase 1 (now)One-shotAvailable with Picaro connection only
Phase 2 (Q3 2026)One-shotLow structural change frequency; low automation priority
Phase 3 (Q4 2026)Remains one-shotNotify only when naming-convention violations are detected
Phase 4 (2027)Semi-automatedAuto recommendations tied to naming conventions + approval

Prompt 5: Manage the Taxonomy (classification system)

Section titled “Prompt 5: Manage the Taxonomy (classification system)”

Centralize Taxonomy management — current state, additions, updates, overseas marketplace setup, and reset — for Category hierarchy → Labels, all in a single prompt.

  • You want to see what Taxonomy is currently registered
  • You want to add new Label hierarchies like offensive KW / defensive KW / brand / use / competitor
  • You want to configure product-info retrieval for overseas marketplaces (US / EU / UK)
  • You want to wipe the Taxonomy and start over from the built-in demo values
Taxonomy operation: {{ACTION}}
- show: display current state
- clone_default: copy from demo values
- upsert_category: add or update a Category hierarchy
- upsert_label: add or update a Label
(includes match pattern, rule type, Picaro-side label ID)
- update_asin_enrichment: overseas marketplace setup
(amazon_domain / currency / language)
- create_picaro_label: create a new Label on Picaro side
- reset: delete everything (destructive, requires confirmation)

Placeholders:

PlaceholderDescriptionDefault source
{{ACTION}}The operation to run (one of show / clone_default / upsert_category / upsert_label / update_asin_enrichment / create_picaro_label / reset)User input
  1. Fetch current state with show — display the full Taxonomy: Category hierarchy, Label list, match patterns, overseas marketplace settings
    • Why start with show: upserting without understanding existing design tends to cause conflicts
  2. Initialize (if needed) — copy Picaro’s built-in demo Taxonomy via clone_default
  3. Add / update — add or update Category hierarchies via upsert_category and Labels via upsert_label
    • Why upsert: “update if exists, otherwise add” completes in a single operation
  4. Overseas marketplace setup — register amazon_domain (e.g., amazon.com), currency, and language via update_asin_enrichment
    • Why this is needed: for overseas-marketplace ASINs, the default amazon.co.jp won’t return meta info, which degrades labeling accuracy in Prompt 1
  5. Warning on destructive opsreset wipes everything, so it inserts a confirmation step before execution
    • Why confirm: the Taxonomy is a design asset; rebuilding an equivalent after deletion takes time

Typical flow:

  1. Confirm current state with show
  2. On first setup, copy built-in demo values with clone_default
  3. Customize to offensive / defensive / brand / use / competitor etc. via upsert_category / upsert_label
  4. If you handle overseas marketplaces, register via update_asin_enrichment

Current Taxonomy (show)

MajorMidMinor (Label)Match patternPicaro-side label ID
Solution-baseduseCampcamp, outdoorlbl_XXXXXX
Solution-basedusePro-usepro-use, salonlbl_YYYYYY
Brandedbrandピカロ, picarolbl_ZZZZZZ
Competitivecompetitor ASINASIN formatlbl_AAAAAA

Overseas marketplace setup: amazon.co.jp / JPY / ja_JP (unchanged)

Specify the next operation you want to add or update.

  • reset always inserts a confirmation step; nothing is deleted until you explicitly reply “execute”
  • Changing match patterns via upsert_label does not immediately relabel existing Search terms (relabel separately via Prompt 2)
  • Overseas marketplace settings keep using the default (amazon.co.jp) until you run update_asin_enrichment
  • Past Taxonomy settings are retained as version history; you can roll back to the built-in demo with clone_default even after reset
PhaseStateConditions
Phase 1 (now)One-shotAvailable with Picaro connection only
Phase 2 (Q3 2026)Remains one-shotLow design frequency; not an automation target
Phase 3 (Q4 2026)Remains one-shotSame as above
Phase 4 (2027)Semi-automatedAuto-suggest new Label candidates from history + approval

Q: If I update the Taxonomy, do existing Search-term Labels rewrite automatically? A: No, they don’t auto-rewrite. To apply a match-pattern change, re-run Prompt 2.

Q: What’s the relationship between label ID (lbl_XXXXXX), “Category hierarchy,” and “Label name”? A: The “Taxonomy” is the entire hierarchical structure, a “Label” is an individual classification value at a leaf node, and a “label ID” is an internal ID uniquely identifying that leaf node. The ID is used to assign Labels to targets in Prompts 3 / 4.


Prompt 6: Register / infer campaign naming conventions

Section titled “Prompt 6: Register / infer campaign naming conventions”

Register naming templates for campaigns and ad groups to enforce consistent naming at creation time. You can also infer naming patterns from existing names.

  • You want consistent naming when creating new campaigns
  • You want to extract the team’s implicit naming rules from already-created campaign names and templatize them
  • You want to update an existing naming template
Manage campaign / ad group naming conventions:
- Infer: from {{SAMPLE_SIZE}} existing campaign names, return a draft naming pattern
- Register: register the naming template {{TEMPLATE}}
(e.g., {brand}_{product_line}_{match_type})
- Update: update the existing rule

Placeholders:

PlaceholderDescriptionDefault source
{{SAMPLE_SIZE}}Number of existing campaigns to sample for inference (e.g., 50)Default 50
{{TEMPLATE}}Naming template to register (e.g., {brand}_{product_line}_{match_type})User input
  1. Sample existing names — extract common prefixes, separators, and token structure from SAMPLE_SIZE campaign names
    • Why sample: processing all entries is noisy; 30–100 names is enough to capture the representative naming style
  2. Generalize tokens — generalize concrete examples like SP_picaro_shampoo_Exact to a form like {ad_type}_{brand}_{product_line}_{match_type}
  3. Register / update the template — save either the inferred result or the user-specified template on the Picaro side
  4. Reconcile with existing names — optionally list existing campaigns that don’t conform to the registered template as “naming violations”

Registered naming conventions are automatically applied at creation time in Create a campaign. When none is registered, the built-in default (picaro-default-v1) is used.

Inferred naming pattern (sample 50)

InferenceMatch rateExample
{ad_type}_{brand}_{product_line}_{match_type}78%SP_picaro_shampoo_Exact
{ad_type}_{product_line}_{target_type}14%SP_shampoo_Auto
Other8%(4 naming-violation candidates)

To register the top pattern as the naming template, reply “register option 1.”

  • Template registration takes effect only after you reply “register” explicitly
  • Existing campaign names are not modified (only listed as naming violations; renaming is a separate task)
  • Registered naming conventions are kept as history and can be rolled back to a previous version
  • Setting SAMPLE_SIZE extremely small risks overfitting and producing an incorrect template; the default 50 is recommended
PhaseStateConditions
Phase 1 (now)One-shotAvailable with Picaro connection only
Phase 2 (Q3 2026)Remains one-shotLow design frequency; not an automation target
Phase 3 (Q4 2026)Naming-violation detection + notificationSlack-notify template violations on new campaign creation
Phase 4 (2027)Auto-namingAuto-name from the template + approval only on violations


Prompt 7: Design and classify labels by search intent

Section titled “Prompt 7: Design and classify labels by search intent”

Extract 4 search intent types (Branded / Discovery / Solution-based / Competitive) from existing Search-term data and design a 3-tier Taxonomy (major → mid → minor) for registration.

  • You want to design a Taxonomy on the 4 intent axes: Branded / Discovery / Solution-based / Competitive
  • You want to extract representative terms per intent type from existing Search-term data and get a 3-tier Taxonomy draft
  • You want to organize bid-strategy rationale around per-intent RoAS / CVR
Propose a Taxonomy design that classifies Search terms by 4 purchase-intent types
(Branded / Discovery / Solution-based / Competitive):
1. Extract 10 representative examples per intent type from current Search-term data
and show the reasoning for each classification
2. Design a 3-tier Taxonomy: major (intent type) / mid (topic) / minor (specific term)
3. Present match patterns for each tier
After reviewing, reply "register" to add to the Taxonomy.
  1. Extract representative terms by intent type — mapping between the 4 intent types and existing Taxonomy axes:
    • Branded: terms containing the brand or product name → defensive KW / brand
    • Discovery: category names and generic terms → offensive KW / generic
    • Solution-based: terms containing use-cases or problems → offensive KW / use
    • Competitive: competitor brand names and competitor ASINs → competitor
    • Why intent classification: bids can be justified by “degree of purchase intent,” and intent signals strengthen AI optimization engines
  2. Generate 3-tier Taxonomy draft — place intent types at the major tier, topic groups at the mid tier, and specific terms at the minor tier (e.g., major “Solution-based” > mid “use-case / scene” > minor “camp”)
    • Why 3 tiers: Amazon Portfolios provide only 1-layer campaign grouping. 3 tiers enable aggregation at the granularity of “RoAS for camp-use within Solution-based only”
  3. Present match patterns — list keyword patterns tied to each minor Label
  4. Guide to registration — show registration steps using Prompt 5’s upsert_category / upsert_label
  5. Guide to bulk application — remind that Prompt 2 must be run separately after registration to apply Labels to existing Search terms

Search-intent Taxonomy proposal

Major (intent type)Mid (topic)Minor (specific term)Representative examples
Brandedbrandpicaro, picaro shampoo
Discoverycategoryhair careamino acid shampoo, silicone-free
Solution-baseduse-case / scenecampcamping wash, outdoor
Solution-baseduse-case / scenepro-usepro-use shampoo
Competitivecompetitor brandCompetitor X shampoo, B0XXXXXXXX

In the AI era, bid and creative strategies tailored to why a shopper searched are especially important. Reply “register” to add this Taxonomy.

  • Nothing is written to Picaro until you explicitly reply “register”
  • Registering the Taxonomy does not immediately relabel existing Search terms — run Prompt 2 separately for bulk application
  • If intent-type names conflict with existing Taxonomy categories, confirm with show before running upsert_category
PhaseStateConditions
Phase 1 (now)One-shotAvailable with Picaro connection only
Phase 2 (Q3 2026)Remains one-shotLow design frequency; not an automation target
Phase 3 (Q4 2026)Intent-drift detection + notificationSlack-notify when new Search terms fall outside existing intent patterns
Phase 4 (2027)Semi-automatedAuto-infer intent for new terms + approval flow

What you want to doPrompt
Auto-classify competitor ASINs on 4 axesPrompt 1
Bulk-label Search terms with the TaxonomyPrompt 2
Manually assign / correct to a specific LabelPrompt 3
Label SP campaigns / DSP / productsPrompt 4
Design / update the Taxonomy, overseas marketplace setupPrompt 5
Register / infer campaign naming conventionsPrompt 6
Design Labels by search intent (Branded / Discovery / Solution-based / Competitive)Prompt 7