Audit Log

Kevel's Audit Log records operations for all changes made to campaign management entities.

Kevel's Audit Log records operations for all changes made to campaign management entities. The data is comprised of "operations" that record when a given entity was changed, the request body that triggered that change, and the user or application who took the action. The system does not explicitly record what changed but the delta between entity versions can be obtained by comparing request bodies over a series of operations for a single entity.

Audit Log in the Ad Server UI

Audit Logs are accessible in the Ad Server UI under the top right menu bar identified by the active network name:

The menu under the network name in the Ad Server UI menu bar, listing Switch Network, Audit Log and Log Out, with Audit Log highlighted.

This screen also allows you to download the operations shown in a CSV format. Note that the download will only contain the operations that are visible across all pages of the table; request bodies are not included in exports.


The Audit Log in the Ad Server UI, with an API Key column showing the key ID and Nickname for each change made with an API key

The API Key column shows which API key made each change, as the key ID followed by its Nickname. A key with no Nickname appears as kevel/apikey: followed by its ID. Changes made by a signed-in user show the user instead.

The table scrolls horizontally, and a column picker lets you choose which columns to show.

Seeing what changed

The Audit Log shows what changed across operations on campaign management entities including human-readable labels instead of the raw API representations for enum fields (for example, RateType, GoalType, and CapType on Flights). Access this information by clicking the + icon to expand rows in the table of operations. Note changes made through some Applications will not have diff information available.

The Audit Log with two expanded rows. Each row lists the fields that changed, with the old value in red and the new value in green, such as FreqCap from 3 to 2.

Filtering by Application

Use the Application filter to limit the log to changes from one application, or from an Application Name in Audit Log that you set on an API key. See Manage API Keys. You can type a name or pick from the list. The list holds Kevel's own applications and any names set on your API keys.

The Application filter open in the Audit Log, listing Ad Server API, Ad Server UI, Console, Advertiser API, Catalog, Internal Action, and the names catalog-sync and bi-export that were set on API keys.

Select Apply to show only that application's changes.

The Audit Log filtered with the Application filter to show only changes from the catalog-sync application.

Filtering by API key

Use the API Key filter to limit the log to changes made with one API key. Keys are listed by ID and Nickname. Select Apply to show only that key's changes.

The Audit Log with the API Key filter set to a key named Storefront decisions. Every row in the table shows that key in the API Key column.

The Audit Log records changes only, so a key that only reads data does not appear in it, even while the key is in use. To set a key's Nickname, see Manage API Keys.

Attribute changes made with a shared API key

A change made with an API key shows the key in the API Key column. When several people or systems share one key, the integration can send two headers, so the Audit Log also shows who made the change and which application made it.

HeaderShown in the columnWhat to send
X-Kevel-EndUserEnd UserThe person who triggered the change, for example [email protected].
X-Kevel-ApplicationApplicationThe product or workflow that made the change, for example acme/campaign-portal.
curl -X POST -H "X-Kevel-ApiKey:$KEVEL_API_KEY" -H "X-Kevel-EndUser:[email protected]" -H "X-Kevel-Application:acme/campaign-portal" -H "Content-Type:application/json" "https://api.kevel.co/v1/advertiser" --data-binary '{"Title":"Example advertiser","IsDeleted":false,"IsActive":true}'

Choose what to send

  • An internal tool or admin portal. Staff use it to manage campaigns, and it calls the API with one shared key. Send X-Kevel-EndUser set to the staff member's identifier, so the Audit Log shows the person as well as the key.
  • A platform or agency tool serving several clients. Send both headers. The application value says which product or workflow made the change, and the end user says who triggered it.
  • An automated job. A scheduled sync or feed has no person behind it. Send only X-Kevel-Application, with a stable name, so you can tell its changes from manual ones.

What to know

  • Each value can be up to 128 characters.
  • A key's Application Name in Audit Log takes precedence. If the key has one, the Audit Log shows that name and ignores X-Kevel-Application. Leave it empty on keys whose integration sends the header. See Manage API Keys. With no name and no header, the Application column shows Ad Server API.
  • The headers record attribution. They do not authenticate or authorize anyone. The key controls what a request can do, and a caller can send any value. Do not use them as access control.
  • Do not start a value with kevel/, adzerk/ or mcp/. Kevel reserves those prefixes for its own applications.
  • The Audit Log records changes for networks that have it enabled. If Audit Log is not in your menu, contact your Kevel representative.

Find the records

In the Ad Server UI, filter by Application or API Key, and read the End User column. The UI does not filter by end user. The Audit Log API can filter by end user and application. For access, see Audit Log in the Ad Server API.

Audit Log in the Ad Server API

Audit Logs can also be accessed via API. If you're interested in accessing logs programmatically, please contact your Kevel account team or contact Kevel Support for more information.