CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

kuudoai/kuudo-skills

22 Agent Skills for Amazon sellers and advertisers: Sponsored Products and Brands audits, search-term mining, budget pacing, DSP and Amazon Marketing Cloud, reporting, listing optimization and compliance, product images, repricing, FBA inbound, stockout, refunds, buyer messaging, and profitability. Built for Kuudo's hosted Amazon Ads and Selling Partner MCP servers; price, budget, listing, and shipment writes are previewed and wait for explicit approval.

68

1.65x
Quality

93%

Does it follow best practices?

Impact

66%

1.65x

Average score across 22 eval scenarios

SecuritybySnyk

Medium

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

campaign_placement.mdskills/amazon-ads-reporting/references/reports/sb/

Sponsored Brands Campaign Placement mapping

Equivalent to v3 Sponsored_Brands_Campaign_placement_report — 42 v3 columns mapped to v1 fields

Summary

This template replicates the v3 Sponsored Brands Campaign Placement report on the Amazon Ads API v1 cross-product reporting endpoint (CreateReport). 39 of 42 v3 columns map cleanly to v1 fields; 3 are derived client-side (ACOS, click-only ACOS, % of units new-to-brand).

The 42-field payload was validated against the packaged v1 catalog: zero unknown fields, zero missing required, zero incompatible pairs.

Single-report architecture — Top-of-search Impression Share isn't on the v3 report, so no supplemental query is needed. Filter or pivot on placementClassification.value = TOP_OF_SEARCH downstream if you need the top-of-search slice.

Field list (grouped by role)

Time dimension (exactly one required)

  • date.value

Level-of-detail dimensions

  • portfolio.portfolioId
  • portfolio.name
  • campaign.id
  • campaign.name
  • campaign.currencyCode
  • campaign.costType
  • placementClassification.value

Required supporting field

  • budgetCurrency.value

Delivery metrics

  • metric.impressions
  • metric.viewableImpressions
  • metric.clicks
  • metric.ctr
  • metric.vctr
  • metric.cpc
  • metric.vcpm
  • metric.totalCost

Video metrics

  • metric.firstQuartileVideoAd
  • metric.midpointVideoAd
  • metric.thirdQuartileVideoAd
  • metric.completeViewsVideoAd
  • metric.unmutesVideoAd
  • metric.5secondViewsVideoAd
  • metric.5secondViewRateVideoAd
  • metric.completionRateVideoAd

All-attribution conversion (14-day)

  • metric.sales
  • metric.purchases
  • metric.unitsSold
  • metric.purchaseRateOverClicks
  • metric.purchaseRate
  • metric.roas

Brand engagement

  • metric.brandedSearches
  • metric.detailPageViews

New-to-brand

  • metric.newToBrandPurchases
  • metric.newToBrandSales
  • metric.newToBrandUnitsSold
  • metric.percentOfPurchasesNewToBrand
  • metric.percentOfSalesNewToBrand
  • metric.newToBrandPurchaseRate

Click-only attribution variants

  • metric.salesFromClicks
  • metric.purchasesFromClicks
  • metric.unitsSoldFromClicks
  • metric.roasFromClicks

Filter (limits the report to SB)

  • adProduct.value = SPONSORED_BRANDS

v3 → v1 field mapping

v3 Column (Sponsored_Brands_Campaign_placement)v1 field_idRoleNotes
Datedate.valueTime dimensionRequired time dimension.
Portfolio nameportfolio.nameDimensionPair with portfolio.portfolioId.
—portfolio.portfolioIdDimensionStable join key.
Currencycampaign.currencyCodeDimensionPair with budgetCurrency.value.
Campaign Namecampaign.nameDimensionPair with campaign.id.
—campaign.idDimensionStable join key.
Cost typecampaign.costTypeDimensionCPC / CPM / vCPM. Native dimension in v1.
PlacementplacementClassification.valueDimensionDirect equivalent — classifies placements as TOP_OF_SEARCH, DETAIL_PAGE, OTHER, etc. Tagged as Primary Key in v1. Note: placement.name (specific placement) and placement.size (pixel dimensions) also exist; placementClassification.value is the right one for the v3 'Placement' column semantics.
—budgetCurrency.valueRequired supportv1 minimal-baseline supporting field.
Impressionsmetric.impressionsMetricDirect.
Viewable Impressionsmetric.viewableImpressionsMetricDirect.
Clicksmetric.clicksMetricDirect.
Click-Thru Rate (CTR)metric.ctrMetricDirect.
Spendmetric.totalCostMetricv1 renames 'spend' to totalCost.
Cost Per Click (CPC)metric.cpcMetricDirect.
Cost per 1,000 viewable impressions (VCPM)metric.vcpmMetricDirect.
Total ACOS(derive client-side)DerivedtotalCost / NULLIF(sales, 0) or 1 / roas.
Total ROASmetric.roasMetricDirect.
14 Day Total Salesmetric.salesMetric14-day window is set on the report request.
14 Day Total Orders (#)metric.purchasesMetricEquivalent — orders → purchases.
14 Day Total Units (#)metric.unitsSoldMetricDirect.
14 Day Conversion Ratemetric.purchaseRateOverClicks (or metric.purchaseRate)MetricBoth included so the warehouse can pick by definition.
View-Through Rate (VTR)metric.completionRateVideoAd (closest)Metric — definition-dependentv1 has no metric.vtr or metric.viewThroughRate. Two candidates: metric.completionRateVideoAd (full play) or metric.5secondViewRateVideoAd (5-second view rate). Pick whichever matches your downstream definition; both are in the request for safety.
Click-Through Rate for Views (vCTR)metric.vctrMetricv1 calls this 'Viewable CTR' — clicks / viewable impressions.
Video First Quartile Viewsmetric.firstQuartileVideoAdMetricDirect — 25% played.
Video Midpoint Viewsmetric.midpointVideoAdMetricDirect — 50% played.
Video Third Quartile Viewsmetric.thirdQuartileVideoAdMetricDirect — 75% played.
Video Complete Viewsmetric.completeViewsVideoAdMetricDirect.
Video Unmutesmetric.unmutesVideoAdMetricDirect.
5 Second Viewsmetric.5secondViewsVideoAdMetricDirect.
5 Second View Ratemetric.5secondViewRateVideoAdMetricDirect.
14 Day Branded Searchesmetric.brandedSearchesMetricDirect.
14 Day Detail Page Views (DPV)metric.detailPageViewsMetricDirect.
14 Day New-to-brand Orders (#)metric.newToBrandPurchasesMetricDirect.
14 Day % of Orders New-to-brandmetric.percentOfPurchasesNewToBrandMetricDirect.
14 Day New-to-brand Salesmetric.newToBrandSalesMetricDirect.
14 Day % of Sales New-to-brandmetric.percentOfSalesNewToBrandMetricDirect.
14 Day New-to-brand Units (#)metric.newToBrandUnitsSoldMetricDirect.
14 Day % of Units New-to-brand(derive client-side)Derivedv1 has no metric.percentOfUnitsNewToBrand. Compute as newToBrandUnitsSold / NULLIF(unitsSold, 0).
14 Day New-to-brand Order Ratemetric.newToBrandPurchaseRateMetricDirect.
Total ACOS - (Click)(derive client-side)DerivedtotalCost / NULLIF(salesFromClicks, 0).
Total ROAS - (Click)metric.roasFromClicksMetricDirect.
14 Day Total Sales - (Click)metric.salesFromClicksMetricDirect.
14 Day Total Orders (#) - (Click)metric.purchasesFromClicksMetricDirect.
14 Day Total Units (#) - (Click)metric.unitsSoldFromClicksMetricDirect.

Yellow rows highlight columns derived client-side or with multiple valid mappings.

Critical differences from the v3 report

ChangeWhat it means for the request
This is the SB Keyword report's metric set at coarser dimensional grainThe metric layout is identical to the regular SB Keyword report. The dimensional grain swaps target.value/target.matchType/adGroup.* (keyword grain) for placementClassification.value (placement grain). Same 14-day window, same NTB suite, same click-only variants, same video metrics.
No supplemental TOS impression share report neededLike the SB Keyword Placement report, top-of-search performance is recovered by filtering or pivoting placementClassification.value = TOP_OF_SEARCH downstream. Single-report architecture.
Filter on adProduct.value = SPONSORED_BRANDSThe v1 endpoint is shared across all ad products.
No metric.acos field — applies to BOTH all-attr and click-onlyCompute totalCost / NULLIF(sales, 0) and totalCost / NULLIF(salesFromClicks, 0).
No 'View-Through Rate' fieldPick metric.completionRateVideoAd or metric.5secondViewRateVideoAd based on your VTR definition. The template includes both for safety.
No metric.percentOfUnitsNewToBrand fieldDerive: newToBrandUnitsSold / NULLIF(unitsSold, 0).
No 'conversion rate' field — choose by definitionmetric.purchaseRateOverClicks for orders/clicks (typical SB UI default); metric.purchaseRate for purchases/impressions. Both included.
Click-only attribution is the *FromClicks familyv3's '- (Click)' suffix maps to v1's *FromClicks variants.
Attribution windows leave the field namev3's '14 Day' prefix is gone; window is set on the report request.
'Spend' → metric.totalCostRenamed across all ad products in v1.
Cost type is a native dimensioncampaign.costType returns CPC / CPM / vCPM.

Operational notes

  • VTR definition: confirm with consumers whether VTR means completion (full play) or 5-second view. The template carries both metric.completionRateVideoAd AND metric.5secondViewRateVideoAd. Drop whichever isn't needed.

  • Conversion rate definition: SB UIs typically use orders/clicks → metric.purchaseRateOverClicks. Drop metric.purchaseRate if you don't need it.

  • Derivations to materialize in the warehouse: acos = totalCost / NULLIF(sales, 0); acosClickOnly = totalCost / NULLIF(salesFromClicks, 0); percentOfUnitsNewToBrand = newToBrandUnitsSold / NULLIF(unitsSold, 0). Persist the raw inputs alongside the views.

  • Reusing this template: the field set is functionally a superset of the SB Keyword Placement report. Drop video / NTB / brand-engagement / click-only blocks if you only need basic placement performance.

skills

LICENSE.md

README.md

tile.json