Attribution at Coveo

Coveo for Commerce Advanced Reports and the Coveo Merchandising Hub (CMH) rely on attribution to provide insight into the key metrics that affect the performance of your Coveo-powered commerce implementation:

  • Transactions

    The user’s journey is analyzed to determine which product discovery solutions should be credited for the purchase.

  • Revenue

    The user’s journey is analyzed to determine which solutions should be credited for the revenue that’s generated by the purchase.

Coveo’s attribution model

A transaction is typically the result of a series of touchpoints that map the customer’s journey. It’s important to consider the entirety of that journey when analyzing the performance of your Coveo-powered commerce implementation.

Coveo’s attribution model is multi-touchpoint, per-product, and last-touch:

  • Multi-touchpoint

    Transactions and revenue are attributed to specific product discovery solutions rather than to Coveo as a whole. When a click action touchpoint leads to a purchase, Coveo uses that touchpoint to determine which solution should be credited for the purchase.

    Transactions can be attributed to multiple solutions because each product in a transaction is attributed individually based on the touchpoint involved.

    Note

    Each transaction is only counted once on the total transactions chart in Coveo for Commerce Advanced Reports, even if it’s attributed to multiple solutions.

  • Per-product

    Each product in a transaction is attributed to a particular solution. The transaction as a whole is attributed to a particular solution if at least one product in the transaction can be attributed to that solution.

    Tip
    Transactions vs. revenue

    Each transaction can only be attributed to a solution once, even when multiple products in the transaction are attributed to the same solution.

    However, the revenue for all of the products in a transaction that are attributed to a particular solution is added up and attributed to that solution collectively.

  • Last-touch

    Each product in a transaction is attributed to a solution based on the last registered click action touchpoint involving that product before the purchase was completed.

    Example

    A user performs a query on a Coveo-powered commerce site. They click a product to open its product detail page (PDP), but they don’t make a purchase and navigate away from the site. Coveo tracks this touchpoint as part of the user’s journey.

    Later, they revisit the site and see the same product in a recommendation slot. They click the product to open its PDP, creating another touchpoint tracked by Coveo. This time, the user adds the product to their cart and completes the purchase. This product is attributed to the recommendation solution.

Attribution example

A customer wants to purchase a laptop with a 12.4" display, a 4k monitor, and a printer, so they visit the Coveo-powered Acme Electronics commerce site.

Note

In this example, the fictional Acme Electronics site doesn’t include the ability to add products to the cart directly from the search results page, product listing pages (PLPs), or recommendation slots.

  • The customer types laptop with 12.4 display in the search bar. In the search results, they see a laptop priced at $500. They click it to open the product detail page (PDP), and after looking at its specifications, they add the laptop to their cart.

  • Next, the customer finds a 4k monitor priced at $250 on the Monitors PLP. They click it to open the PDP and add it to their cart.

  • The customer then views the products listed on the Printers PLP. They click a printer priced at $200 to open the PDP and add it to their cart.

  • Finally, while the customer is reviewing their cart, they notice a product recommendation for a laptop bag priced at $50. They click the bag to open the PDP and add it to their cart. Then the customer proceeds to the payment and completes the purchase.

For this customer journey, the transaction is attributed once to each of the Coveo product discovery solutions and once to Coveo overall:

  • It’s attributed once to the search solution because of the touchpoint in which the customer clicked the laptop in the search results.

  • It’s attributed once to the product listing solution because of the touchpoints in which the customer clicked the monitor and printer on the PLP. Even though two products in this transaction are attributed to the product listing solution, the transaction itself is only attributed once per solution.

  • It’s attributed once to the recommendation solution because of the touchpoint in which the customer clicked the laptop bag in the recommendation slot.

  • It’s attributed once to Coveo because it includes at least one item that’s attributed to a Coveo solution.

While the transaction is attributed equally to each solution that was involved, the revenue is attributed based on the price of each product in the transaction. The total of this transaction is $1,000, which is attributed as follows:

  • $500 is attributed to the search solution.

  • $450 ($250 + $200) is attributed to the product listing solution.

  • $50 is attributed to the recommendation solution.

For a more complex example of revenue attribution involving multiple transactions which include items that aren’t attributed to Coveo, see Contribution to AOV.

About search attribution

A click action on a search result | Coveo for Commerce Coveo attributes a product in a transaction to the Search product discovery solution if the visitor's last registered click action before purchasing the product was selecting it from the search results that were returned after performing a query in the search box.

The events that are tracked as part of the user journey differ depending on the protocol you’re using (Event Protocol or Coveo UA Protocol) and the Coveo API you’re making calls to (Commerce API or Search API).

The following diagram illustrates the sequence of events in which Coveo attributes a product to the Search solution:

Search attribution sequence | Coveo for Commerce

Search attribution with Event Protocol

The sequence of events is as follows:

  1. The visitor enters a search query. This sends a search request that includes the following properties:

    • responseId, which uniquely identifies the initial search request.

    • clientId, which uniquely identifies a specific instance of a particular browser client.

    • trackingId, which uniquely identifies a single user journey through a single storefront.

    After the search request is sent, a page of search results loads.

  2. When the visitor clicks a product, the product detail page (PDP) loads. A click event is logged that includes the following properties:

    • responseId, which matches the value of the responseId from the search request. This is how Coveo connects the click event to the Search solution.

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

    • productId, which uniquely identifies the product.

    • name, the product’s name.

    • price, the product’s price.

    The Coveo Platform automatically enriches the click event by adding a value for the ec_item_group_id field from the catalog data if a product grouping exists. It also enriches the ec_category and ec_brand fields.

  3. When the visitor completes a purchase, a purchase event is logged that includes the following properties:

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

    • transactionId, which uniquely identifies the transaction.

    • revenue, the total revenue from the transaction, including tax, shipping, and discounts.

    The purchase event also includes the following properties for each product in the transaction:

    • productId, which uniquely identifies the product.

    • name, the product’s name.

    • price, the product’s price.

    • quantity, which lists how many of each product were purchased.

    The Coveo Platform automatically enriches the purchase event by adding a value for the ec_item_group_id field from the catalog data if a product grouping exists. It also enriches the ec_category and ec_brand fields.

Coveo tracks the responseId across the initial search request and click event touchpoints.

If ec_item_group_id exists on both the click and purchase event touchpoints, Coveo uses it to tie the click event to the purchase event that concludes the user journey. If ec_item_group_id isn’t present in one or both of these events, then Coveo uses productId to tie the click event to the purchase event.

If the click and purchase event touchpoints are within 30 days of each other, Coveo can attribute this transaction to the Search solution.

Search attribution with Coveo UA Protocol

The sequence of events is as follows:

  1. The visitor enters a search query. This sends a search request that includes the following properties:

    • searchUid, which uniquely identifies the initial search request.

    • clientId, which uniquely identifies a specific instance of a particular browser client.

    • trackingId, which uniquely identifies a single user journey through a single storefront.

    After the search request is sent, a page of search results loads. A search event that includes the searchQueryUid property is logged. This property is filled with the value of the searchUid returned by the search request. This connects the search event to the Search solution.

    Note

    All of the events that are tracked for attribution include the following properties:

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

  2. When the visitor clicks a product, the PDP loads. A click event that includes the following properties is logged:

    • searchQueryUid, which is filled with the value of the searchUid returned by the search request. This connects the click event to the Search solution.

    • prNid or prNgroup (or both, where N is based on the number of products included in the event payload), which links this click event to a particular product and lets Coveo tie this event to the purchase event that concludes the user journey.

  3. When the visitor completes a purchase, a purchase event is logged. This purchase event includes the prNid or prNgroup properties (or both) for each product in the transaction. This connects each product to a particular click event.

By tracking the unique searchUid and prNid or prNgroup values used across the touchpoints leading up to the purchase, Coveo can attribute this transaction to the Search solution.

About product listing attribution

A click action on a product category | Coveo for Commerce Coveo attributes a product in a transaction to the Product listing product discovery solution if the visitor's last registered click action before purchasing the product was selecting it on a product listing page (PLP).

The events that are tracked as part of the user journey differ depending on the protocol you’re using (Event Protocol or Coveo UA Protocol) and the Coveo API you’re making calls to (Commerce API or Search API).

The following diagram illustrates the sequence of events in which Coveo attributes a product to the Product listing solution:

Product listing attribution sequence | Coveo for Commerce

Product listing attribution with Event Protocol

The sequence of events is as follows:

  1. The visitor selects a product category. This sends a search request that includes the following properties:

    • responseId, which uniquely identifies the initial search request.

    • clientId, which uniquely identifies a specific instance of a particular browser client.

    • trackingId, which uniquely identifies a single user journey through a single storefront.

    After the search request is sent, a PLP loads and displays products that are relevant to the selected category.

  2. When the visitor clicks a product, the product detail page (PDP) loads. A click event is logged that includes the following properties:

    • responseId, which matches the value of the responseId from the search request. This is how Coveo connects the click event to the Product listing solution.

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

    • productId, which uniquely identifies the product.

    • name, the product’s name.

    • price, the product’s price.

    The Coveo Platform automatically enriches the click event by adding a value for the ec_item_group_id field from the catalog data if a product grouping exists. It also enriches the ec_category and ec_brand fields.

  3. When the visitor completes a purchase, a purchase event is logged that includes the following properties:

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

    • transactionId, which uniquely identifies the transaction.

    • revenue, the total revenue from the transaction, including tax, shipping, and discounts.

    The purchase event also includes the following properties for each product in the transaction:

    • productId, which uniquely identifies the product.

    • name, the product’s name.

    • price, the product’s price.

    • quantity, which lists how many of each product were purchased.

    The Coveo Platform automatically enriches the purchase event by adding a value for the ec_item_group_id field from the catalog data if a product grouping exists. It also enriches the ec_category and ec_brand fields.

Coveo tracks the responseId across the initial search request and click event touchpoints.

If ec_item_group_id exists on both the click and purchase event touchpoints, Coveo uses it to tie the click event to the purchase event that concludes the user journey. If ec_item_group_id isn’t present in one or both of these events, then Coveo uses productId to tie the click event to the purchase event.

If the click and purchase event touchpoints are within 30 days of each other, Coveo can attribute this transaction to the Product listing solution.

Product listing attribution with Coveo UA Protocol

The sequence of events is as follows:

  1. The visitor selects a product category. This sends a search request that includes the following properties:

    • searchUid, which uniquely identifies the initial search request.

    • clientId, which uniquely identifies a specific instance of a particular browser client.

    • trackingId, which uniquely identifies a single user journey through a single storefront.

    After the search request is sent, a PLP loads and displays products that are relevant to the selected category. A search event that includes the searchQueryUid property is logged. This property is filled with the value of the searchUid returned by the search request. This connects the search event to the Product listing solution.

    Note

    All of the events that are tracked for attribution include the following properties:

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

  2. When the visitor clicks a product, the PDP loads. A click event that includes the following properties is logged:

    • searchQueryUid, which is filled with the value of the searchUid returned by the search request. This connects the click event to the Product listing solution.

    • prNid or prNgroup (or both, where N is based on the number of products included in the event payload), which links this click event to a particular product and lets Coveo tie this event to the purchase event that concludes the user journey.

  3. When the visitor completes a purchase, a purchase event is logged. This purchase event includes the prNid or prNgroup properties (or both) for each product in the transaction. This connects each product to a particular click event.

By tracking the unique searchUid and prNid or prNgroup values used across the touchpoints leading up to the purchase, Coveo can attribute this transaction to the Product listing solution.

About recommendation attribution

A click action on a recommended product | Coveo for Commerce Coveo attributes a product in a transaction to the Recommendation product discovery solution if the visitor's last registered click action before purchasing the product was selecting it from a recommendation slot.

The events that are tracked as part of the user journey differ depending on the protocol you’re using (Event Protocol or Coveo UA Protocol) and the Coveo API you’re making calls to (Commerce API or Search API).

The following diagram illustrates the sequence of events in which Coveo attributes a product to the Recommendation solution:

Recommendation attribution sequence | Coveo for Commerce

Recommendation attribution with Event Protocol

The sequence of events is as follows:

  1. recommendation slots can appear in different places on a Coveo-powered commerce site. For example, they can appear on home pages, cart pages, or product detail pages (PDPs). When a page containing a recommendation slot loads, a search request is sent to query products to fill the slot. This request includes the following properties:

    • responseId, which uniquely identifies the initial search request.

    • clientId, which uniquely identifies a specific instance of a particular browser client.

    • trackingId, which uniquely identifies a single user journey through a single storefront.

    After the search request is sent, one or more recommendation slots load and display the products returned by the request.

  2. When the visitor clicks a product, the PDP loads. A click event is logged that includes the following properties:

    • responseId, which matches the value of the responseId from the search request. This is how Coveo connects the click event to the Recommendation solution.

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

    • productId, which uniquely identifies the product.

    • name, the product’s name.

    • price, the product’s price.

    The Coveo Platform automatically enriches the click event by adding a value for the ec_item_group_id field from the catalog data if a product grouping exists. It also enriches the ec_category and ec_brand fields.

  3. When the visitor completes a purchase, a purchase event is logged that includes the following properties:

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

    • transactionId, which uniquely identifies the transaction.

    • revenue, the total revenue from the transaction, including tax, shipping, and discounts.

    The purchase event also includes the following properties for each product in the transaction:

    • productId, which uniquely identifies the product.

    • name, the product’s name.

    • price, the product’s price.

    • quantity, which lists how many of each product were purchased.

    The Coveo Platform automatically enriches the purchase event by adding a value for the ec_item_group_id field from the catalog data if a product grouping exists. It also enriches the ec_category and ec_brand fields.

Coveo tracks the responseId across the initial search request and click event touchpoints.

If ec_item_group_id exists on both the click and purchase event touchpoints, Coveo uses it to tie the click event to the purchase event that concludes the user journey. If ec_item_group_id isn’t present in one or both of these events, then Coveo uses productId to tie the click event to the purchase event.

If the click and purchase event touchpoints are within 30 days of each other, Coveo can attribute this transaction to the Recommendation solution.

Recommendation attribution with Coveo UA Protocol

The sequence of events is as follows:

  1. recommendation slots can appear in different places on a Coveo-powered commerce site. For example, they can appear on home pages, cart pages, or PDP. When a page containing a recommendation slot loads, a search request is sent to query products to fill the slot. This request includes the following properties:

    • searchUid, which uniquely identifies the initial search request.

    • clientId, which uniquely identifies a specific instance of a particular browser client.

    • trackingId, which uniquely identifies a single user journey through a single storefront.

    After the search request is sent, one or more recommendation slots load and display the products returned by the request. A search event that includes the searchQueryUid property is logged. This property is filled with the value of the searchUid returned by the search request. This connects the search event to the Recommendation solution.

    Note

    All of the events that are tracked for attribution include the following properties:

    • clientId, which restricts the event sequence to a particular browser client.

    • trackingId, which restricts the event sequence to a single user journey.

  2. When the visitor clicks a product, the PDP loads. A click event that includes the following properties is logged:

    • searchQueryUid, which is filled with the value of the searchUid returned by the search request. This connects the click event to the Recommendation solution.

    • prNid or prNgroup (or both, where N is based on the number of products included in the event payload), which links this click event to a particular product and lets Coveo tie this event to the purchase event that concludes the user journey.

  3. When the visitor completes a purchase, a purchase event is logged. This purchase event includes the prNid or prNgroup properties (or both) for each product in the transaction. This connects each product to a particular click event.

By tracking the unique searchUid and prNid or prNgroup values used across the touchpoints leading up to the purchase, Coveo can attribute this transaction to the Recommendation solution.