# Gateway

# Adhese Gateway

The Adhese Gateway lets direct sales compete with real-time bidding (RTB) systems. – optimising revenue from every advertising space in real-time.

Before explaining how to enable competition with RTB revenue in the Adhese interface, we will briefly describe the Adhese Gateway itself.

Publishers typically determine whether direct revenue or third-party RTB revenue takes priority. This cascade structure results in an order of precedence where direct sales or in-house campaigns always take priority. The ad space is offered to the next priority level only if the other priority level has no ad to offer. The result is a situation in which there is no competition between the different priority levels – failing to take advantage of potentially higher revenue.

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

<p class="callout info">When the gateway receives multiple bids with the same price (and no bid with a higher price), the bids will be put in a reversed alphabetical order base on the name of the market place. The first bidder in line will then win the bid.</p>

The Adhese Gateway is different from the cascading structure. The Gateway allows the two revenue streams to be weighed up against one another so it can select the most economical offer. The SSP receives the original price from direct sales as a proxy bid. This stimulates higher bids as it gives a known value for the impression. In addition, it is possible to specify a dynamic floor price (e.g. based on time or known user data) when a proxy bid from direct sales is unavailable.

[![adhese_gateway2.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/4nziRPNaTGdwBVl2-adhese-gateway2.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/4nziRPNaTGdwBVl2-adhese-gateway2.png)

The Adhese Gateway offers a couple of advantages. First, it reduces latency and bandwidth usage. The Gateway ensures that communication with an SSP takes place server-side by applying a strict time-out, so there is no waiting time when loading ads from a third party. Besides, the standardised request-response structure and built-in time-out allow easy implementation across an entire network and across all devices and platforms.

## Enable competition with RTB revenue in the Adhese interface

<p class="callout info">Optional, depends on your Adhese configuration.</p>

The Adhese Gateway allows users to easily specify within the interface whether a campaign and/or booking(s) should compete with RTB revenue:

- For campaigns, go to the *Header* tab of the campaign for which you want to implement competition with RTB and enable the **RTB** checkbox. Click [here](https://documentation.adhese.org/books/campaign-management/page/campaigns#bkmrk-add-a-campaign) for more information.
- For bookings, go to the *Header* tab of the booking for which you want to implement competition with RTB and enable the **RTB** checkbox under the *How* section. Click [here](https://documentation.adhese.org/books/campaign-management/page/bookings#bkmrk-rtb) for more information.

# Gateway Debug Logging

Adhese Gateway enables you to run requests in 'debug' mode, allowing you to view all Bid Requests and Responses passing through the gateway for a specific browser.  
To enable debug-logging, set a debugKey cookie by following the steps below.

1. Open an ad request as executed on your pages in a separate tab and paste the following code into the Javascript console:
    
    ```javascript
    document.cookie = "debugKey=YourName; domain=.adhese.com; path=/; Secure; SameSite=None";
    
    ```

[![gateway_debug_logging1.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/g89F83o4iEaoH2c4-gateway-debug-logging1.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/g89F83o4iEaoH2c4-gateway-debug-logging1.png)

2. Refresh the page where that ad request is used and check if the cookie is present in the request header.
    
    [![gateway_debug_logging2.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/U3FCMPoFaEKjLNY4-gateway-debug-logging2.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/U3FCMPoFaEKjLNY4-gateway-debug-logging2.png)
3. You have now entered debug mode and can keep surfing with the same browser window.
4. Open https://&lt;your-account&gt;.adhese.org/tools/frontail to see the log information.
5. You can filter the requests on the "YourName" you have entered in the cookie.  
    If you do not know your password to access the debug tool, don't hesitate to contact our support dept.

[![gateway_debug_logging3.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/xMamC4nmkacO6OAr-gateway-debug-logging3.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/xMamC4nmkacO6OAr-gateway-debug-logging3.png)

# Gateway configuration

# Wikan

<span style="white-space: pre-wrap;">Wikan is a web-based application that is used to modify the configuration of the </span>****Adhese Gateway****.

You can access Wikan at:  
**`<strong class="editor-theme-bold editor-theme-code">https://[customer].adhese.org/tools/cubeui/mappings</strong>`**

[![image.png](https://documentation.adhese.org/uploads/images/gallery/2024-09/scaled-1680-/PNofr8jCWKhZTFcb-image.png)](https://documentation.adhese.org/uploads/images/gallery/2024-09/PNofr8jCWKhZTFcb-image.png)

## Searching and filtering

<span style="white-space: pre-wrap;">Click the light grey bar labelled </span>****Search****<span style="white-space: pre-wrap;"> to expand the search form:</span>

[![blur_search.png](https://documentation.adhese.org/uploads/images/gallery/2026-03/scaled-1680-/ZGIx1wI4CFELJLpl-blur-search.png)](https://documentation.adhese.org/uploads/images/gallery/2026-03/ZGIx1wI4CFELJLpl-blur-search.png)

You can perform:

<div id="bkmrk-simple-search-%28publi">- **Simple Search** (Publication, Location, Format)
- **Advanced Search**

</div>To filter the table, fill in one or more fields and click **Search**. Empty fields are ignored.

In **Advanced Search**:

<div id="bkmrk-the-radio-buttons-in"><div>- The radio buttons in both the left and right sections default to **Either**, meaning the filter does not consider medium (Site/App) or content type (Banner/Video) unless you change them.
- Selecting any checkbox under **Market Search** reveals additional market‑specific fields.

</div></div>[![image.png](https://documentation.adhese.org/uploads/images/gallery/2026-03/scaled-1680-/vMbkuhSJ6sJHYx8N-image.png)](https://documentation.adhese.org/uploads/images/gallery/2026-03/vMbkuhSJ6sJHYx8N-image.png)

<span style="white-space: pre-wrap;">Click </span>****Search****<span style="white-space: pre-wrap;"> to apply your filters.</span>  
<span style="white-space: pre-wrap;">Click </span>****Clear****<span style="white-space: pre-wrap;"> to reset all fields and remove the current filter.</span>

## Editing rows

<span style="white-space: pre-wrap;">Click the grey bar labelled </span>****Editing****<span style="white-space: pre-wrap;"> to open the Editing form</span>

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

All fields are disabled by default (shown in grey). Enable a field by clicking the blue toggle next to it.

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

A disabled field is ignored when applying edits:

- If the field already has a value, it will remain unchanged.
- If the field is empty, it will not be overwritten with an empty value.

This prevents accidental data removal.

You can also enable market‑specific sections by selecting their checkboxes

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

#### Editing multiple rows

1. Select one or more rows in the table
2. Click **Edit**
3. Modify the enabled fields
4. Click **Apply**

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

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

#### Editing a single row

1. Expand the row
2. Click **Edit**
3. Update the desired fields
4. Click **Apply**

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

Click the Edit button, and for instance, now change the name field

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

Once you click apply the changes will take effect

#### Saving and Publishing Changes

<div id="bkmrk-click-save-mapping-%28">Click **Save Mapping** (top) to save your edits to the mapping files.  
This **saves your changes but does not publish them to production**.</div>[![image.png](https://documentation.adhese.org/uploads/images/gallery/2026-03/scaled-1680-/WH5qjjg0Io6dlIwu-image.png)](https://documentation.adhese.org/uploads/images/gallery/2026-03/WH5qjjg0Io6dlIwu-image.png)

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

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

#### Publish

After saving, click **Publish** to push your changes to the cloud.  
You must be in **Write Mode** to publish.

Enter a short description and click **Publish**.  
This final step deploys the changes to production and ends your Write Mode session.

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

## Adding Rows

**Click**<span style="white-space: pre-wrap;"> the black bar labelled </span>**Add New Row** to open that section.

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

<div id="bkmrk-most-fields-are-disa">Most fields are disabled by default and can be enabled individually.  
</div>However:

- Required fields are enabled automatically and cannot be disabled.
- Each new row must include at least one **market instance**. If adding a row with an existing position ID, ensure **device type** and **content type** differ from the original.
- **Width** and **Height** are required unless the content type is neither Banner nor Video.

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

After completing the form, click **Apply**. A confirmation notification will appear.

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

## Save your changes

<span style="white-space: pre-wrap;">To permanently save your changes, click the </span>****Save Mapping****<span style="white-space: pre-wrap;"> button in the top-middle of the Wikan UI.</span>  
<span style="white-space: pre-wrap;">Please note that this does </span>****not****<span style="white-space: pre-wrap;"> publish your changes to production; it only saves your progress.</span>

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

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

## Publish your changes

<span style="white-space: pre-wrap;">As your final step, you need to </span>****Publish****<span style="white-space: pre-wrap;"> to push your changes to the cloud. To push your changes, you need to be in </span>****Write mode****<span style="white-space: pre-wrap;"> and </span>****click the Publish button****<span style="white-space: pre-wrap;"> in the top right corner; this will publish the changes and end your </span>****Write mode****<span style="white-space: pre-wrap;"> session.</span>

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

## Importing and Exporting Mappings

### Export

Click **Export as XLSX** to download all mapping data as a spreadsheet.  
The exported format matches the structure used for importing.

[![importing_and_exporting_mappings_with_wikan1.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/7LuEsjO23iRwJMZy-importing-and-exporting-mappings-with-wikan1.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/7LuEsjO23iRwJMZy-importing-and-exporting-mappings-with-wikan1.png)

### Import

Click **Import XLSX**, select your file, and click **Submit**.

If the import succeeds:

<div id="bkmrk-new-rows-are-added-e">- New rows are added
- Existing rows are updated  
    A notification in the bottom‑right shows the number of changes made.

</div>[![importing_and_exporting_mappings_with_wikan2.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/C91MvMpyVBHvqZ6Z-importing-and-exporting-mappings-with-wikan2.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/C91MvMpyVBHvqZ6Z-importing-and-exporting-mappings-with-wikan2.png)

****Select****<span style="white-space: pre-wrap;"> the </span>****spreadsheet file****<span style="white-space: pre-wrap;"> and </span>****click Submit:****

[![importing_and_exporting_mappings_with_wikan3.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/npwReNesfpfQjwjr-importing-and-exporting-mappings-with-wikan3.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/npwReNesfpfQjwjr-importing-and-exporting-mappings-with-wikan3.png)

If the operation is successful, the system will add new rows and update existing ones. A notification in the bottom right corner indicates the number of new rows added and the number of existing rows updated.

[![importing_and_exporting_mappings_with_wikan4.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/U8amLE2L2dA1jKEi-importing-and-exporting-mappings-with-wikan4.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/U8amLE2L2dA1jKEi-importing-and-exporting-mappings-with-wikan4.png)

## Spreadsheet Fields and Examples

Below is a non-exhaustive list of the fields in an import/export spreadsheet.

<table id="bkmrk-field-name-type-exam" style="width: 78.1273%; height: 1157.8px;"><colgroup><col style="width: 25.5128%;"></col><col style="width: 13.7686%;"></col><col style="width: 28.2119%;"></col><col style="width: 32.5354%;"></col></colgroup><tbody><tr style="height: 29.8px;"><th class="align-left" style="height: 29.8px;">**Field name**

</th><th class="align-left" style="height: 29.8px;">**Type**

</th><th class="align-left" style="height: 29.8px;">**Example**

</th><th class="align-left" style="height: 29.8px;">**Key**

</th></tr><tr style="height: 29.8px;"><td style="width: 20.2808%; height: 29.8px;">Position Id

</td><td style="width: 49.142%; height: 29.8px;">Integer

</td><td style="width: 1.56006%; height: 29.8px;">55

</td><td style="width: 31.8253%; height: 29.8px;">profile.sl

</td></tr><tr style="height: 29.8px;"><td style="width: 20.2808%; height: 29.8px;">Device

</td><td style="width: 49.142%; height: 29.8px;">String

</td><td style="width: 1.56006%; height: 29.8px;">desktop

</td><td style="width: 31.8253%; height: 29.8px;">profile.dt

</td></tr><tr style="height: 29.8px;"><td style="width: 20.2808%; height: 29.8px;">Name

</td><td style="width: 49.142%; height: 29.8px;">String

</td><td style="width: 1.56006%; height: 29.8px;">Dominos

</td><td style="width: 31.8253%; height: 29.8px;">site.name, app.name

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">Categories

</td><td style="width: 49.142%; height: 47px;">String Array

</td><td style="width: 1.56006%; height: 47px;">IAB1-4,IAB2

</td><td style="width: 31.8253%; height: 47px;">site.cat, app.cat

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">Languages

</td><td style="width: 49.142%; height: 47px;">String Array

</td><td style="width: 1.56006%; height: 47px;">fr,nl

</td><td style="width: 31.8253%; height: 47px;">site.wlang, app.wlang

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">Domain

</td><td style="width: 49.142%; height: 47px;">String

</td><td style="width: 1.56006%; height: 47px;">test.com

</td><td style="width: 31.8253%; height: 47px;">site.domain, app.domain

</td></tr><tr style="height: 29.8px;"><td style="width: 20.2808%; height: 29.8px;">Page

</td><td style="width: 49.142%; height: 29.8px;">String

</td><td style="width: 1.56006%; height: 29.8px;">test.com/product

</td><td style="width: 31.8253%; height: 29.8px;">site.page

</td></tr><tr style="height: 29.8px;"><td style="width: 20.2808%; height: 29.8px;">site\_or\_app

</td><td style="width: 49.142%; height: 29.8px;">String

</td><td style="width: 1.56006%; height: 29.8px;">site

</td><td style="width: 31.8253%; height: 29.8px;"><span style="white-space: pre-wrap;"> </span>

</td></tr><tr style="height: 29.8px;"><td style="width: 20.2808%; height: 29.8px;">banner\_or\_video

</td><td style="width: 49.142%; height: 29.8px;">String

</td><td style="width: 1.56006%; height: 29.8px;">video

</td><td style="width: 31.8253%; height: 29.8px;"><span style="white-space: pre-wrap;"> </span>

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">Width

</td><td style="width: 49.142%; height: 47px;">Integer

</td><td style="width: 1.56006%; height: 47px;">300

</td><td style="width: 31.8253%; height: 47px;">imp.banner.w, imp.video.w

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">Height

</td><td style="width: 49.142%; height: 47px;">Integer

</td><td style="width: 1.56006%; height: 47px;">600

</td><td style="width: 31.8253%; height: 47px;">imp.banner.h, imp.video.h

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">Position

</td><td style="width: 49.142%; height: 47px;">Integer

</td><td style="width: 1.56006%; height: 47px;">4

</td><td style="width: 31.8253%; height: 47px;">imp.banner.pos, imp.video.pos

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">banner MIME Types

</td><td style="width: 49.142%; height: 47px;">String Array

</td><td style="width: 1.56006%; height: 47px;">image/jpg, image/gif

</td><td style="width: 31.8253%; height: 47px;">imp.banner.mimes

</td></tr><tr style="height: 57.8px;"><td style="width: 20.2808%; height: 57.8px;">video Delivery Methods

</td><td style="width: 49.142%; height: 57.8px;">Integer Array

</td><td style="width: 1.56006%; height: 57.8px;">4,5

</td><td style="width: 31.8253%; height: 57.8px;">imp.video.delivery

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">video Protocol Ids

</td><td style="width: 49.142%; height: 47px;">Integer Array

</td><td style="width: 1.56006%; height: 47px;">3,4

</td><td style="width: 31.8253%; height: 47px;">imp.video.protocols

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">video MIME Types

</td><td style="width: 49.142%; height: 47px;">String Array

</td><td style="width: 1.56006%; height: 47px;">video/mp4, video/flv

</td><td style="width: 31.8253%; height: 47px;">imp.video.mimes

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">video Min Duration

</td><td style="width: 49.142%; height: 47px;">Integer

</td><td style="width: 1.56006%; height: 47px;">3

</td><td style="width: 31.8253%; height: 47px;">imp.video.minduration

</td></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">video Max Duration

</td><td style="width: 49.142%; height: 47px;">Integer

</td><td style="width: 1.56006%; height: 47px;">30

</td><td style="width: 31.8253%; height: 47px;">imp.video.maxduration

</td></tr><tr style="height: 29.8px;"><td style="width: 20.2808%; height: 29.8px;">video Linearity

</td><td style="width: 49.142%; height: 29.8px;">Integer

</td><td style="width: 1.56006%; height: 29.8px;">1

</td><td style="width: 31.8253%; height: 29.8px;">imp.video.linearity

</td></tr><tr style="height: 57.8px;"><th colspan="4" style="width: 102.808%; height: 57.8px;">**All market instances share the following fields. Replace &lt;market instance&gt; with the appropriate market instance and its name.**

</th></tr><tr style="height: 47px;"><td style="width: 20.2808%; height: 47px;">&lt;market instance&gt; active

</td><td style="width: 49.142%; height: 47px;">Boolean

</td><td style="width: 1.56006%; height: 47px;">true

</td><td style="width: 31.8253%; height: 47px;"><span style="white-space: pre-wrap;"> </span>

</td></tr><tr style="height: 70px;"><td style="width: 20.2808%; height: 70px;">&lt;market instance&gt; site/app\_id

</td><td style="width: 49.142%; height: 70px;">String

</td><td style="width: 1.56006%; height: 70px;">3485929

</td><td style="width: 31.8253%; height: 70px;">site.id, app.id

</td></tr><tr style="height: 70px;"><td style="width: 20.2808%; height: 70px;">&lt;market instance&gt; banner Formats

</td><td style="width: 49.142%; height: 70px;">Format Array

</td><td style="width: 1.56006%; height: 70px;">300x240,400x200

</td><td style="width: 31.8253%; height: 70px;">imp.banner.format

</td></tr><tr style="height: 29.8px;"><th colspan="4" style="width: 102.808%; height: 29.8px;">**The following fields are specific to certain market instances.**

</th></tr><tr style="height: 70px;"><td style="width: 20.2808%; height: 70px;">&lt;market instance&gt; Custom Targets

</td><td style="width: 49.142%; height: 70px;">Multimap

</td><td style="width: 1.56006%; height: 70px;">value1=result2,value2=placeholder

</td><td style="width: 31.8253%; height: 70px;"><span style="white-space: pre-wrap;"> </span>

</td></tr></tbody></table>

# Gateway dashboard

The Adhese Gateway dashboard provides a comprehensive overview of various segments, including up-to-date information on your real-time bidding (RTB) revenue.

It is crucial to remember that this dashboard is made up of **unprocessed** data. The revenues and impressions shown should be regarded as estimates, and may differ from the final reports. The dashboard is helpful for keeping a pulse on inventory activity and revenue from RTB  
  
To reach the Gateway Dashboard, append */tools/dashboard* to your account's URL.   
Example: `https://accountname.adhese.org/tools/dashboard`

## Dashboard

## Introduction

The dashboard is intended for operational use. It provides an overview of market performance in real-time, enabling users to identify any changes to their Gateway setup. The screens are divided into various panes, which are described in more detail below.

### Overall View

[![gateway_dashboard1.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/3E2qsSkHsrmI5oTv-gateway-dashboard1.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/3E2qsSkHsrmI5oTv-gateway-dashboard1.png)

#### Gateway

Contains the overall total of incoming Ad requests and Tracked impressions.  
Tracked impressions are "win notifications" triggered by the client (browser or app) when an ad is rendered.

#### Total auction stats

- **Total Ecpm:** overall e-CPM, based on the total number of requests and net revenue generated by Tracked impressions
- **Total Auctioned Requests:** the total number of Ad requests that lead to at least one Bid request to a market
- **Total Volume:** number of bid responses received by Gateway
- **Total Revenue:** monetary value of the accepted bids
- **Total Tracked Revenue:** monetary value of the Tracked impressions - this corresponds with the paid revenue from all markets together

#### Fill rates

The fill rates pane contains a chart plotted per Market, showing three percentages over time. The charts give insight into how frequently a market bids, how often those bids win the auction, and how often the bid eventually gets shown to a user.

- **Bid fill rate:** how often does the demand partner return a bid? What is the chance that a particular demand partner will make a bid for a request? If the rate is around 20%, then on average, the Market will return a bid once every five requests. However, the bid does not necessarily win the auction.
- **Bid win rate:** how often does a demand partner **win** a Gateway auction? If the rate is 20%, the demand partner wins one out of five auctions.
- **Tracked rate**: how many won bids were eventually shown and tracked on the page? When a bid is won, it doesn't always get visualized on a page. Depending on the implementation of the website or app, bids may be collected before the actual page is visible. We add a unique tracker to a winning bid to create an insight into the number of winning bids that are eventually displayed. This tracker will be called when the user reaches the part of the page where the ad is displayed. The number represented here should be close to the number of "Paid Impressions" reported by the SSP's or DSP's in your dashboard.

### Per Market statistics

[![gateway_dashboard2.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/DA7GnP6jmpx4w875-gateway-dashboard2.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/DA7GnP6jmpx4w875-gateway-dashboard2.png)

For each active Market, five numbers are reported:

- *Ecpm:* overall eCPM for all bids (winning and non-winning) sent from this Market
- *Requests:* total number of bid requests sent to this Market
- *Volume:* number of bid responses this Market has sent to Gateway
- *Revenue:* monetary value of all bid responses (winning and non-winning), which indicates the budget a market had available for your inventory
- *Tracked revenue:* monetary value of the Tracked impressions, which indicates the actual budget a market will pay

### Inventory View

The Inventory View consists of three charts, giving insight into what portion of your inventory goes into auction and how much of your traffic has a user ID associated with it.

[![gateway_dashboard3.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/kiYt0uMjQGlHlJUI-gateway-dashboard3.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/kiYt0uMjQGlHlJUI-gateway-dashboard3.png)

#### Impressions Enabled

For each Market, a percentage indicates the amount of traffic (all formats combined) that is configured and sending bid requests.

#### Auctionability For RTB-Enabled Inventory

The percentage of inventory available for the RTB-enabled inventory. This figure is dependent on the 'RTB Compete' feature for direct [campaigns](https://documentation.adhese.org/books/campaign-management/page/campaigns#bkmrk-compete-with-rtb) and [bookings](https://documentation.adhese.org/books/campaign-management/page/bookings#bkmrk-how) in Adhese.

#### User Recognition

For each Market, a percentage indicates the number of Bid Requests containing a UUID (Universally Unique Identifier) recognized by the Market.

### Technical View

The technical view presents three charts giving insights into latency, errors, and timeouts.

[![gateway_dashboard4.png](https://documentation.adhese.org/uploads/images/gallery/2024-06/scaled-1680-/NnyNOdVDcPpmeopX-gateway-dashboard4.png)](https://documentation.adhese.org/uploads/images/gallery/2024-06/NnyNOdVDcPpmeopX-gateway-dashboard4.png)

#### Gateway Requests &amp; Latency

The *Gateway Requests &amp; Latency* graph shows the millisecond latency for all requests passing through the Gateway. When hovering over the graph, a tooltip displays the number of requests and their respective latency.

#### Timeouts

The *Timeout* line chart shows the percentage of timeouts for all auction and bid requests and the selected period.

#### Market errors

The *Market errors* line graph shows the percentage of errors for each involved party.

### Actions

#### Expand / Hide dashboard

The dashboard is divided into several sections, including *Auction revenue*, *Prices,* and *Technical*. All sections are expanded by default. To hide an expanded section, click the down arrow next to the section title. To reveal a hidden section, click the arrow next to the section's title.

#### Timespan

The dashboard period can be changed in a number of ways to reflect the most recent data. You can change the time range in the top right corner:

[![timerange.png](https://documentation.adhese.org/uploads/images/gallery/2025-04/scaled-1680-/RMCtNB17bC4sRJCP-timerange.png)](https://documentation.adhese.org/uploads/images/gallery/2025-04/RMCtNB17bC4sRJCP-timerange.png)

Clicking on the selected period displays a drop-down menu: there are several options:

[![ranges.png](https://documentation.adhese.org/uploads/images/gallery/2025-04/scaled-1680-/a5gbWR48vlfZQ7iL-ranges.png)](https://documentation.adhese.org/uploads/images/gallery/2025-04/a5gbWR48vlfZQ7iL-ranges.png)

Other relative time ranges include 'last 1 hour', 'last 24 hours', 'last 7 days', 'last 30 days', and so on. To set a new range, simply click on your preferred time range.

You can also change the period using the magnifying glass in the top right corner of the interface.

[![magnifying glass.png](https://documentation.adhese.org/uploads/images/gallery/2025-04/scaled-1680-/GoRRhTXBhCLbbKhB-magnifying-glass.png)](https://documentation.adhese.org/uploads/images/gallery/2025-04/GoRRhTXBhCLbbKhB-magnifying-glass.png)

- Click the left arrow to shift the timespan backwards
- Click the right arrow to shift the timespan forward

You can refresh the page by clicking on the circular arrow icon. If you click the down arrow next to it, a drop-down menu will appear. You can set a time for the page to refresh by clicking the desired refresh rate.

[![refresh dashboard.png](https://documentation.adhese.org/uploads/images/gallery/2025-04/scaled-1680-/8YNLwnSkTrmjtdng-refresh-dashboard.png)](https://documentation.adhese.org/uploads/images/gallery/2025-04/8YNLwnSkTrmjtdng-refresh-dashboard.png)

# Third-party ad servers and marketplaces



# List of third-party ad servers and marketplaces

Adhese offers a comprehensive solution for [integrating](https://documentation.adhese.org/books/integrations-and-delivery/page/integrations) and implementing third-party technologies, including real-time bidding systems and third-party ad servers. We are continuously expanding our partner network to bring our clients the latest innovations in digital marketing

Currently, Adhese integrates with the following **marketplaces**:

- adform
- adscience
- xandr
- improve (Azerion)
- justpremium
- kobler
- mobpro
- platform161
- proxistore
- pubmatic
- pubnative
- magnite
- sharethrough
- equativ
- spotx
- triplelift

[Contact Support](https://documentation.adhese.org/books/introduction/page/adhese-support) if you wish to implement a third-party ad server or integrate with a marketplace.

# New Page



# Xandr Inventory Setup Instructions

<p class="callout info">Please <a href="https://documentation.adhese.org/books/support/page/adhese-support">contact support</a> if you want to connect to Xandr as this connection requires setup and a change to your contract.</p>

Before you can traffic creatives to Xandr, you need to set up Xandr-specific inventory for a given account.

<p class="callout info">If necessary, the Support team can help you set this up using DB / UI-API automation scripts.</p>

1. Create a [publisher](https://documentation.adhese.org/books/inventory-management/page/publishers).
    
    
    - Part of: "Main Publisher" (or account name),
    - Company name: "Xandr",
    - Active: ✅.
        
        [![Schermafdruk van 2024-12-16 12-27-54.png](https://documentation.adhese.org/uploads/images/gallery/2024-12/scaled-1680-/KLd6pudVuQwd3mNT-schermafdruk-van-2024-12-16-12-27-54.png)](https://documentation.adhese.org/uploads/images/gallery/2024-12/KLd6pudVuQwd3mNT-schermafdruk-van-2024-12-16-12-27-54.png)
2. Create [publications](https://documentation.adhese.org/books/inventory-management/page/publications).
    
    
    - For each site domain or app bundle (app ID), there needs to be a publication.
    - Publisher: Xandr,
    - Active: yes,
    - Name: site domain or app name &amp; platform (like “Example.com - Android”) if this is an app-related publication,
    - Quote: *leave empty*
    - Website: domain name or matching the app ID, like “com.example.android or 123456789” if this is an app-related publication.
        
        [![Schermafdruk van 2024-12-16 13-13-36.png](https://documentation.adhese.org/uploads/images/gallery/2024-12/scaled-1680-/VtyV6ACCnHV4sY90-schermafdruk-van-2024-12-16-13-13-36.png)](https://documentation.adhese.org/uploads/images/gallery/2024-12/VtyV6ACCnHV4sY90-schermafdruk-van-2024-12-16-13-13-36.png)
3. Create a [location](https://documentation.adhese.org/books/inventory-management/page/locations).
    
    
    - For each publication, there needs to be a location.
    - Publication: *choose a publication created in step 2*,
    - Name: *same as the publication name*,
    - URL: "xandr_" and the site domain or app bundle, for example:
        
        
        - “xandr_example.com” for websites,
        - “xandr_com.example.android.news.mobilead” for Android apps,
        - “xandr_123456789” for iOS apps,
    - Channel: normal position (no group).
        
        [![Schermafdruk van 2024-12-16 13-16-39.png](https://documentation.adhese.org/uploads/images/gallery/2024-12/scaled-1680-/johwR5LuYmS88b1P-schermafdruk-van-2024-12-16-13-16-39.png)](https://documentation.adhese.org/uploads/images/gallery/2024-12/johwR5LuYmS88b1P-schermafdruk-van-2024-12-16-13-16-39.png)
4. Create missing formats and/or ensure existing formats can be used for Xandr bid requests.
    
    
    - Tag: yes,
    - Code tag &amp; Code book: the code tag of a format must contain a tag with numeric dimensions, e.g. "300x600". If another code tag is already defined, prepend the numeric tag with a semicolon, like "300x600;halfpage". Ensure the code book value is also updated (it supports semicolons as well).
    - See documentation on [formats](https://documentation.adhese.org/books/inventory-management/page/formats) for further reference.
        
        [![Schermafdruk van 2024-12-16 14-04-13.png](https://documentation.adhese.org/uploads/images/gallery/2024-12/scaled-1680-/ZhSB22dUS448Nqs9-schermafdruk-van-2024-12-16-14-04-13.png)](https://documentation.adhese.org/uploads/images/gallery/2024-12/ZhSB22dUS448Nqs9-schermafdruk-van-2024-12-16-14-04-13.png)
5. Create [positions](https://documentation.adhese.org/books/inventory-management/page/positions).
    
    
    - For each combination of the Xandr location and a format, there needs to be a position.
    - Location: *publication-name* [] *location-name*
    - Format: *required format, e.g. Halfpage, 300 * 600, 0kB*
    - Position Type: normal javascript
        
        [![Schermafdruk van 2024-12-16 14-08-04.png](https://documentation.adhese.org/uploads/images/gallery/2024-12/scaled-1680-/NcU5lKbR4FQVJh2o-schermafdruk-van-2024-12-16-14-08-04.png)](https://documentation.adhese.org/uploads/images/gallery/2024-12/NcU5lKbR4FQVJh2o-schermafdruk-van-2024-12-16-14-08-04.png)

### Supported formats currently supported with Xandr

<details id="bkmrk-expand-list---1800x1"><summary>Expand List</summary>

- 1800x1000  
- 970x1000  
- 970x250  
- 970x90  
- 728x90  
- 300x600  
- 320x500  
- 320x400  
- 320x240  
- 300x250  
- 160x600  
- 120x600  
- 320x100  
- 320x50  
- 300x100  
- 300x50  
- 320x480  
- 1x1  
- 1x2

</details>

# OpenRTB Native

IAB Specs: [OpenRTB API Specification Version 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) and [OpenRTB Native Ads Specification Final 1.2](https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf)

### OpenRTB Native

OpenRTB Native is a part of the OpenRTB specification and focuses on native advertising. Native ads match the form and function of the user experience in which they are placed, rather than being displayed in predefined, separate spaces. This makes native ads feel like content that is part of the page on which they are displayed.

Examples of native ads are:  
\- Sponsored products on a retailer's website  
\- Text ads or video content embedded in a newspaper website within the articles  
\- Video, product ads, etc... interspersed in social media feeds

### OpenRTB Native in Adhese

**OpenRTB Native** is supported as an advar template in the Adhese UI. It is crucial that the structure of the template follows the specification.   
In the Adhese backend, we check the ad body for the string`{\"native\":{` to determine whether this is an OpenRTB Native ad type, to prevent some characters from being escaped, which would break the JSON structure.   
In the preprocessor, we check for `{"native":{` string to determine the ad native type.   
The body is string-encoded JSON. As mentioned in the specifications, we plan to support direct object representation in a future implementation.

Example of the advar template body `openrtb_native.json`

`{\"native\":{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"img\":{\"w\":\"<ADHESE_WIDTH_LARGE>\",\"h\":\"<ADHESE_HEIGHT_LARGE>\",\"url\":\"<ADHESE_SWF_SRC_2ND>\"}}],\"link\":{\"url\":\"<DESTINATION_LINK>\"}}}`

<div class="code-block  cc-1lw6ekp" id="bkmrk-"></div>Example of `openrtb_native.json.descr`

```
{
  "files": [
    {
      "default": "",
      "doc": "The background and visual, width: 714px. - height: 224px., used for Web",
      "label": "Banner image",
      "key": "2nd"
    }
  ],
  "fields": [
    {
      "default": "",
      "doc": "Enter the destination link (click-through URL)",
      "label": "Destination Link",
      "type": "singleLineText",
      "key": "<DESTINATION_LINK>",
      "id": "DestinationLink"
    }
  ],
  "advar": "openrtb_native.json"
}
```

<div id="bkmrk--3" role="presentation"></div>