Particular Audience Particular Audience
Talk to us

The retail operating system

One engine for every retail decision.

Most retailers run four or five separate tools.

Search in one tool, pricing in another, ads bolted on top — nobody owns the order shoppers see, and margin leaks between them. The Unified Decision Engine governs relevance, inventory, margin and sponsored demand in one pass, on every surface, including the AI assistants now doing the shopping.

Start with one surface. Leave the rest of your stack untouched.

Need one thing first? Start with our AI product recommendation engine or AI site search.

Stock-Aware Retail Media: Avoid Out-of-Stock Product Ads

Design sponsored-product eligibility around store, fulfilment and stock freshness. Define stale-data behaviour, campaign permissions and delivery checks.

Store-level availability in retail media: avoid advertising unavailable products

A product can be available somewhere and unavailable to the shopper in front of you. Sponsored eligibility therefore needs the relevant store or fulfilment context, a usable availability signal and an agreed freshness policy. Treat unknown stock explicitly, and preserve the relationship between the displayed product and its authorised campaign.

Separate the product from the local offer

A catalogue product describes the item. A local offer describes whether that item can be purchased through a specific store, delivery area or fulfilment method. An advertising decision needs the offer applicable to the current shopper, not an aggregate stock flag from elsewhere.

Define the keys that connect product, location and campaign. A store change should trigger a new eligibility decision before another sponsored placement is shown.

Make freshness part of eligibility

The proposed data contract should include the product reference, store or fulfilment scope, availability state, source update time and source version. An agreed expiry time or freshness window determines when an apparently available item becomes uncertain.

Distinguish available, unavailable and unknown. Missing data is not proof of stock. Decide whether unknown availability suppresses the ad, uses a separately validated fallback or requires another check. That decision belongs in the retailer's policy and implementation design.

PA's Products API documents a product availability field. It does not, by itself, establish your store-level mapping or freshness guarantee. Confirm those details as part of integration.

A synthetic store-switch example

Suppose product_A is available at store_A but unavailable at store_B. Its campaign is otherwise eligible. The shopper initially selects store_A, so the product can proceed to the remaining checks. When the shopper switches to store_B, it must be excluded from that store's sponsored candidates.

Now suppose store_A's last availability signal expires at 10:10 and the next request arrives at 10:11. Under an illustrative suppress-on-stale policy, the product is treated as unknown and withheld until a valid update arrives. The times demonstrate a policy; they are not a PA freshness commitment.

Keep advertising permissions intact

An alternative in-stock item is not automatically an authorised replacement. It must belong to the allowed supplier or campaign product set and satisfy the placement's relevance rules. Preserve the correct product and campaign identifiers in delivery events.

PA documents fixed and dynamic ad-set collections. Collection membership and request-time local availability are distinct questions; confirm how they are connected in the deployment.

Validate the entire event path

Test late updates, out-of-order updates, removed items, changed stores and a product selling out between decision and render. Define the action for each case. Follow the documented catalogue-update semantics rather than assuming an availability-only payload safely preserves every other field.

Compare decision logs with displayed ads and agreed billable events. If a response is discarded before display, the event trail should not pretend the shopper saw it.

Measure failures as well as recovery

Track stale decisions, unavailable-product impressions, suppressed opportunities and valid replacements. Recovery matters only when the alternative is purchasable, relevant and authorised. The goal is a reliable commercial experience, not maximum advertising exposure regardless of stock.

Illustrative example

SYNTHETIC proposed contract, not a PA API payload: offer_id=offer_A_store_A; product_ref_id=product_A; store_id=store_A; fulfilment_method=collection; availability_state=available; source_updated_at=2026-10-01T10:00:00Z; valid_until=2026-10-01T10:10:00Z; source_version=42. Request at10:11Z => unknown/stale and suppressed under this example policy. store_B offer is unavailable independently.

Downloads

Sources

How Particular Audience does it

Frequently asked questions

Is a product-level in-stock flag enough?

Only when it accurately represents the offer available to the shopper. Multi-store or multi-fulfilment retailers may need location-specific availability and eligibility. Confirm the mapping between product, store, channel and campaign instead of assuming a global flag covers every purchase journey.

What should happen when availability data is stale?

Use an explicitly agreed policy. Suppression is one possible response; a validated fallback or an additional availability check may suit another design. Do not silently interpret stale or missing data as available. Document how the decision and any omitted ad are recorded.

Can the system substitute another advertised product automatically?

Only within the authorised campaign and retailer rules. The alternative must be relevant, locally available and eligible for that placement. A similar product from another supplier is not automatically a permitted replacement, and its events must not be billed to the original campaign.

Related guides

How-to guides · All guides