At a glance
A cross-platform alert that joins AdRoll Dynamic Ads spend against the live rejection status of the product catalogue each campaign is driven by, and flags any budget flowing into a dynamic campaign whose feed has active rejections. This is the single highest-leverage card in the AdRoll manifest because Dynamic Ads are catalogue-driven by design: the creative is assembled from product records in the synced feed, so when items are rejected, no product creative renders for them, and any spend the campaign keeps pacing is wasted on whatever fallback creative remains. Feed rejections are silent, they do not pause the campaign, they just hollow it out while it keeps retargeting your warmest audiences with broken ads. This card turns a buried catalogue warning into a money figure: here is exactly how much spend is exposed to a feed that is partly broken right now.
Calculation
Calculated automatically by joining your AdRoll dynamic-campaign spend with your connected product-catalogue feed status. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK outdoor-gear retailer on Shopify runs four AdRoll Dynamic Ads campaigns off a single product catalogue synced from the store. On 04 Jun 26 a bulk catalogue re-tag added unsupported HTML into the product titles, and the AdRoll catalogue sync rejected a large batch of products. Account currency GBP. Window is the rolling 30 days.
What the pattern tells you:
- Three dynamic campaigns sharing the catalogue breached; the static prospecting campaign did not. That instantly localises the fault to the catalogue, not to any campaign’s bidding or audience. The static campaign serves fixed creative with no feed dependency, so it is unaffected. The shared dependency is the story.
- Roughly GBP 15,500 of spend is exposed to a catalogue that is 61% rejected. That is the number this card exists to surface. Buried in the AdRoll Product Catalogue status page it is just a rejected-count warning; expressed as exposed spend it becomes an urgent, costed problem an owner or marketer can act on.
- Conversions fell hardest on the retargeting campaigns. Cart-abandoner retargeting (most dependent on serving the exact products a visitor browsed) dropped 44%, while dynamic prospecting (broader product mix, less reliant on the precise rejected items) dropped only 18%. The conversion damage tracks the dependency.
- The campaigns did not stop, which is the trap. A feed rejection does not pause an AdRoll campaign. It keeps pacing against the surviving 39% of the catalogue and generic fallback creative, so spend looks normal while effectiveness has collapsed. Only a feed-aware join makes this visible.
- The fix is at the catalogue source, not in AdRoll bidding. Open the AdRoll Product Catalogue to read the rejection reason (here, unsupported HTML in the title field), correct the product data on the Shopify export, and trigger a re-sync. The rejected products re-enter dynamic eligibility within a sync cycle (typically a few hours to 24 hours) and conversions recover.
- Until the catalogue is fixed, the exposed spend keeps accruing. If a same-day fix is not possible, consider reducing budget on the worst-affected retargeting campaigns so you are not pacing full spend against a half-broken catalogue while warm audiences burn down.
- Multiple dynamic campaigns breach + they share a catalogue = catalogue-level fault, fix the feed.
- One campaign breaches + others on the same catalogue are fine = campaign-specific issue, not the feed.
- Conversion drop scales with rejection share = confirmed feed-driven effectiveness loss.
- Breach clears after a catalogue re-sync = confirmed, no campaign restructure needed.
- High exposed spend + high rejection share + a shrinking retargeting pool = reduce budget until the catalogue is fixed.
Sibling cards merchants should reference together
Reconciling against AdRoll
Where to look in AdRoll’s own dashboard:In the AdRoll dashboard at app.adroll.com, open Product Catalogue (under Audiences and Catalogues, depending on your account layout) to read the rejection reasons and rejected-product counts for each catalogue, then open Reporting and group by campaign to read the spend on each Dynamic Ads campaign linked to the affected catalogue.AdRoll holds both halves of this story but never puts them on the same screen: the Product Catalogue status page shows what is rejected, and Reporting shows what each campaign spent, but AdRoll does not connect “this dynamic campaign is driven by that rejecting catalogue, and here is the spend exposed”. That join is exactly what this card does. To reconcile manually, read the rejected-product list and rejection reasons from the catalogue page, identify which dynamic campaigns are linked to that catalogue, then sum their spend in Reporting; the total should match this card’s exposed-spend figure within rounding. Why our number may legitimately differ from a manual check:
Cross-connector reconciliation:
This card is inherently cross-platform, joining ad spend to product-catalogue feed status: