Skip to main content
Commerce media — advertising within retail and marketplace environments — lets brands reach shoppers at the point of purchase. AdCP’s retail_media channel handles the full spectrum: sponsored product listings, on-site display, off-site audience extension, premium placements, and in-store digital. What makes commerce media unique is closed-loop attribution. Retailers know what people buy. When ads run on retailer platforms, every impression can be tied to actual purchases — online and in-store. AdCP models this through outcome_measurement, conversion_tracking, and by_action_source in delivery reporting.

Concept Mapping

Each retailer is a separate sales agent. Their media offerings are modeled as products. The buyer’s brand identity carries the product catalog for SKU-level creative rendering. Account relationships between brands and retailers are managed via list_accounts and account on media buys — see Accounts & Agents.

The Product Spectrum

Major retailers like Walmart Connect, Kroger Precision Marketing, Target Roundel, and Carrefour Links offer diverse product types — not just sponsored listings. All share the retail_media channel, but differ in format, pricing, and creative requirements. The simplest commerce media product. The retailer renders the creative from the buyer’s product catalog — no custom creative upload needed. Pricing is typically CPC.
The catalog_types field declares what catalog types this product supports. The catalog_match field tells the buyer which of their catalog items are eligible on this retailer. Buyers use these values as catalog selectors (gtins, ids) when creating media buys — the same way publisher_properties lists available properties for refinement. Sellers can include matched_gtins, matched_ids, or both. Key characteristics:
  • CPC pricing with auction-based bidding
  • platform_managed: true — the retailer provides always-on purchase attribution
  • supported_targets — tells buyers which target kinds are available when setting optimization_goals on packages
  • templates_available: true — the retailer renders creatives from catalog data
  • action_sources includes in_store for omnichannel attribution

On-Site Display and Video

Display and video ads on retailer properties, targeted using retailer first-party shopper data. Buyers provide standard creatives. Higher minimums and CPMs reflect the value of retailer audience data and guaranteed placement.
Note the creative policy: retailers commonly require co-branding and restrict landing pages to the retailer’s own site.

Off-Site Audience Extension

The retailer uses first-party purchase data to target audiences on third-party inventory — extending reach beyond the retailer’s own site. The product still belongs to the retail_media channel because the buying context is the retailer’s data asset.

Premium Placements

Homepage takeovers, category sponsorships, seasonal event placements. These high-visibility positions are sold at fixed rates with guaranteed delivery — often booked well in advance.
Premium placements use the placements array so buyers can assign different creatives to different positions within the same product.

In-Store Digital

Digital screens in physical retail locations — checkout lanes, end-caps, and entrance displays. These bridge the digital-physical gap, with measurement tied to in-store purchases. When paired with a synced store catalog, in-store digital products can target specific locations and show inventory-aware creative.

End-to-End Workflow

Closed-Loop Attribution

Commerce media’s defining advantage is deterministic purchase attribution. Retailers match ad exposure to transactions using loyalty card data, login state, and point-of-sale records.

How Products Declare It

Products signal closed-loop capability through two fields: outcome_measurement describes the attribution methodology:
conversion_tracking declares action sources and whether the retailer manages measurement:
When platform_managed is true, the retailer provides always-on measurement. No buyer-side pixel or event source configuration needed.
Different retailers use different attribution windows (e.g., 14-day click vs. 7-day click). The attribution_window in delivery responses makes this transparent so buyers can normalize ROAS comparisons across retailers.

Key Delivery Metrics

Differences from Traditional Media Buying

Best Practices

For Brands

  1. Set up accounts early — use list_accounts to confirm your billing relationship with each retailer before placing buys
  2. Sync product and inventory feeds early — product and inventory catalogs should be synced to the account before creating buys. Inventory feeds update hourly; product feeds daily.
  3. Reference retailer store catalogs in targeting — the retailer’s store locations and catchment areas are platform-side data. Use them for proximity targeting without needing to sync your own store catalog.
  4. Use optimization_goals — set event goals with cost_per or per_ad_spend targets on packages to let the retailer optimize delivery against their purchase data
  5. Use catalog selectors strategicallygtins for specific products, tags or category for broad promotions
  6. Budget across the funnel — sponsored products for conversion, on-site display for awareness, off-site for reach extension
  7. Compare attribution windows — use attribution_window in delivery reports to normalize ROAS across retailers with different lookback windows

For Retailers

  1. Model product types separately — sponsored products, on-site display, off-site, and premium placements should be distinct products with appropriate pricing and formats
  2. Declare catalog asset types on formats that need product or inventory data — buying agents check these before syncing catalogs
  3. Declare conversion_tracking with platform_managed: true and list supported_targets so buyers know which target kinds are available on packages
  4. Include attribution_window in delivery responses — buyers comparing across retailers need to know your lookback windows and model
  5. Report by_action_source to show omnichannel impact — website, app, and in-store conversions
  6. Return catalog_match on sponsored product listings so buyers can see which GTINs/SKUs are eligible
  7. Provide store catalogs with catchment areas — expose your store locations with pre-computed or isochrone-based catchments so buyers can use proximity targeting. Resolve isochrone boundaries ahead of time so targeting doesn’t need runtime lookups
  8. Set channels: ["retail_media"] on all commerce media products so buyers can filter by channel