---
layout: bidder
title: AIDEM
description: AIDEM Bidder Adapter
biddercode: aidem
tcfeu_supported: true
gvl_id: 1218
usp_supported: true
coppa_supported: true
schain_supported: false
dchain_supported: false
userId: none
media_types: banner, video
safeframes_ok: true
deals_supported: true
floors_supported: true
fpd_supported: true
pbjs: true
pbs: true
prebid_member: true
ortb_blocking_supported: false
sidebarType: 1
---

## Description

This module connects publishers to AIDEM demand.

This module is GDPR and CCPA compliant, and no 3rd party userIds are allowed.

## Global Bid Params

{: .table .table-bordered .table-striped }

| Name | Scope | Description | Example | Type |
| --- | --- | --- | --- | --- |
| `siteId` | required | Unique site ID | `'ABCDEF'` | `String` |
| `publisherId` | required | Unique publisher ID | `'FEDCBA'` | `String` |
| `placementId` | optional | Unique publisher tag ID | `'ABCDEF'` | `String` |
| `rateLimit` | optional | Limit the volume sent to AIDEM. Must be between 0 and 1 | `0.6` | `Number` |

### Banner Bid Params

{: .table .table-bordered .table-striped }

| Name | Scope | Description | Example | Type |
| --- | --- | --- | --- | --- |
| `sizes` | required | List of the sizes wanted | `[[300, 250], [300,600]]` | `Array` |

### Video Bid Params

{: .table .table-bordered .table-striped }

| Name | Scope | Description | Example | Type |
| --- | --- | --- | --- | --- |
| `context` | required | One of instream, outstream, adpod | `'instream'` | `String` |
| `playerSize` | required | Width and height of the player | `'[640, 480]'` | `Array` |
| `maxduration` | required | Maximum video ad duration, in seconds | `30` | `Integer` |
| `minduration` | required | Minimum video ad duration, in seconds | `5` | `Integer` |
| `mimes` | required | List of the content MIME types supported by the player | `["video/mp4"]` | `Array` |
| `protocols` | required | An array of supported video protocols. At least one supported protocol must be specified, where: `2` = VAST 2.0 `3` = VAST 3.0 `5` = VAST 2.0 wrapper `6` = VAST 3.0 wrapper | `2` | `Array` |

### Additional Config

{: .table .table-bordered .table-striped }

| Name | Scope | Description | Example | Type |
| --- | --- | --- | --- | --- |
| `coppa` | optional | Child Online Privacy Protection Act | `true` | `Boolean` |
| `consentManagement` | optional | [Consent Management Object](#consent-management-object) | `{}` | `Object` |

### Consent Management Object

{: .table .table-bordered .table-striped }

| Name | Scope | Description | Example | Type |
| --- | --- | --- | --- | --- |
| `gdpr` | optional | GDPR Object see [Prebid.js doc](https://docs.prebid.org/dev-docs/modules/consentManagementTcf.html) | `{}` | `Object` |
| `usp` | optional | USP Object see [Prebid.js doc](https://docs.prebid.org/dev-docs/modules/consentManagementUsp.html) | `{}` | `Object` |

### Example Banner ad unit

```javascript
var adUnits = [{
    code: 'banner-prebid-test-site',
    mediaTypes: {
        banner: {
            sizes: [
                [300, 600],
                [300, 250]
            ]
        }
    },
    bids: [{
          bidder: 'aidem',
          params: {
              siteId: 'prebid-test-siteId',
              publisherId: 'prebid-test-publisherId',
          },
    }]
}];
```

### Example Video ad unit

```javascript
var adUnits = [{
    code: 'video-prebid-test-site',
    mediaTypes: {
      video: {
        context: 'instream',
        playerSize: [640, 480],
        maxduration: 30,
        minduration: 5,
        mimes: ["video/mp4"],
        protocols: 2
      }
    },
    bids: [{
          bidder: 'aidem',
          params: {
              siteId: 'prebid-test-siteId',
              publisherId: 'prebid-test-publisherId',
          },
    }]
}];
```

### Example GDPR Consent Management

```javascript
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];

pbjs.que.push(function (){
  pbjs.setConfig({
    consentManagement: {
      gdpr:{
        cmpApi: 'iab'
      }
    }
  });
})
```

### Example USP Consent Management

```javascript
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];

pbjs.que.push(function (){
  pbjs.setConfig({
    consentManagement: {
      usp:{
        cmpApi: 'static',
        consentData:{
          getUSPData:{
            uspString: '1YYY'
          }
        }
      }
    }
  });
})
```

### Setting First Party Data (FPD)

```javascript
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];

pbjs.que.push(function (){
  pbjs.setConfig({
    ortb2: {
      site: {
        cat: ['IAB2'],
        sectioncat: ['IAB2-2'],
        keywords: 'power tools, drills'
      },
    }
  });
})
```

## Supported Media Types

{: .table .table-bordered .table-striped }

| Type | Support |
| --- | --- |
| Banner | Support all [AIDEM Sizes](https://kb.aidem.com/ssp/lists/adsizes/) |
| Video | Support all [AIDEM Sizes](https://kb.aidem.com/ssp/lists/adsizes/) |

## Setup / Dev Guide

```shell
nvm use

npm install

gulp build --modules=aidemBidAdapter

gulp serve --modules=aidemBidAdapter

# Open a chrome browser with no ad blockers enabled, and paste in this URL. The `pbjs_debug=true` is needed if you want to enable `loggerInfo` output on the `console` tab of Chrome Developer Tools.
http://localhost:9999/integrationExamples/gpt/hello_world.html?pbjs_debug=true
```

If you need to run the tests suite but do *not* want to have to build the full adapter and serve it, simply run:

```shell
gulp test --file "test/spec/modules/aidemBidAdapter_spec.js"
```

For video: gulp serve --modules=aidemBidAdapter,gamAdServerVideo

## FAQs

### How do I view AIDEM bid request?

Navigate to a page where AIDEM is setup to bid. In the network tab,
search for requests to `zero.aidemsrv.com/bid/request`.
