# Ad Performance by Campaign & Date

- BigQuery table name: `amazon_ads_performance_by_campaign_by_date`
- Available in: Amazon Ads
- Data scheme index: https://api.datadoe.com/api/v1/spec/data-scheme.md

Ads performance per campaign and date for Sponsored Products, Sponsored Brands, Sponsored Display, and Sponsored Television. Use this table for total sponsored ads campaign spend and sales. ad_impressions and ad_clicks exclude invalid traffic; gross and invalid columns are the traffic-quality reconciliation. Amazon DSP is not included; use amazon_ads_dsp_performance_by_creative_by_date for Amazon DSP.

- Source type: `AMAZON_ADS`
- Source ID: `08cdc77d3dc24a7651553e2e926f598188c66172f64cd6512265900af6073a6c`
- Requires a date period: yes
- Contains PII: no
- Premium table: no
- User-managed: no
- Default dataset: yes
- Rows count towards billing: yes
- Hub: https://www.datadoe.com/hub/data-scheme?source=AMAZON_ADS&table=08cdc77d3dc24a7651553e2e926f598188c66172f64cd6512265900af6073a6c

## Fetch periods

- `INITIAL` (56 days)
- `RECURRING_DAILY` (21 days)
- `RECURRING_MONTHLY` (49 days)

## Data availability

- `INTRADAY` — Intraday updates are available when source data changes during the day. Refresh: 10am, 1pm, 4pm.

## Related actions

- `AMAZON_ADS_CAMPAIGNS_ADD` — writes: writes rows to this table
- `AMAZON_ADS_CAMPAIGNS_UPDATE` — writes: writes rows to this table
- `AMAZON_ADS_CAMPAIGNS_REMOVE` — writes: writes rows to this table
- `AMAZON_ADS_CAMPAIGNS_FIND` — live: reads a fresher live value

## Search aliases

- ppc
- sponsored ads
- acos
- roas
- cpc
- cpm
- tacos
- ad spend

## Columns (30)

- `marketplace_id` (`TEXT`, required) — Amazon provided ID that represents a specific country where the Seller or Vendor operates.
- `marketplace_country_code` (`TEXT`, required) — ISO country code for the Amazon marketplace.
- `marketplace_country_name` (`TEXT`, required) — Human-readable country name for the marketplace (derived from marketplace_id).
- `seller_or_vendor_id` (`TEXT`, required) — DataDoe account identifier used by MCP/API calls (sellers_and_vendors_list, exports). Not unique in amazon_sellers_and_vendors_context when one account has multiple connection contexts — join that table on connection_context_id instead.
- `seller_or_vendor_name` (`TEXT`, required) — DataDoe connection context display name for the seller or vendor.
- `marketplace_seller_id` (`TEXT`, nullable) — Amazon Seller Central seller ID from the connection (connection_seller_id). Null when the connection has no seller ID.
- `amazon_ads_profile_id` (`TEXT`, nullable) — Amazon Ads profile identifier.
- `date` (`DATE`, required)
- `ad_campaign_type` (`TEXT`, required) — SPONSORED_DISPLAY / SPONSORED_PRODUCTS / SPONSORED_BRANDS / SPONSORED_TELEVISION.
- `ad_clicks` (`NUMBER`, required) — Clicks after Amazon removed invalid traffic. Gross clicks, including invalid traffic, are ad_gross_click_throughs.
- `ad_sales` (`NUMBER`, required) — Attributed ad sales (14d for SPONSORED_BRANDS and SPONSORED_DISPLAY, 7d for SPONSORED_PRODUCTS). — definition: `amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_PRODUCTS' ? raw_ads_api_report_campaign_sp.sales7d : amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_DISPLAY' ? raw_ads_api_report_campaign_sd.sales : amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_TELEVISION' ? raw_ads_api_report_campaign_st.sales : raw_ads_api_report_legacy_campaign_sb_all.attributedSales14d`
- `ad_impressions` (`NUMBER`, required) — Times the ad was displayed after Amazon removed invalid traffic. Gross impressions, including invalid traffic, are ad_gross_impressions.
- `ad_spend` (`NUMBER`, required) — Ad spend.
- `ad_units_sold` (`NUMBER`, required) — Attributed ad units sold (14d for SPONSORED_BRANDS and SPONSORED_DISPLAY, 7d for SPONSORED_PRODUCTS). — definition: `amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_PRODUCTS' ? raw_ads_api_report_campaign_sp.unitsSoldClicks7d : amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_DISPLAY' ? raw_ads_api_report_campaign_sd.unitsSoldClicks : amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_TELEVISION' ? raw_ads_api_report_campaign_st.unitsSold : Math.max((raw_ads_api_report_legacy_campaign_sb_all.attributedConversions14d ?? 0), Math.round(((raw_ads_api_report_legacy_campaign_sb_all.attributedUnitsOrderedNewToBrand14d ?? 0) / (raw_ads_api_report_legacy_campaign_sb_all.attributedUnitsOrderedNewToBrandPercentage14d || 100)) * 100))`
- `ad_orders` (`NUMBER`, required) — Attributed ad orders (14d for SPONSORED_BRANDS and SPONSORED_DISPLAY, 7d for SPONSORED_PRODUCTS). — definition: `amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_PRODUCTS' ? raw_ads_api_report_campaign_sp.purchases7d : amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_DISPLAY' ? raw_ads_api_report_campaign_sd.purchases : amazon_ads_performance_by_campaign_by_date.ad_campaign_type === 'SPONSORED_TELEVISION' ? raw_ads_api_report_campaign_st.purchases : raw_ads_api_report_legacy_campaign_sb_all.attributedConversions14d`
- `ad_campaign_id` (`TEXT`, required) — Campaign identifier.
- `ad_campaign_name` (`TEXT`, required) — Campaign name.
- `ad_campaign_status` (`TEXT`, nullable) — Campaign status.
- `ad_campaign_budget_amount` (`NUMBER`, required) — Campaign budget repeated on every row of the campaign. Do not sum it across ASINs, keywords, placements, or dates. ad_campaign_budget_type is DAILY_BUDGET or LIFETIME_BUDGET.
- `ad_campaign_budget_type` (`TEXT`, nullable) — DAILY_BUDGET / LIFETIME_BUDGET or NULL.
- `ad_campaign_budget_currency` (`TEXT`, required)
- `ad_campaign_rule_based_budget_amount` (`NUMBER`, nullable) — Rule-based campaign budget reported for this date for Sponsored Products, in ad_campaign_budget_currency. Repeated across placements; do not sum across placements or dates. Null when Amazon omits it and for other campaign types. — definition: `campaignRuleBasedBudgetAmount from the Sponsored Products report`
- `ad_campaign_applicable_budget_rule_id` (`TEXT`, nullable) — Identifier of the budget rule Amazon reports as applicable to the Sponsored Products campaign on this date. Null when Amazon omits it and for other campaign types. Does not expose the rule definition or execution history. — definition: `campaignApplicableBudgetRuleId from the Sponsored Products report`
- `ad_campaign_applicable_budget_rule_name` (`TEXT`, nullable) — Name of the budget rule Amazon reports as applicable to the Sponsored Products campaign on this date. Null when Amazon omits it and for other campaign types. Read-only report value; does not support rule edits. — definition: `campaignApplicableBudgetRuleName from the Sponsored Products report`
- `ad_gross_impressions` (`NUMBER`, required) — Times the ad was displayed, including invalid traffic (fraudulent, non-human, and other illegitimate impressions). ad_impressions excludes that traffic.
- `ad_invalid_impressions` (`NUMBER`, required) — Impressions removed by the traffic quality filter. Not included in ad_impressions.
- `ad_invalid_impression_rate` (`NUMBER`, nullable) — Invalid impressions divided by gross impressions. A rate, not an impression count.
- `ad_gross_click_throughs` (`NUMBER`, required) — Times the ad was clicked, including invalid traffic. ad_clicks excludes that traffic.
- `ad_invalid_click_throughs` (`NUMBER`, required) — Clicks removed by the traffic quality filter. Not included in ad_clicks.
- `ad_invalid_click_through_rate` (`NUMBER`, nullable) — Invalid clicks divided by gross clicks. A rate, not a click count.

---

Query live via DataDoe MCP `exports_source_get` (connected accounts only), or request rows with `exports_create`.
