Attribution for Kevel Ad Server | Kevel Audience

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 communicates one purchase request for each line item found in that order, using the Purchase Events API.

Audience communicates the following information to the Attribution API:

The price is communicated in the default system currency configured for the Audience instance. Audience automatically converts the monetary values of every Order Place to this currency before sending them to the Ad Server. This means the values reported to the Ad Server are always in a single, consistent currency, regardless of the currency in which each order was originally placed.

Audience only processes an Order Place once. If the same Order Place is sent multiple times, Audience will 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.

Quantity Constraints

The Ad Server records the purchased quantity as a whole number of units and uses it to count the conversions attributed to a purchase. To stay consistent with this, Audience only reports whole-number quantities to the Ad Server.

When a line item carries a fractional quantity (common for products sold by weight, length, or volume, such as 1.5 kg of coffee or 7.5 ft of rope) Audience rounds the quantity up to the next whole unit before sending it. The unit price is then recalculated against the rounded quantity, so the order's monetary value is never distorted: the reported quantity multiplied by the price always equals the line item total.

For example, a line item with a quantity of 1.5 and a total of 9.00 is reported to the Ad Server with a quantity of 2 and a unit price of 4.50 (9.00 ÷ 2), preserving the 9.00 total. Quantities that are already whole numbers are reported unchanged.

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:

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.