Skip to main content

Attribution for Kevel Ad Server

Customers using Kevel Ad Server often need to attribute product purchases to the ad campaigns that influenced them. This is done by sending order data to Kevel’s Purchase Events API, after which the ad server evaluates whether any prior ad events are attributable to the purchase. To understand how the Ad Server attributes purchases and how this API relates to ad campaigns and the product catalog, refer to Attribution Overview.

Audience integrates seamlessly with the Ad Server by sending data to the Purchase Events API whenever an Order Place event is registered.

How It Works

When an Order Place is detected, Audience will process each line item from that order and send a purchase request to the Purchase Events API.

Audience communicates the following information to the Attribution API:

  • userKey: Audience determines all the user ids that are part of the user profile that made the Order Place event and sends them to the Ad Server. This helps reduce conversion underreporting in cases where the user identifiers at the time of the ad event differ from those present in the Order Place event — a common scenario for retailers operating both online and offline, who want to attribute offline purchases to online engagement.
  • timestamp: The timestamp on which the OrderPlace event occurred.
  • productId: The product identifier.
  • quantity: The purchased quantity of the product.
  • price: The unit price of the purchased product. Audience sums all the total values from the line items in the Order and divides it by the total quantity to find the unit price of each purchase request.
  • transactionId: The identifier of the order that contains the purchased product.

Audience only processes an Order Place once. If the same Order Place is sent multiple times, Audience will only only communicate purchases to the Ad Server once. This is done to prevent duplicate purchases from being sent, which could lead to incorrect attribution and ad serving behavior.

Kevel Ad Server Customers with Multiple Networks

Most customers have multiple Ad Server Networks — typically one for production and another for development, or even different business units within a conglomerate — but just one Audience instance. By default, Audience sends purchase events to all networks associated with a customer's organization. This applies to both real-time Order Place events and bulk imports via Order Import.

However, this default behavior can lead to issues, such as:

  • A small risk of duplicate or incorrect attribution
  • Development environments inadvertently receiving real user data, which may violate internal policies or data handling practices
  • Potential data spillage between businesses of a conglomerate.

To address this, customers are strongly encouraged to include the networkId in their Order Place events. This allows Audience to send purchase data only to the specified, whitelisted Network, giving customers greater control over where their business data is sent.

If a networkId is missing or invalid, Audience will fall back to the default behavior and send the purchase event to all of the customer's whitelisted networks. Importantly, Audience never sends data outside the customer's organization — even in cases of misconfiguration.