# Monitoring and Reporting

# Measure

Once tags have been deployed (see [Adhese Setup and Implementation](https://documentation.adhese.org/books/inventory-management/page/how-to-deal-with-responsive-web-pages#bkmrk-the-implementation-o)), they start collecting data immediately.

# What does Adhese record?

Actions and parameters divide the measurement process of Adhese into two categories:

- An **action** is 'something that happens';
- The **parameters** are 'all the information that is collected together with the action.'

# Actions

Adhese measures **actions**. Actions are behaviours that a visitor can perform, such as visiting a web page, reading an article, viewing or clicking on a banner ad, watching a video, playing a game, submitting a form, purchasing a product, etc. Each time a user performs a pre-defined action, the client sends a request to the Adhese servers.

The most basic action of the ad-serving process is **impressions**. This means that a specific format (such as a leaderboard) was loaded onto a particular location (for example, the homepage or an article page) of a publication (for instance, a newspaper's website). It depends on the chosen implementation method when the counting of an impression takes place. Please refer to [www.github.com/adhese/sdk](https://www.github.com/adhese/sdk) for a complete description of the different implementation methods.

## User actions: beyond impressions and clicks

Adhese allows for tracking of user actions beyond impressions and clicks. Additionally, Adhese enables tracking of multiple actions simultaneously.

The standard syntax for an action tracking call enables the insertion of three elements:

- A campaign identifier, for example, Volvo2015
- An identifier, like "info request" or "request for demo"
- A free value, such as the value of a purchase

<p class="callout info">This tracking feature requires a custom setup of your account. [Contact Support](https://documentation.adhese.org/books/introduction/page/adhese-support#bkmrk-adhese-support-portal) if you wish to implement this feature.</p>

Let's look at some examples of user actions.

- **Within the ad environment** If Adhese serves a splash ad or interstitial, it is possible to track the visitor's behaviour. Does the visitor click outside the ad or the close button inside the ad to continue to the underlying webpage?
- **Outside the ad environment** Adhese can also track events that occur outside the online advertisement environment. For instance, if a user clicks on your ad, Adhese can track their visit and determine if they made a purchase as a result of your advertising. This allows for more accurate attribution models, as many events can contribute to an online purchase or lead.

## Viewability

Adhese has a tracker that can measure viewability if (legacy) document.write is used (see [Parameters for templates and Advar templates](https://documentation.adhese.org/books/templating/page/macros-for-templates-and-advar-templates)).

If you use JSON, your logic can be implemented to measure viewability and then report it to Adhese via the **viewableImpressionCounter** parameter, which is available in the JSON response (see [List of JSON response structure object fields](https://documentation.adhese.org/books/integration-setup/page/general-json-response-structure)).

# Parameters

A set of **parameters** accompanies every action or request. Parameters offer a greater insight into *who* is doing *what* and *where* and *how* these actions occur. The parameters consist of predefined data, such as screen size, browser and operating system, URL and referrer, or custom user data, such as age and geographic location.

Custom parameters can be implemented based on your specific needs and possibilities. Refer to the [Request Target Parameters](https://documentation.adhese.org/books/integration-setup/page/request-target-parameters) appendix for a list of readily available parameters. The available target parameters and their prefixes are determined by the configuration of your Adhese account. Adhese will use this information to build your inventory and provide insights to match campaigns with your audience and vice versa.

<p class="callout danger">Remember that the unique identification of visitors and the storage of personal and other data are subject to national, European and international legislation. It is the exclusive responsibility of the publisher to comply with the law and adequately inform the user of his rights. Adhese can help and advise publishers here. More on user privacy is available in [the GDPR section](https://documentation.adhese.org/books/privacy-consent/page/user-privacy-and-gdpr#bkmrk-gdpr) of the documentation.</p>

# Impression measurement

Impression measurement is an essential aspect of ad serving. Understanding how and when Adhese counts an impression is important. There are two scenarios:

1. An ad is requested and visualised.
2. An ad is requested and could be visualised, depending on rules like minimal screen size, device rotation, viewport, etc. The impression is counted later (i.e., deferred impression).

The second scenario results in two types of requests:

- An **ad** request
- A **track** request

An ad request is a request that returns an ad, the first scenario. The second scenario executes a tracking request after the initial ad request. Therefore, it acts as an impression request.

<p class="callout info">If you are using track requests to measure impressions, these numbers will build up your inventory. The actual inventory is reported and used in forecasting.</p>

The above explanation about impression measurement applies to any tag (See [Implementation of the Adhese ad tags](https://documentation.adhese.org/books/inventory-management/page/how-to-deal-with-responsive-web-pages#bkmrk-the-implementation-o)).

The [Campaign actions report per position](https://documentation.adhese.org/books/reporting/page/documents-tab-client-reports#bkmrk-campaign-actions-rep) reports the number of requests, tracks, and other events.

<p class="callout info">Third-party discrepancies may arise when the publisher's report does not match the advertiser's report. Adhese counts an impression the moment the ad request is made, while the advertiser may count an impression when the ad is delivered to the user. For more information about third-party discrepancies, refer to [Troubleshooting](https://documentation.adhese.org/books/troubleshooting/page/general-troubleshooting).</p>

# Retention period of data

Historical summarised data, such as daily unique visitors, is available anytime and can be archived at the client's request. The data can be accessed through reporting, data mining, our API, or on-demand as a custom report.

However, there are some restrictions that you need to take into account:

- *Legislation*: certain information cannot be saved or must be deleted after a short period. The unique identification of users and personal and other data storage is subject to national, European and international legislation. Adhese can assist and advise publishers in the matter. However, it is the exclusive responsibility of the publisher to comply with the law and adequately inform users of their rights.
- *Common sense*: the amount of collected data can be huge for some (combinations of) parameters. You should consider whether storing such a large amount of data is necessary or desirable. The answer to this question will differ from client to client. Where there is a lot of data, it is often recommended that only aggregated data is maintained.

Predictions are usually based on historical data. The type of data saved, the frequency of saving (whether daily, hourly, or otherwise), and the duration of storage depend on the client's needs and strategy.

# BigQuery Reporting & Dataset Information

## Introduction

[Adhese Gateway](https://documentation.adhese.org/books/gateway/page/adhese-gateway) (GW) logs all actions taken while receiving a request from a device and returning a response milliseconds later. This data is made available to the Gateway users through [BigQuery](https://cloud.google.com/bigquery/) (BQ) tables that contain results per day and are updated at midnight.

The BQ tables are subject to change. Therefore, if you implement against them, you must be prepared to configure changes to the column structure. We will communicate planned changes prior to any deployments. However, we will not wait for every implementer to update.

## Access your Adhese data

As a customer, you can access your data in three different ways, each suitable for a specific use case. These are briefly described below.

- **Through a predefined Google Data Studio report**

Standard Data Studio templates are available to connect to your data source. This gives you immediate insight without any additional development.

- **Access to the Data Studio data source(s)**

This allows you to create your own custom dashboards, which are useful for reporting on specific cases not covered by the standard dashboards.

- **Direct access to the BigQuery table(s)**

The more advanced option is to query the dataset(s) or export them directly. This requires some technical knowledge.

If you would like to access your data in any of these ways, please contact [Adhese support](https://documentation.adhese.org/books/introduction/page/adhese-support) and provide a (Google) email address with which we can share access.

## Through a Google Data Studio template

At Adhese, we offer a variety of predefined dashboards that provide immediate insights into your data. An example is shown below.

[![looker studio.png](https://documentation.adhese.org/uploads/images/gallery/2024-07/scaled-1680-/AIBYuAdmYifKN93t-looker-studio.png)](https://documentation.adhese.org/uploads/images/gallery/2024-07/AIBYuAdmYifKN93t-looker-studio.png)

## Access to the Data Studio data source(s)

Another option is to get direct access to the underlying data sources. This method makes it possible to create any custom report or dashboard. When working with the data, it is important to understand the different columns and how to interpret them.

## Direct access to the BigQuery table(s)

This is the more advanced option for your data team. It allows them to query the data sources directly or export the data to their own data solution.

The following steps are required to access the BigQuery source:

1. Contact [Adhese support](https://documentation.adhese.org/books/introduction/page/adhese-support) and provide a Google email address connected to a [Google Cloud account](https://cloud.google.com/). We'll give the necessary permissions (BigQuery dataViewer, see role details [here](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataViewer)).
2. Once access is provided, you can query the different tables.

<p class="callout danger">Ensure you are **within your own Google Cloud project**; otherwise, errors will be returned.</p>

<p class="callout danger">Ensure you use the correct data location; by default, this is **europe-west2**.</p>

The table names are structured as follows: `adhese-cloud.${customer}.${table_name}`

Where `${customer}` is your Adhese account name, and `${table_name}` is the table you are trying to query. See details about the different tables below.

You can find your Adhese account name in the URL used to log in to the Adhese platform (e.g. [https://demo.adhese.org/](https://demo.adhese.org/))

A test query could look as follows:

[![afbeelding.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/p9yJCYBOKHGUN6XU-afbeelding.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/p9yJCYBOKHGUN6XU-afbeelding.png)

If this works, you should be able to use any [BigQuery functionality](https://cloud.google.com/bigquery/docs/query-overview) to further process your data.

If you still have any questions, please don't hesitate to contact us at [Adhese support](https://documentation.adhese.org/books/introduction/page/adhese-support).

## Overview of Collected Data

Two sets of data are collected during the lifetime of a single GW request/response: the **Media set** and the **Market set**.

The Media set contains all the information about the request, including the device it originated from, the content associated with it, the user associated with it (if any), and so on. The exact attributes of the media set differ for each GW account, depending on the available data and the context configured for that account.

The Market set contains the communication log between GW and the active markets for a given GW account. Market standards determine which attributes are available, though some are not available in all markets. The Market set contains all incoming bid responses from all active markets with advertiser and price information.

## Basic table schema

[![image.png](https://documentation.adhese.org/uploads/images/gallery/2026-01/scaled-1680-/Bl07xLtyesL9npM5-image.png)](https://documentation.adhese.org/uploads/images/gallery/2026-01/Bl07xLtyesL9npM5-image.png)

## Table descriptions

#### slots\_extended

`adhese-cloud.${customer}.slots_extended`

This table contains the Market data set. Each row contains the number of bid responses per day, aggregated in latency buckets of 10ms.

<div id="bkmrk-show-table-field-nam"><details id="bkmrk-show-table"><summary>Show table</summary>

<table style="width: 100%;"><tbody><tr><td style="width: 14.9567%;">**Field name**</td><td style="width: 10.5062%;">**Type**</td><td style="width: 11.4963%;">**Mode**</td><td style="width: 63.0408%;">**Description**</td></tr><tr><td style="width: 14.9567%;">date</td><td style="width: 10.5062%;">DATE</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The date on which these bid requests were received.</td></tr><tr><td style="width: 14.9567%;">slot</td><td style="width: 10.5062%;">RECORD</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;"> </td></tr><tr><td style="width: 14.9567%;">slot. id</td><td style="width: 10.5062%;">INTEGER</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The ID of the slot the bid request was made from.</td></tr><tr><td style="width: 14.9567%;">slot. code</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The code of the slot the bid request was made from.</td></tr><tr><td style="width: 14.9567%;">publication</td><td style="width: 10.5062%;">RECORD</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;"> </td></tr><tr><td style="width: 14.9567%;">publication. name</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The publication name in the Adhese dbase.</td></tr><tr><td style="width: 14.9567%;">publication. url</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The publication URL in the Adhese dbase.</td></tr><tr><td style="width: 14.9567%;">format</td><td style="width: 10.5062%;">RECORD</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;"> </td></tr><tr><td style="width: 14.9567%;">format. name</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The format name in the Adhese database.</td></tr><tr><td style="width: 14.9567%;">format. width</td><td style="width: 10.5062%;">INTEGER</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The format width in pixels for this Bid Response.</td></tr><tr><td style="width: 14.9567%;">format. height</td><td style="width: 10.5062%;">INTEGER</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The format height in pixels for this Bid Response.</td></tr><tr><td style="width: 14.9567%;">publisher</td><td style="width: 10.5062%;">RECORD</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;"> </td></tr><tr><td style="width: 14.9567%;">publisher. name</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The name of this location in the Adhese dbase.</td></tr><tr><td style="width: 14.9567%;">market</td><td style="width: 10.5062%;">RECORD</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;"> </td></tr><tr><td style="width: 14.9567%;">market. name</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The market instance name as known in the Adhese configuration.</td></tr><tr><td style="width: 14.9567%;">market. currency</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The currency this market uses for bid responses.</td></tr><tr><td style="width: 14.9567%;">bid</td><td style="width: 10.5062%;">RECORD</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;"> </td></tr><tr><td style="width: 14.9567%;">bid. count</td><td style="width: 10.5062%;">INTEGER</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The number of bid responses for this record.</td></tr><tr><td style="width: 14.9567%;">bid. amount</td><td style="width: 10.5062%;">FLOAT</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The total value of the bid responses for this record in market.currency.</td></tr><tr><td style="width: 14.9567%;">bid. winning</td><td style="width: 10.5062%;">RECORD</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;"> </td></tr><tr><td style="width: 14.9567%;">bid.winning. count</td><td style="width: 10.5062%;">INTEGER</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The number of winning bid responses for this record.</td></tr><tr><td style="width: 14.9567%;">bid.winning. amount</td><td style="width: 10.5062%;">FLOAT</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The total value of the winning bid responses for this record in market.currency.</td></tr><tr><td style="width: 14.9567%;">bid. tracked</td><td style="width: 10.5062%;">RECORD</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;"> </td></tr><tr><td style="width: 14.9567%;">bid.tracked. count</td><td style="width: 10.5062%;">INTEGER</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The number of rendered bid responses for this record. (aka paid impressions)</td></tr><tr><td style="width: 14.9567%;">bid.tracked. amount</td><td style="width: 10.5062%;">FLOAT</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The total value of the rendered bid responses for this record in market.currency.</td></tr><tr><td style="width: 14.9567%;">seatId</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The seat ID as known by this market.</td></tr><tr><td style="width: 14.9567%;">domain</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The "OpenRTB domain" field, containing the domain of the advertising party or brand for this Bid Response.</td></tr><tr><td style="width: 14.9567%;">dealId</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The deal ID as known by this market.</td></tr><tr><td style="width: 14.9567%;">crId</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The creative ID as known by this market.</td></tr><tr><td style="width: 14.9567%;">discountRate</td><td style="width: 10.5062%;">FLOAT</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The value of the multiplier applied to this bid response.</td></tr><tr><td style="width: 14.9567%;">exchangeRate</td><td style="width: 10.5062%;">FLOAT</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The value of the exchange rate at the moment of the bid between market.currency and EUR.</td></tr><tr><td style="width: 14.9567%;">latency</td><td style="width: 10.5062%;">INTEGER</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The value of the latency bucket for these bids.</td></tr><tr><td style="width: 14.9567%;">deviceType</td><td style="width: 10.5062%;">STRING</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">The label of the device that generated the bid request (phone, desktop, tablet, tv).</td></tr><tr><td style="width: 14.9567%;">consent</td><td style="width: 10.5062%;">BOOLEAN</td><td style="width: 11.4963%;">NULLABLE</td><td style="width: 63.0408%;">Indication of consent for the bid requests to this market.</td></tr></tbody></table>

</details></div>#### reduced\_access\_log

`adhese-cloud.${customer}.reduced_access_log`

This table contains direct ad server and campaign data. It can be joined with the metadata tables below.

<div id="bkmrk-show-table-field-nam-1"><details id="bkmrk-show-table-field-nam-2"><summary>Show table</summary>

<table style="width: 100%;"><tbody><tr><th style="width: 14.4634%;">**Field name**</th><th style="width: 11.989%;">**Type**</th><th style="width: 11.4957%;">**Mode**</th><th style="width: 62.0519%;">**Description**</th></tr><tr><td style="width: 14.4634%;">date</td><td style="width: 11.989%;">DATE</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">The date the request was made</td></tr><tr><td style="width: 14.4634%;">timestamp</td><td style="width: 11.989%;">TIMESTAMP</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">Timestamp (grouped per hour) on which the request was made </td></tr><tr><td style="width: 14.4634%;">creative\_id</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">The ID of the creative that was delivered</td></tr><tr><td style="width: 14.4634%;">slot\_id</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">The ID of the slot for which the request was made</td></tr><tr><td style="width: 14.4634%;">booking\_id</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">The ID of the booking that was delivered</td></tr><tr><td style="width: 14.4634%;">campaign\_id</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">The ID of the campaign that was delivered</td></tr><tr><td style="width: 14.4634%;">impression\_count</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">Each time an ad is requested, one impression is counted. This **does not** correspond to an IAB paid impression.</td></tr><tr><td style="width: 14.4634%;">track\_count</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">When an ad is rendered on a page, 1 track is counted. This corresponds to an IAB paid impression.</td></tr><tr><td style="width: 14.4634%;">raw\_track\_count</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">Raw amount of tracked impressions that were made before filtering out the duplicates</td></tr><tr><td style="width: 14.4634%;">click\_count</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">Each time a user clicks on an ad, 1 click is counted</td></tr><tr><td style="width: 14.4634%;">raw\_click\_count</td><td style="width: 11.989%;">INTEGER</td><td style="width: 11.4957%;">NULLABLE</td><td style="width: 62.0519%;">Raw amount of clicks that were made before filtering out the duplicates</td></tr><tr><td style="width: 14.4634%;">actions</td><td style="width: 11.989%;">STRING</td><td style="width: 11.4957%;">REPEATED</td><td style="width: 62.0519%;">A viewable impression is counted when a ‘Adhese\_IABview’ or 'mrc\_viewable' action is present.</td></tr><tr><td style="width: 14.4634%;">targets</td><td style="width: 11.989%;">RECORD</td><td style="width: 11.4957%;">REQUIRED</td><td style="width: 62.0519%;">Contains the default and custom parameters that are set up. Contact the support team for more information about each field under targets. </td></tr></tbody></table>

</details></div>### Metadata tables

Updated daily with metadata for primary keys in the reduced\_access\_log table.

#### meta\_slots

`adhese-cloud.${customer}.meta_slots`

<p class="callout info">Extra information regarding slots (= positions) can be found [here](https://documentation.adhese.org/books/inventory-management/page/positions)</p>

<div id="bkmrk-show-table-field-nam-3"><details id="bkmrk-show-table-field-nam-4"><summary>Show table</summary>

<table><tbody><tr><th>**Field name**</th><th>**Type**</th><th>**Mode**</th><th>**Description**</th></tr><tr><td>date</td><td>DATE</td><td>NULLABLE</td><td> </td></tr><tr><td>id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>name</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>url</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>position\_type</td><td>STRING</td><td>NULLABLE</td><td>position type as defined when creating a slot</td></tr><tr><td>template\_file</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>location\_id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>location\_name</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>location\_url</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>location\_code</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>publication\_id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>publication\_name</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>publication\_url</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>publisher\_id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>publisher\_name</td><td>STRING</td><td>NULLABLE</td><td> </td></tr></tbody></table>

</details></div>#### meta\_format

`adhese-cloud.${customer}.meta_format`

<p class="callout info">Extra information regarding formats can be found [here](https://documentation.adhese.org/books/inventory-management/page/formats)</p>

<div id="bkmrk-show-table-field-nam-5"><details id="bkmrk-show-table-field-nam-6"><summary>Show table</summary>

<table><tbody><tr><th>**Field name**</th><th>**Type**</th><th>**Mode**</th><th>**Description**</th></tr><tr><td>date</td><td>DATE</td><td>NULLABLE</td><td> </td></tr><tr><td>id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>name</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>width</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>height</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>code\_tag</td><td>STRING</td><td>NULLABLE</td><td>Code used to request the format</td></tr><tr><td>code\_book</td><td>STRING</td><td>NULLABLE</td><td>Code used to link formats (subformat setup)</td></tr><tr><td>code\_import</td><td>STRING</td><td>NULLABLE</td><td> </td></tr></tbody></table>

</details></div>#### meta\_creatives

`adhese-cloud.${customer}.meta_creatives`

<p class="callout info">Extra information regarding creatives can be found [here](https://documentation.adhese.org/books/campaign-management/page/creatives)</p>

<div id="bkmrk-show-table-field-nam-7"><details id="bkmrk-show-table-field-nam-8"><summary>Show table</summary>

<table style="width: 84.8148%;"><tbody><tr><th style="width: 23.6152%;">**Field name**</th><th style="width: 17.7843%;">**Type**</th><th style="width: 17.7906%;">**Mode**</th><th style="width: 40.81%;">**Description**</th></tr><tr><td style="width: 23.6152%;">date</td><td style="width: 17.7843%;">DATE</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">id</td><td style="width: 17.7843%;">INTEGER</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">name</td><td style="width: 17.7843%;">STRING</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">type</td><td style="width: 17.7843%;">STRING</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">format\_name</td><td style="width: 17.7843%;">STRING</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">format\_width</td><td style="width: 17.7843%;">INTEGER</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">format\_height</td><td style="width: 17.7843%;">INTEGER</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">creative\_width</td><td style="width: 17.7843%;">INTEGER</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">creative\_height</td><td style="width: 17.7843%;">INTEGER</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">creative\_url</td><td style="width: 17.7843%;">STRING</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;"> </td></tr><tr><td style="width: 23.6152%;">size\_kb</td><td style="width: 17.7843%;">INTEGER</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;">size restriction if configured</td></tr><tr><td style="width: 23.6152%;">advar\_fields</td><td style="width: 17.7843%;">RECORD</td><td style="width: 17.7906%;">REPEATED</td><td style="width: 40.81%;">advar template fields</td></tr><tr><td style="width: 23.6152%;">advar\_file</td><td style="width: 17.7843%;">STRING</td><td style="width: 17.7906%;">NULLABLE</td><td style="width: 40.81%;">chosen advar template</td></tr></tbody></table>

<p class="callout warning">size\_kb does not contain the actual size of the uploaded files within the creative. </p>

</details></div>#### meta\_booking

`adhese-cloud.${customer}.meta_booking`

<p class="callout info">Extra information regarding bookings can be found [here](https://documentation.adhese.org/books/campaign-management/page/bookings)</p>

<div id="bkmrk-show-table-meta_book"><details id="bkmrk-show-table-meta_book-1"><summary>Show table</summary>

<table><tbody><tr><th class="align-left">**meta\_booking**</th><th> </th><th> </th><th>**Description**</th></tr><tr><td>**Field name**</td><td>**Type**</td><td>**Mode**</td><td> </td></tr><tr><td>date</td><td>DAT</td><td>NULLABLE</td><td> </td></tr><tr><td>id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>campaign\_id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>slot\_id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>start</td><td>TIMESTAMP</td><td>NULLABLE</td><td> </td></tr><tr><td>end</td><td>TIMESTAMP</td><td>NULLABLE</td><td> </td></tr><tr><td>delivery\_method</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>to\_reach\_unit</td><td>STRING</td><td>NULLABLE</td><td>e.g. impressions/clicks</td></tr><tr><td>to\_reach\_volume</td><td>INTEGER</td><td>NULLABLE</td><td>amount of units to reach</td></tr><tr><td>priority</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>capping</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>delivery\_limit</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>pricing\_type</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>unit\_price</td><td>FLOAT</td><td>NULLABLE</td><td> </td></tr><tr><td>external\_key</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>comment</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>daily\_start</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>daily\_end</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>exclusive</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr><tr><td>compete\_with\_rtb</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr><tr><td>together\_with</td><td>INTEGER</td><td>REPEATED</td><td> </td></tr><tr><td>active</td><td>RECORD</td><td>NULLABLE</td><td> </td></tr><tr><td>active.monday</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr><tr><td>active.tuesday</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr><tr><td>active.wednesday</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr><tr><td>active.thursday</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr><tr><td>active.friday</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr><tr><td>active.saturday</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr><tr><td>active.sunday</td><td>BOOLEAN</td><td>NULLABLE</td><td> </td></tr></tbody></table>

</details></div>#### meta\_campaign

`adhese-cloud.${customer}.meta_campaign`

<p class="callout info">Extra information regarding campaigns can be found [here](https://documentation.adhese.org/books/campaign-management/page/campaigns)</p>

<div id="bkmrk-show-table-field-nam-9"><details id="bkmrk-show-table-field-nam-10"><summary>Show table</summary>

<table><tbody><tr><th>**Field name**</th><th>**Type**</th><th>**Mode**</th><th>**Description**</th></tr><tr><td>date</td><td>DATE</td><td>NULLABLE</td><td> </td></tr><tr><td>id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>name</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>priority</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>created\_by</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>to\_reach\_unit</td><td>STRING</td><td>NULLABLE</td><td>e.g. impressions/clicks</td></tr><tr><td>to\_reach\_volume</td><td>INTEGER</td><td>NULLABLE</td><td>amount of units to reach</td></tr><tr><td>advertiser\_company</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>invoice\_company</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>media\_company</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>intermediary\_company</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>client\_contacts</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>internal\_id</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>external\_id</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>account\_managers</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>public\_comment</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>internal\_comment</td><td>STRING</td><td>NULLABLE</td><td> </td></tr></tbody></table>

</details></div>#### meta\_booking\_targets

`adhese-cloud.${customer}.meta_booking_targets`

Contains for each booking the target group, target label and target code that is used in that booking.

<p class="callout info">Extra information regarding targeting can be found [here](https://documentation.adhese.org/books/inventory-management/page/targeting)</p>

<div id="bkmrk-show-table-field-nam-11"><details id="bkmrk-show-table-field-nam-12"><summary>Show table</summary>

<table><tbody><tr><th>**Field name**</th><th>**Type**</th><th>**Mode**</th><th>**Description**</th></tr><tr><td>date</td><td>DATE</td><td>NULLABLE</td><td> </td></tr><tr><td>booking\_id</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr><tr><td>type</td><td>STRING</td><td>NULLABLE</td><td>target name</td></tr><tr><td>type\_code</td><td>STRING</td><td>NULLABLE</td><td>target prefix</td></tr><tr><td>name</td><td>STRING</td><td>NULLABLE</td><td>target value name</td></tr><tr><td>code</td><td>STRING</td><td>NULLABLE</td><td>target value code</td></tr></tbody></table>

</details></div>#### meta\_dooh\_player (not available)

`adhese-cloud.${customer}.meta_dooh_player`

<details id="bkmrk-show-table-field-nam-13"><summary>Show table</summary>

<table style="width: 89.1358%; height: 327.8px;"><tbody><tr style="height: 29.8px;"><th style="width: 20.6657%; height: 29.8px;">**Field name**</th><th style="width: 10.4022%; height: 29.8px;">**Type**</th><th style="width: 12.0643%; height: 29.8px;">**Mode**</th><th style="width: 56.8678%; height: 29.8px;">**Description**</th></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">id</td><td style="width: 10.4022%; height: 29.8px;">INTEGER</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;"> </td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">date</td><td style="width: 10.4022%; height: 29.8px;">DATE</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;">The date on which these bid requests were received.</td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">store\_city</td><td style="width: 10.4022%; height: 29.8px;">STRING</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;"> </td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">store\_id</td><td style="width: 10.4022%; height: 29.8px;">STRING</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;"> </td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">store\_formula</td><td style="width: 10.4022%; height: 29.8px;">STRING</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;">Type of store.</td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">store\_channel</td><td style="width: 10.4022%; height: 29.8px;">STRING</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;">  
</td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">store\_category</td><td style="width: 10.4022%; height: 29.8px;">STRING</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;">  
</td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">store\_latlong</td><td style="width: 10.4022%; height: 29.8px;">STRING</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;">Latitudinal and longitudinal coordinates of the store.</td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">store\_adress</td><td style="width: 10.4022%; height: 29.8px;">STRING</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;">  
</td></tr><tr style="height: 29.8px;"><td style="width: 20.6657%; height: 29.8px;">store\_postal\_code</td><td style="width: 10.4022%; height: 29.8px;">STRING</td><td style="width: 12.0643%; height: 29.8px;">NULLABLE</td><td style="width: 56.8678%; height: 29.8px;">  
</td></tr></tbody></table>

</details>### Other

#### error\_log

`adhese-cloud.${customer}.error_log`

This is a generic table used to store errors. For instance, it can be employed to identify unmatched slot requests.

<div id="bkmrk-show-table-field-nam-14"><details id="bkmrk-show-table-field-nam-15"><summary>Show table</summary>

<table><tbody><tr><th>**Field name**</th><th>**Type**</th><th>**Mode**</th><th>**Description**</th></tr><tr><td>date</td><td>DATE</td><td>NULLABLE</td><td> </td></tr><tr><td>error\_type</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>message</td><td>STRING</td><td>NULLABLE</td><td> </td></tr><tr><td>count</td><td>INTEGER</td><td>NULLABLE</td><td> </td></tr></tbody></table>

</details></div>Possible error types

<table border="1" id="bkmrk-slot_id_unknown-the-" style="border-collapse: collapse; width: 100%; height: 350.8px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 46.6px;"><td style="height: 46.6px;">SLOT\_ID\_UNKNOWN</td><td style="height: 46.6px;">The code of the requested position in the ad request does not match a position in Adhese</td></tr><tr style="height: 44.6px;"><td style="height: 44.6px;"><div _ngcontent-ng-c3164840244="" aria-colindex="3" aria-rowspan="1" class="cell show odd" role="cell" sandboxuid="0" tabindex="0">CREATIVES_ID_TOO_LONG</div><div _ngcontent-ng-c3164840244="" class="resizer" sandboxuid="0">  
</div></td><td style="height: 44.6px;">The creative identifier in the click tracking URL is not a valid ID.</td></tr><tr style="height: 42.4px;"><td style="height: 42.4px;">SLOT\_ID\_UNKNOWN

</td><td style="height: 42.4px;">sl target could not be matched to a valid slot id</td></tr><tr style="height: 47.6px;"><td style="height: 47.6px;"><div _ngcontent-ng-c3164840244="" aria-colindex="3" aria-rowspan="1" class="cell show odd" role="cell" sandboxuid="0" tabindex="0">XANDR_SLOT_ID_UNKNOWN</div></td><td style="height: 47.6px;">sl target could not be matched to a valid slot id and starts with xandr\_</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;"><div _ngcontent-ng-c3164840244="" aria-colindex="3" aria-rowspan="1" class="cell show odd" role="cell" sandboxuid="0" tabindex="0">BAD_CLICK_URL</div></td><td style="height: 46.6px;">An invalid value was found in the click url. Related to the click part, e.g. /ad695511-11419</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;"><div _ngcontent-ng-c3164840244="" aria-colindex="3" aria-rowspan="1" class="cell show odd" role="cell" sandboxuid="0" tabindex="0">BAD_TRACK_URL</div></td><td style="height: 46.6px;">An invalid value was found in the track url. Related to the track part, e.g. 581025-mrc\_50\_1s.track</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;"><div _ngcontent-ng-c3164840244="" aria-colindex="3" aria-rowspan="1" class="cell show odd" role="cell" sandboxuid="0" tabindex="0">  
REQUEST_PARAMETER_DUPLICATE</div></td><td style="height: 46.6px;">e.g more than one sl parameter was found</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;"><div _ngcontent-ng-c3164840244="" aria-colindex="3" aria-rowspan="1" class="cell show odd" role="cell" sandboxuid="0" tabindex="0">REQUEST_PARAMETER_MISSING</div></td><td style="height: 29.8px;">e.g no sl parameter was found</td></tr></tbody></table>