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.

Closed-Loop Retail Media Attribution: Implementation Guide

Connect retail media events to purchases with explicit identity, scope, windows, deduplication and returns. Reconcile attributed ROAS without calling it iROAS.

How to implement closed-loop retail media attribution

Closed-loop attribution connects eligible advertising events with purchases inside a defined retail data environment. Its result depends on identity, product scope, time windows and crediting rules. A reliable implementation exposes those decisions, reconciles adjustments and distinguishes credited sales from sales caused by advertising.

Define the attribution contract

Agree which events can receive credit, which products belong to the campaign and how conflicts between eligible touches are resolved. Keep click-based and view-based reporting distinguishable. Specify whether a parent-product group, a broader brand scope or another approved set qualifies.

Use the IAB Europe measurement standards as a reference for reporting definitions. Record the actual contract in your implementation rather than assuming every dashboard uses identical rules.

Make identity and time explicit

Choose identifiers that are permitted for the purpose and stable enough for the intended join. Enforce retailer and store boundaries. An unmatched purchase is not automatically evidence of no advertising effect, and it should not silently become a modelled conversion.

Store event time separately from processing time. Define the attribution window, reporting cutoff and handling of late events. Use consistent timezones and an explicit policy when two events have equal timestamps.

Deduplicate before crediting value

Give purchases stable order and line identifiers. Repeated delivery of the same purchase event must not create another sale. Keep adjustments linked to the original transaction and make their signs unambiguous.

Distinguish gross sales from net sales after relevant returns or cancellations. Preserve both if the contract needs them; do not overwrite one with the other while keeping the same report label.

Reconcile a synthetic example

An eligible click is followed by a £120 order line inside this example's agreed window. The purchase event arrives twice, using the same event and order-line identifiers. Later, a £20 refund is recorded. The credited gross sale is £120, not £240; the net sale is £100.

With £25 of campaign spend, gross attributed ROAS is 4.8× and net attributed ROAS is 4.0×. These are invented values illustrating reconciliation. Neither ratio is incremental ROAS.

Publish the limits with the result

Show product scope, attribution method, windows, sales basis, currency, maturity and observed-versus-modelled coverage beside the output. Investigate inconsistent event totals before presenting an advertiser report.

PA's campaign reporting documentation exposes spend and sales metrics. Confirm their exact semantics and integration contract; field availability alone does not validate the identity join or causal effect.

For the separate question of what advertising caused, use the holdout-testing guide. A closed data loop makes attribution possible; it does not supply the missing counterfactual.

Illustrative example

{"label":"Synthetic attribution reconciliation, not observed campaign data","currency":"GBP","gross_purchase":120,"purchase_deliveries":2,"unique_purchase_events":1,"refund":20,"credited_gross":120,"credited_net":100,"spend":25,"gross_attributed_roas":4.8,"net_attributed_roas":4,"incremental_roas":"Not estimated"}

Sources

How Particular Audience does it

Frequently asked questions

Is closed-loop ROAS the same as incremental ROAS?

No. Closed-loop attribution credits purchases according to a rule. Incremental return requires an estimate of the additional outcome and an appropriate spend denominator from a causal design.

What should happen to duplicate purchase events?

Use a stable event and transaction key so replaying an already-processed purchase does not add value. A legitimate later refund is a separate adjustment linked to the original order line.

Should refunds change the reported ROAS?

That depends on the declared sales basis. Report gross and net clearly where both are needed, keep the adjustment window explicit and do not relabel a revised net value as unchanged gross performance.

Related guides

  • How to measure retail media incrementality: Plan a retail media holdout with stable assignment, comparable outcomes and visible uncertainty. Separate incremental sales from attributed ROAS and brand halo.
  • ROAS in retail media: return on ad spend: Understand retail media ROAS, its sales and spend definitions, and why attributed return differs from profit and incremental return on advertising spend.
  • Brand halo in retail media: Define brand halo by product and category scope. Distinguish attributed halo ROAS from incremental halo sales and avoid double counting parent-product sales.

How-to guides · All guides