Connect Retail Media Campaigns to Live Promotion Feeds
Design a promotion-feed contract for retail media with product scope, effective dates, funding controls, expiry behaviour and reconciliation keys.
Sync retail media campaigns with live promotions
An advertised offer must still be valid when the shopper acts on it. Start with a shared contract for product scope, eligibility, timing and funding, then define what happens when the feed is late or an offer changes. The example below is a proposed integration pattern, not a published PA API.
Choose the source of truth for every decision
Decide which system owns the approved offer, the product's selling price, availability, campaign budget and redemption record. A media platform should not infer permission to change a price merely because a promotion appears in a feed. Give every incoming offer a stable identifier, version and source timestamp so changes can be traced.
Particular Audience describes Promotion Amplification as bringing approved offers into discovery experiences. Before an integration starts, confirm the supported input contract and surfaces with the implementation team. The fields in this guide are design recommendations, not a claim that a named connector or import format is already available.
Make scope and time unambiguous
Specify the product or variant identifiers, merchant and store scope, currency, eligible audience reference and effective time interval. Use a consistent time standard and make the end boundary explicit. A proposed rule such as “active from the start instant, inactive at the end instant” is easier to test than a vague instruction that an offer ends “on Sunday”.
Represent monetary amounts consistently. The synthetic example uses integer minor units, so a saving of 500 with currency GBP means £5.00. Include stacking policy and funding references without assuming every offer combines with every other discount. An upstream eligibility flag is evidence to validate, not permission to ignore downstream retailer rules.
Design updates, expiry and failure together
Accept a repeated event idempotently. A later version should replace an earlier approved version; an out-of-order older event should not revive an expired offer. Separate invalid payloads from temporary delivery failures and retain an operator-readable reason for each rejected change.
For the proposed pattern here, an expired, unvalidated or funding-ineligible offer loses its savings message and related promotional eligibility. The product may remain in an ordinary result if it is otherwise eligible. Agree the actual fallback with the retailer before launch, including how quickly changes must propagate and how a stale cache is detected. No freshness target is universal.
Join delivery to the right offer version
Record campaign, placement, offer, version and product identifiers with eligible exposure and redemption events. Those keys let analysts determine which promise the shopper saw and which saving was applied. Keep discount funding, advertising charges and fees separately reconcilable, with the source system for each amount documented.
Test the edges before increasing coverage: end-time boundaries, missing variants, currency mismatch, budget exhaustion, repeated messages and a rollback. Then run a small reconciled pilot with human review. A successful feed transfer is only the first check; the final checks are a valid shopper promise and an explainable commercial ledger.
Illustrative example
{"label":"Synthetic proposed data contract","currency":"GBP","saving_minor":500,"display_saving":"£5.00","active_rule":"starts_at <= now < ends_at","deduplication_key":["merchant_id","offer_id","version"],"not_a_production_endpoint":true}
Downloads
- pa-proposed-promotion-feed.json (illustrative template)
- pa-promotion-feed-contract.csv (illustrative template)
- pa-promotion-feed-test-cases.csv (illustrative template)
Sources
- Promotion Amplification, checked 2026-10-25
- Trade Media & Supplier-Funded Savings, checked 2026-10-25
How Particular Audience does it
Frequently asked questions
Is this a live Particular Audience feed specification?
No. It is a proposed contract for scoping and testing a promotion integration. Confirm the accepted transport, fields, identifiers, validation rules and supported surfaces with the implementation team. Do not send this example to an assumed production endpoint or treat it as an import guarantee.
What should happen when an offer expires?
Agree the fallback explicitly. This proposed pattern removes the expired savings claim and promotional eligibility while allowing an otherwise eligible product to remain organic. Verify time boundaries, cache behaviour and downstream checkout treatment so an old message cannot imply that an expired saving still applies.
Can the same offer be combined with another discount?
Only under the retailer’s approved stacking policy and the supported implementation. Include a policy reference and test allowed, disallowed and ambiguous combinations. A feed should not assume permission merely because two offers exist, and reporting should identify the version and conditions actually applied.
Related guides
- How to measure supplier-funded promotion incrementality: Separate the effect of an offer from paid visibility. Plan holdouts, calculate incremental orders and reconcile supplier funding, fees and contribution.