Amazon US Apparel PPC Decision Auditor avatar

Amazon US Apparel PPC Decision Auditor

Pricing

$1.00 / 1,000 audit findings

Go to Apify Store
Amazon US Apparel PPC Decision Auditor

Amazon US Apparel PPC Decision Auditor

Your ads are spending. What should you change—and what should you leave alone? Turn normalized Amazon US apparel PPC data into a reviewable decision list with reasons, risks, and evidence gaps. No Amazon login or automatic ad changes.

Pricing

$1.00 / 1,000 audit findings

Rating

0.0

(0)

Developer

jw H

jw H

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Security

Limited permissions

Share

CSV or normalized JSON — one reporting period, one reviewable audit.

Your ad report shows what was spent. The next question is what deserves attention, what should be protected, and where the evidence is still too thin to act. Supply Amazon US apparel Sponsored Products rows and your product context to get calculated metrics, review candidates, reasons and evidence gaps.

Choose exactly one input route

Normalized JSON: submit one complete request with the top-level auditInput key. The JSON route also accepts exactly one extra key, discardUnmapped: false, when its value is the JSON boolean false added by a form. No other extra key or value is accepted. auditInput contains audit, report, product, policy and rows. The full synthetic JSON example below shows this structure. In the complete-request JSON editor, include the outer auditInput wrapper once. If using a field editor specifically labeled “Normalized audit JSON,” its value is the inner audit object, not a second wrapper.

CSV text: submit csvText and csvContext, with only the optional csvMapping, csvDelimiter and discardUnmapped controls you need. csvText is pasted UTF-8 text, not a filename, URL or XLSX upload. csvContext contains exactly the four objects audit, report, product and policy; it must not contain rows or auditInput.

Switching routes: remove unused top-level keys completely. JSON mode permits only auditInput, or auditInput plus the boolean discardUnmapped: false; true, null, strings, numeric zero, unknown keys and all other CSV keys (even empty) remain rejected. The accepted false flag has no JSON audit effect and is omitted during normalization. CSV mode must have no auditInput, even if it is null or {}. A blank editor does not prove that its key is absent. Check the complete request JSON before starting. If the interface cannot represent an accepted request, stop rather than inserting sample data. No automatic form-mode switch or drag-and-drop importer is promised.

CSV input rules

  1. Include a header row and 1–1,000 data rows. The minimum columns are unique row_id, plus impressions, clicks, spend, sales and orders. Counts must be non-negative whole numbers; money must use non-negative decimal notation. Do not include currency symbols, thousands separators, percent signs or scientific notation. Preserve IDs, including leading zeros.
  2. Use these exact normalized column names, or provide a non-empty csvMapping object whose keys are normalized fields and values are the exact source headers after trimming surrounding whitespace. For example, {"row_id":"Row ID","impressions":"Impressions","clicks":"Clicks","spend":"Spend","sales":"Sales","orders":"Orders"} is a mapping syntax example, not a universal Amazon export layout. Case and embedded whitespace matter; duplicate headers and mapping one source column to multiple metrics are rejected.
  3. Omit csvDelimiter for comma, or use exactly comma, tab or semicolon. Delimiters and attribution columns are not detected automatically. A quoted CSV field must enclose the whole value; escape a quote inside it as "". Bare quotes and malformed closing quotes are rejected.
  4. Unknown columns stop preparation by default. Map relevant columns, remove them yourself, or deliberately set the JSON boolean discardUnmapped to true. Credential-like columns are still rejected. This is not complete personal-data or secret detection; inspect the rows and context yourself.
  5. Supply the seller context below. Use one reporting period, currency, attribution definition and relevant product/economic context. Do not combine materially different product economics.
Context objectRequired structural fieldsAdditional evidence for useful decisions
auditaudit_id, ISO as_of_date, marketplace: "US", currencyA source note and authorized, consistent source data
reportreport_type, ISO start_date, end_date; start ≤ end ≤ as-of dateYour conversion-lag period; do not confuse report retrieval limits with conversion maturity
productvertical: "apparel"Price, non-ad variable cost, Listing/Featured Offer, stock and size/color variation context where applicable; relevance is supplied separately in each row
policyA policy objectYour click/order thresholds, target ACOS and bid/budget review limits; an empty object may validate but does not supply those thresholds

For the full shape of the four context objects, use the same sections shown inside the synthetic auditInput example below, but place them inside csvContext and omit rows. Replace synthetic values with your own authorized evidence; do not copy the example economics or thresholds to force a recommendation. Rates use decimals (0.25 = 25%); bid adjustments use percentage points (25 = +25%). Missing information remains missing. With positive supplied contribution and no target ACOS, the engine may use a disclosed break-even ceiling, not invent a profit target.

Passing input validation is not the same as having enough evidence to act. Minimal input can produce WAIT_DATA, incomplete economic calculations or a bounded descriptive finding. Contradictory totals can produce DATA_CONFLICT; qualifying expansion without sufficient retail context can be blocked by FIX_LISTING_FIRST.

Turn a normalized Sponsored Products snapshot into calculations, review candidates, and a traceable report. This rule-based Actor reviews Amazon US apparel data for one reporting period. It helps an operator decide what needs attention, what should be protected, and where more evidence is needed.

This is an independent analysis tool, not an Amazon service. It does not log in to Amazon, fetch reports, call a language model, or change advertising settings. It does not guarantee lower ACOS, increased sales, or profit.

What you receive

  • Calculated advertising metrics and economic reference values based on your supplied data.
  • Review candidates with reasons, risk flags, missing evidence, and human-approval requirements.
  • A full JSON audit, a Markdown report, an ordered findings dataset, and a completion/checksum record.

The same input and engine version produce the same rule-based outputs. Relevance, inventory, listing status, costs, and performance thresholds must come from you; the Actor does not independently verify them.

Try the synthetic example

  1. In Input, select JSON and paste the complete example below, including the outer auditInput field.
  2. Review the current price and your Apify usage/budget settings before starting a run.
  3. Run the Actor. This example contains constructed data only, not a seller case study.
  4. Accept the result only when the platform run is Succeeded and RUN_INFO.status is completed.
  5. Inspect the report and compare the input fingerprint before relying on any recommendation.

The example percentages are a synthetic example policy, not recommended thresholds for your account or universal Amazon benchmarks.

{
"auditInput": {
"audit": {
"audit_id": "fixture-normal",
"as_of_date": "2026-09-03",
"marketplace": "US",
"currency": "USD",
"source_note": "constructed fixture; no seller data"
},
"report": {
"report_type": "sponsored_products_search_term",
"start_date": "2026-08-01",
"end_date": "2026-08-20",
"conversion_lag_days": 7
},
"product": {
"vertical": "apparel",
"asin": "B0FIXTURE01",
"parent_asin": "B0PARENT01",
"category": "clothing_shoes_and_jewelry",
"apparel_segment": "tops",
"lifecycle": "evergreen",
"launch_stage": "growth",
"goal": "profit",
"price_per_order": 40,
"non_ad_variable_cost_per_order": 26,
"listing_status": "ready",
"featured_offer_status": "active",
"inventory_status": "in_stock",
"variation_health": "healthy",
"variation_theme": "size_color",
"cross_asin_orders_reviewed": true,
"variation_inventory": [
{
"child_asin": "B0FIXTURE01",
"size": "M",
"color": "black",
"inventory_status": "in_stock",
"listing_status": "ready",
"featured_offer_status": "active"
},
{
"child_asin": "B0FIXTURE02",
"size": "L",
"color": "black",
"inventory_status": "in_stock",
"listing_status": "ready",
"featured_offer_status": "active"
}
]
},
"policy": {
"target_acos": 0.25,
"min_clicks_for_action": 10,
"min_orders_for_winner": 2,
"min_orders_for_expand": 2,
"max_clicks_without_order": 15,
"seasonal_replan_days": 14,
"high_bid_multiplier_warning": 4,
"allow_strategic_over_break_even": false,
"max_bid_change_pct": 20,
"max_budget_change_pct": 25
},
"rows": [
{
"row_id": "exact-winner",
"campaign_id": "c-1",
"ad_group_id": "g-1",
"targeting_text": "women black travel shirt",
"customer_search_term": "women black travel shirt",
"advertised_asin": "B0FIXTURE01",
"purchased_asin": "B0FIXTURE01",
"match_type": "exact",
"relevance": "relevant",
"impressions": 1000,
"clicks": 50,
"spend": 20,
"sales": 120,
"orders": 3,
"base_bid": 0.65,
"daily_budget": 20,
"placement_adjustment_pct": 20,
"audience_adjustment_pct": 0,
"video_adjustment_pct": 0,
"bidding_strategy": "down_only"
},
{
"row_id": "broad-winner",
"campaign_id": "c-2",
"ad_group_id": "g-2",
"targeting_text": "women travel top",
"customer_search_term": "women black travel shirt",
"advertised_asin": "B0FIXTURE01",
"purchased_asin": "B0FIXTURE02",
"match_type": "broad",
"relevance": "relevant",
"impressions": 800,
"clicks": 40,
"spend": 18,
"sales": 80,
"orders": 2,
"bidding_strategy": "fixed"
},
{
"row_id": "converting-over-limit",
"campaign_id": "c-3",
"ad_group_id": "g-3",
"targeting_text": "women casual top",
"customer_search_term": "women casual black top",
"advertised_asin": "B0FIXTURE01",
"purchased_asin": "B0FIXTURE01",
"match_type": "phrase",
"relevance": "relevant",
"impressions": 600,
"clicks": 30,
"spend": 30,
"sales": 80,
"orders": 2,
"base_bid": 1.1,
"daily_budget": 30,
"placement_adjustment_pct": 50,
"audience_adjustment_pct": 0,
"video_adjustment_pct": 0,
"bidding_strategy": "fixed"
},
{
"row_id": "irrelevant-query",
"campaign_id": "c-4",
"ad_group_id": "g-4",
"targeting_text": "women tops",
"customer_search_term": "free sewing pattern software",
"advertised_asin": "B0FIXTURE01",
"match_type": "broad",
"relevance": "irrelevant",
"impressions": 500,
"clicks": 20,
"spend": 10,
"sales": 0,
"orders": 0,
"bidding_strategy": "down_only"
},
{
"row_id": "low-evidence",
"campaign_id": "c-5",
"ad_group_id": "g-5",
"targeting_text": "women travel shirt",
"customer_search_term": "women travel shirt",
"advertised_asin": "B0FIXTURE01",
"match_type": "exact",
"relevance": "relevant",
"impressions": 200,
"clicks": 5,
"spend": 3,
"sales": 0,
"orders": 0,
"bidding_strategy": "fixed"
}
]
}
}

Expected example findings

The table below illustrates the findings for the normalized-JSON synthetic example above. These are constructed example results, not customer results. Check your own run using its input and completion records.

Example rowReview state
irrelevant-queryNEGATIVE_CANDIDATE
converting-over-limitLOWER_BID_CANDIDATE
broad-winnerEXPAND_EXACT
exact-winnerPROTECT_WINNER
low-evidenceWAIT_DATA

These are synthetic outcomes, not evidence of real advertising performance. Other valid inputs can produce additional states, including DATA_CONFLICT when the supplied totals contradict each other.

Use your own data

Replace the example with authorized, de-identified data. For normalized JSON, auditInput requires audit, report, product, policy and rows. For CSV, use csvText and the same four context objects under csvContext, without rows or auditInput. Keep marketplace US and product vertical apparel.

Use one consistent reporting period, currency, attribution definition, and relevant product context. Do not combine materially different product economics into a single context. Use unique row_id values. Supply non-negative impressions, clicks, spend, sales, and orders.

Rates use decimals: 0.25 means 25%. Bid adjustment percentages use percentage points. Enter your own evidence thresholds and documented product costs; do not copy the synthetic policy into a live decision without review.

Normalized JSON is limited to 2 MiB. CSV text is limited to 2 MiB, csvContext to 64 KiB, and the complete CSV request to 4 MiB; the converted normalized envelope must still fit the 2 MiB downstream limit. The limits also include 1–1,000 rows, 64 CSV columns, 4,096 characters per cell/text field and nesting depth 16. Data is not truncated to make it fit. These are validation limits, not a runtime or performance guarantee.

Where to find the results

OutputPurpose
OUTPUTComplete audit JSON in the run's key-value store
REPORT.mdReadable Markdown audit report
Default datasetOrdered, structured findings
RUN_INFOCompletion status, versions, input/output fingerprints, and finding count

Failed runs can leave partial artifacts. A file being present is not proof that the audit completed. Reuse neither an old result nor a failed run's partial dataset as a completed audit.

A candidate for a bid or budget change is not an instruction to apply it automatically. Check attribution, inventory, economics, and the underlying report before making any change in Amazon.

Supported scope and limits

This CSV-enabled implementation accepts either a normalized JSON envelope or explicitly mapped UTF-8 CSV text with seller-supplied context, for Amazon US apparel Sponsored Products and one reporting period. It does not import arbitrary Amazon reports automatically, upload XLSX files, fetch URLs, access an Amazon account, support other marketplaces/categories, or compare reporting periods. A CSV text request is not the same as an arbitrary raw-report upload.

The engine uses a dated rule snapshot, recorded in RUN_INFO.rule_snapshot. This is not live Amazon policy monitoring. Recheck applicable current rules before consequential action.

Data handling

No model API key or Amazon credentials are needed. Do not submit customer personal data, passwords, tokens, or confidential data you are not authorized to process.

The calculation engine does not fetch URLs or send data to a model provider. When hosted, the Actor uses Apify APIs for run input and output storage; it is not a claim that data stays only on your computer. Retention and access depend on Apify storage and your account settings.

Credential-like field names are rejected, but this is not comprehensive personal-data or secret detection. De-identify the input yourself, and never post sensitive reports or signed storage links in public issues.

Pricing

$0.001 per finding written to the default dataset ($1 per 1,000 results). This is a per-result rate, not a minimum purchase of 1,000 results. Each user's own runs are metered separately. Five findings cost $0.005 in Actor event charges. All finding states, including WAIT_DATA and DATA_CONFLICT, use the same rate.

There is no Actor start fee or monthly rental. Platform usage during the run is included in the event price; storage and downloads after the run can incur Apify's standard charges. Check the live pricing panel and your account settings before starting.

The Actor requires enough remaining event budget for the entire audit. If it cannot afford all findings, it stops with RUN_INFO.status=budget_exceeded, zero dataset findings, and no full report. The platform may show this graceful stop as Succeeded; it is not a completed audit. Increase the budget only if you choose to start a new run.

A later storage failure or interruption can leave partial artifacts. Results already written to the default dataset may be charged even if the final completion marker is missing; this Actor does not automatically refund them. Inspect the run before repeating it. Resurrecting an existing run is blocked to prevent duplicate dataset writes. Starting a new run is a separate, billable request.

Dataset results are charged by Apify automatically, with no second manual charge.

Questions and troubleshooting

Does it use DeepSeek or another AI model?

No. This version uses deterministic calculations and rules.

Will it change my ads?

No. All external changes require a separate human decision and are outside this Actor.

Why do I see WAIT_DATA or DATA_CONFLICT?

A finding may identify missing evidence, an immature report, or inconsistent totals. Review the named evidence; the Actor does not silently repair contradictory source data.

How do I report a problem?

Use this Actor's Issues tab. Include the adapter version, the error message, and a minimal synthetic reproduction. Do not include credentials, personal data, or private advertising reports.

Use is subject to the terms linked from the Actor's Apify Store page. This documentation does not grant permission to redistribute the underlying code.

Optional offline preparation

If you already have an authorized copy of the local package, its CSV preparer can convert explicitly mapped rows and seller context into the complete auditInput JSON envelope and validate it without starting an Apify run. This offline helper and the CSV text route described above are different entry paths. The Actor does not download or run the helper for you, and this page does not promise a public source-code download. Local preparation is not hosted execution or proof of source accuracy; a later hosted run is a separate billable request.