An offer instance is the per-dispatch identity of an Offer returned in one Query response.
AON uses offer_id for the stable public identity of the Offer and offer_instance_id for the particular delivery associated with the current request, placement, or serving context. The distinction matters because the same Offer can be delivered more than once, while attribution must identify the delivery that preceded the tracked interaction.
Offer instances in AON
AON adds per-dispatch identity to the Public Offer projection so an AI product can preserve the exact serving context when a user continues through the documented action path.
See Offer identity in the Query APIHow offer instance identity works
Define the stable Offer
AON uses offer_id to represent the public Offer independently of one particular Query response.
Create the dispatch identity
When the Offer is returned for a request, AON creates or assigns the offer_instance_id for that delivery.
Preserve the served context
The consuming product keeps the instance associated with the Offer it actually evaluates and presents.
Carry it into attribution
The supported tracked action and later event reporting use the applicable identity anchors to connect the interaction to the correct delivery.
Implement Offer instance safely
Keep
- The returned
offer_idandoffer_instance_idas separate identity levels. - The instance associated with the Offer actually evaluated and presented.
- The returned tracked action and the identity anchors required by the active attribution contract.
Do not
- Attributing a repeated dispatch using
offer_idalone when the contract suppliesoffer_instance_id. - Replacing AON's dispatch identity with a locally generated ID.
- Treating
offer_instance_idas an order ID, payment ID, or transaction-completion proof.
Stable identity and delivery identity
AON's two identities answer different questions: which Offer was this, and which delivery did the user receive?
| Concept | Meaning |
|---|---|
| `offer_id` | The stable public Offer identity used to recognize the same Offer across Query responses and public references. |
| `offer_instance_id` | The per-dispatch identity used to distinguish one served instance from another for attribution and operational reconciliation. |
| Tracked action | The product preserves the returned action or tracked destination so the user handoff retains the contract's attribution context. |
| Later outcome | A reported event is evaluated against the supported attribution anchor, Goal, validation rules, and commercial terms. |
offer_instance_idis not a merchant order ID, payment ID, or proof that a transaction completed.offer_idalone cannot always identify which delivery preceded a click or reported outcome.- The exact attribution anchor depends on the active AON delivery and event contract; consumers should not invent a replacement ID.
Example in practice
An Offer with offer_id: offer-001 is returned in two planning sessions. Each response carries a different offer_instance_id. If the user follows the action from the second response, the product preserves that second instance context rather than attributing the interaction to the stable Offer ID alone.
Common questions about offer instance
What is the difference between an AON Offer ID and an offer instance ID?
An AON offer_id identifies the stable Public Offer across deliveries. An offer_instance_id identifies one delivery of that Offer in a specific Query response, allowing attribution to preserve the serving context.
Should an AI product store the offer instance ID returned by AON?
Yes. When an AON delivery contract returns offer_instance_id, the AI product should preserve the instance associated with the Offer it presents or tracks.
Is an AON offer instance ID the same as a merchant order ID?
No. An AON offer_instance_id identifies an Offer delivery for discovery and attribution. The merchant or checkout system creates and owns order, payment, and booking identifiers.
Who creates the offer instance ID in an AON Offer Query response?
AON creates offer_instance_id for each Public Offer dispatch. A Partner supplies source_offer_id, while the AI product preserves the AON-issued instance ID returned with the Public Offer.
Sources
- AON Offer Query APIAON documentation
- AgentOffer Protocol field semanticsAON specification
- AON Tracking APIAON documentation