From 54d613bb9e87258936205cf5a99da8cc158fd525 Mon Sep 17 00:00:00 2001 From: Giuseppe Cera Date: Fri, 8 Mar 2024 11:51:57 +0000 Subject: [PATCH 1/5] feat: added exadsadserver.md for PR purposes --- dev-docs/bidders/exadsadserver.md | 487 ++++++++++++++++++++++++++++++ 1 file changed, 487 insertions(+) create mode 100644 dev-docs/bidders/exadsadserver.md diff --git a/dev-docs/bidders/exadsadserver.md b/dev-docs/bidders/exadsadserver.md new file mode 100644 index 0000000000..e7eb5a9c81 --- /dev/null +++ b/dev-docs/bidders/exadsadserver.md @@ -0,0 +1,487 @@ +--- +layout: bidder +title: EXADS +description: EXADS Bidder Adapter +pbjs: true +pbs: false ? +biddercode: exadsadserver +gvl_id: 1084 ? // found here https://iabeurope.eu/vendor-list-tcf/ +tcfeu_supported: true? +usp_supported: false? +media_types: banner, video, native +gpp_sids: ? +schain_supported: ? +dchain_supported: ? +safeframes_ok: ? +deals_supported: ? +floors_supported: ? +ortb_blocking_supported: ? +--- + +### Note + +Module that connects to EXADS’ bidder for bids. + +### Configuration + +Use `setConfig` to instruct Prebid.js to initilize the exadsBidAdapter, as specified below. +* Set "debug" as true if you need to read logs; +* Set "gdprApplies" as true if you need to pass gdpr consent string; +* The tcString is the iabtcf consent string for gdpr; +* Uncomment the cache instruction if you need to configure a cache server (e.g. for instream video) + +``` +pbjs.setConfig({ + debug: false, + //cache: { url: "https://prebid.adnxs.com/pbc/v1/cache" }, + consentManagement: { + gdpr: { + cmpApi: 'static', + timeout: 1000000, + defaultGdprScope: true, + consentData: { + getTCData: { + tcString: consentString, + gdprApplies: false // set to true to pass the gdpr consent string + } + } + } + } +}); +``` +Add the `video` config if you need to render videos using the video module. +For more info navigate to https://docs.prebid.org/prebid-video/video-module.html. +``` +pbjs.setConfig({ + video: { + providers: [{ + divId: 'player', // the id related to the videojs tag in your body + vendorCode: 2, // videojs, + playerConfig: { + params: { + adPluginConfig: { + numRedirects: 10 + }, + vendorConfig: { + controls: true, + autoplay: true, + preload: "auto", + } + } + } + },] + }, +}); +``` + +#### RTB Banner 2.4 + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `'integer'` | +| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `'string'` | +| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `'string'` | +| `siteId` | recommended | Unique Site ID | `'123'` | `'string'` | +| `siteName` | | Site name | `'test.com'` | `'string'` | +| `banner.sizes` | required | [width, height] | `[145,256]` | `'integer array'` | +| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `'string'` | +| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `'string'` | +| `country` | | country ISO3 | `'IRL'` | `'string'` | +| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `'string'` | +| `keywords` | | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `'string'` | +| `bidfloor` | | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `'float'` | +| `bidfloorcur` | | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `'string'` | +| `bcat` | | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `'string array'` | +| `badv` | | Block list of advertisers by their domains | `['first.com', 'second.com']` | `'string array'` | +| `mimes` | | List of supported mime types. We support: image/jpeg, image/jpg, image/png, image/png, image/gif, image/webp, video/mp4 | `['image/jpg']` | `'string array'` | +| `dsa` | | DSA transparency information. To see the specific paragraph for more details. | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | +| `endpoint` | required | EXADS endpoint (URL) | `https://your-ad-network.com/rtb.php` | `string` | + +##### DSA + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `dsarequired` | | flag to indicate if DSA information should be made available | `3` | `'integer'` | +| `pubrender` | | flag to indicate if the publisher will render the DSA Transparency info | `0` | `'integer'` | +| `datatopub` | | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `'integer'` | + +##### RTB Banner 2.4 (Image) + +```javascript + +adUnits = + [{ code: 'postbid_iframe', // the frame where to render the creative + mediaTypes: { + banner: { + sizes: [300, 250] + } + }, + bids: [{ + bidder: 'exadsadserver', + params: { + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + userIp: '0.0.0.0', + userId: '1234', + country: 'IRL', + impressionId: impression_id.toString(), + keywords: 'lifestyle, humour', + bidfloor: 0.00000011, + bidfloorcur: 'EUR', + bcat: ['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9'], + badv: ['first.com', 'second.com'], + mimes: ['image/jpg'], + dsa: { + dsarequired: 3, + pubrender: 0, + datatopub: 2 + }, + endpoint: 'https://your-ad-network.com/rtb.php' + } + }] + }]; +``` + +##### RTB Banner 2.4 (Video) + +```javascript +adUnits = + [{ code: 'postbid_iframe', // the frame where to render the creative + mediaTypes: { + banner: { + sizes: [900, 250] + } + }, + bids: [{ + bidder: 'exadsadserver', + params: { + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + userIp: '0.0.0.0', + userId: '1234', + country: 'IRL', + impressionId: '1234', + keywords: 'lifestyle, humour', + bidfloor: 0.00000011, + bidfloorcur: 'EUR', + bcat: ['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9'], + badv: ['first.com', 'second.com'], + mimes: ['image/jpg'], + dsa: { + dsarequired: 3, + pubrender: 0, + datatopub: 2 + }, + endpoint: 'https://your-ad-network.com/rtb.php' + } + }] + }]; +``` + +#### RTB 2.4 Video (Instream/OutStream/Video Slider) - VAST XML or VAST TAG (url) + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `'integer'` | +| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `'string'` | +| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `'string'` | +| `siteId` | recommended | Unique Site ID | `'123'` | `'string'` | +| `siteName` | | Site name | `'test.com'` | `'string'` | +| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `'string'` | +| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `'string'` | +| `country` | | country ISO3 | `'IRL'` | `'string'` | +| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `'string'` | +| `keywords` | | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `'string'` | +| `bidfloor` | | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `'float'` | +| `bidfloorcur` | | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `'string'` | +| `bcat` | | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `'string array'` | +| `badv` | | Block list of advertisers by their domains | `['first.com', 'second.com']` | `'string array'` | +| `mediaTypes` | required | To see the specific paragraph for details | `{ video: { mimes: ['video/mp4'], context: 'instream', protocols: [3, 6] }}` | `'object'` | +| `dsa` | | DSA transparency information. To see paragraph for more info | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | +| `endpoint` | required | EXADS endpoint (URL) | `https://your-ad-network.com/rtb.php` | `string` | + +##### MediaTypes.video + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `mimes` | required | list of supported mime types | `['video/mp4']` | `'string array'` | +| `protocols` | required | list of supported video bid response protocols | `[3, 6]` | `'integer array'` | +| `context` | recommended | the video context, either ‘instream’, ‘outstream’. Defaults to ‘instream’ | `'instream'` | `'string'` | + +##### DSA + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `dsarequired` | | flag to indicate if DSA information should be made available | `3` | `'integer'` | +| `pubrender` | | flag to indicate if the publisher will render the DSA Transparency info | `0` | `'integer'` | +| `datatopub` | | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `'integer'` | + +```javascript +adUnits = [{ + code: 'postbid_iframe', + mediaTypes: { + video: { + mimes: ['video/mp4'], + context: 'instream', + protocols: [3, 6] + } + }, + bids: [{ + bidder: 'exadsadserver', + params: { + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + userIp: '0.0.0.0', + userId: '1234', + impressionId: '1234', + imp: { + ext: { + video_cta: 0 + } + }, + dsa: { + dsarequired: 3, + pubrender: 0, + datatopub: 2 + }, + country: 'IRL', + keywords: 'lifestyle, humour', + bidfloor: 0.00000011, + bidfloorcur: 'EUR', + bcat: ['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9'], + badv: ['first.com', 'second.com'], + endpoint: 'https://your-ad-network.com/rtb.php' + } + }] +}]; +``` + +#### RTB 2.4 Native + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `'integer'` | +| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `'string'` | +| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `'string'` | +| `siteId` | recommended | Unique Site ID | `'123'` | `'string'` | +| `siteName` | | Site name | `'test.com'` | `'string'` | +| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `'string'` | +| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `'string'` | +| `country` | | country ISO3 | `'IRL'` | `'string'` | +| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `'string'` | +| `keywords` | | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `'string'` | +| `bidfloor` | | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `'float'` | +| `bidfloorcur` | | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `'string'` | +| `bcat` | | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `'string array'` | +| `badv` | | Block list of advertisers by their domains | `['first.com', 'second.com']` | `'string array'` | +| `native.plcmtcnt` | | the number of identical placements in this Layout | `4` | `'integer'` | +| `assets` | | To see the specific paragraph for more info | `{}` | `'object'` | +| `dsa` | | DSA transparency information. To see paragraph for more info | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | +| `endpoint` | required | EXADS endpoint (URL) | `https://your-ad-network.com/rtb.php` | `string` | + +##### Assets + +* **assets (title)** + * **id** - unique asset ID, assigned by exchange. Typically a counter for the array (integer): + * 1 - image asset ID + * 2 - title asset ID + * 3 - description asset ID + * **required** - set to 1 if asset is required or 0 if asset is optional (integer) + * **title** + * len (required) - maximum length of the text in the title element (integer) +* **assets (data)** + * **id** - unique asset ID, assigned by exchange. Typically a counter for the array (integer): + * 1 - image asset ID + * 2 - title asset ID + * 3 - description asset ID + * **data** + * **type** - type ID of the element supported by the publisher (integer). We support: + * 1 - sponsored - sponsored By message where response should contain the brand name of the sponsor + * 2 - desc - descriptive text associated with the product or service being advertised + * **len** - maximum length of the text in the element’s response (integer) +* **assets (img)** + * **id** - unique asset ID, assigned by exchange. Typically a counter for the array (integer): + * 1 - image asset ID + * 2 - title asset ID + * 3 - description asset ID + * **required** - set to 1 if asset is required or 0 if asset is optional (integer) + * **img** + * **type** - type ID of the image element supported by the publisher. We support: + * 1 - icon image (integer) + * 3 - large image preview for the ad (integer) + * **w** - width of the image in pixels, optional (integer) + * **h** - height of the image in pixels, optional (integer) + +##### DSA + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `dsarequired` | | flag to indicate if DSA information should be made available | `3` | `'integer'` | +| `pubrender` | | flag to indicate if the publisher will render the DSA Transparency info | `0` | `'integer'` | +| `datatopub` | | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `'integer'` | + +```javascript +adUnits = [{ + code: 'postbid_iframe', + mediaTypes: { + native: { + ortb: { + assets: [{ + id: 2, + required: 1, + title: { + len: 124 + } + }, + { + id: 3, + data: { + type: 1, + len: 50 + } + }, + { + id: 1, + required: 1, + img: { + type: 3, + w: 300, + h: 300 + } + }] + } + } + }, + bids: [{ + bidder: 'exadsadserver', + params: { + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + userIp: '0.0.0.0', + userId: '1234', + impressionId: '1234', + native: { + plcmtcnt: 4 + }, + dsa: { + dsarequired: 3, + pubrender: 0, + datatopub: 2 + }, + country: 'IRL', + keywords: 'lifestyle, humour', + bidfloor: 0.00000011, + bidfloorcur: 'EUR', + bcat: ['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9'], + badv: ['first.com', 'second.com'], + endpoint: 'https://your-ad-network.com/rtb.php' + } + }] +}]; +``` + +# DSA Transparency +All DSA information, returned by the ad server, can be found into the **meta** tag of the response. As: +``` +"meta": { + "dsa": { + "behalf": "...", + "paid": "...", + "transparency": [ + { + "params": [ + ... + ] + } + ], + "adrender": ... + } +} +``` +For more information navigate to https://docs.prebid.org/dev-docs/bidder-adaptor.html. + +# Tools and suggestions +This section contains some suggestions that allow to set some parameters automatically. + +### User Ip / Country +In order to detect the current user ip there are different approaches. An example is using public web services as ```https://api.ipify.org```. + +Example of usage (to add to the publisher websites): + +``` + +``` + +The same service gives the possibility to detect the country as well. Check the official web page about possible limitations of the free licence. + +### Impression Id +Each advertising request has to be identified uniquely by an id. +One possible approach is using a classical hash function. + +``` + +``` + +### User Id +The approach used for impression id could be used for generating a unique user id. +Also, it is recommended to store the id locally, e.g. by the browser localStorage. + +``` + +``` + +### Build +If you don't need to use the prebidJS video module, please remove the videojsVideoProvider module. +``` +gulp build --modules=consentManagement,exadsBidAdapter,videojsVideoProvider +``` \ No newline at end of file From 572721fca05ba82e90bd9f5b9e7abf5e4093e36d Mon Sep 17 00:00:00 2001 From: Giuseppe Cera Date: Tue, 19 Mar 2024 13:15:51 +0000 Subject: [PATCH 2/5] fix: after code review --- dev-docs/bidders/exadsadserver.md | 598 ++++++++++++++---------------- 1 file changed, 275 insertions(+), 323 deletions(-) diff --git a/dev-docs/bidders/exadsadserver.md b/dev-docs/bidders/exadsadserver.md index e7eb5a9c81..042da8ac13 100644 --- a/dev-docs/bidders/exadsadserver.md +++ b/dev-docs/bidders/exadsadserver.md @@ -18,10 +18,6 @@ floors_supported: ? ortb_blocking_supported: ? --- -### Note - -Module that connects to EXADS’ bidder for bids. - ### Configuration Use `setConfig` to instruct Prebid.js to initilize the exadsBidAdapter, as specified below. @@ -32,45 +28,47 @@ Use `setConfig` to instruct Prebid.js to initilize the exadsBidAdapter, as speci ``` pbjs.setConfig({ - debug: false, - //cache: { url: "https://prebid.adnxs.com/pbc/v1/cache" }, - consentManagement: { - gdpr: { - cmpApi: 'static', - timeout: 1000000, - defaultGdprScope: true, - consentData: { - getTCData: { - tcString: consentString, - gdprApplies: false // set to true to pass the gdpr consent string - } - } - } - } + debug: false, + //cache: { url: "https://prebid.adnxs.com/pbc/v1/cache" }, + consentManagement: { + gdpr: { + cmpApi: 'static', + timeout: 1000000, + defaultGdprScope: true, + consentData: { + getTCData: { + tcString: consentString, + gdprApplies: false, // set to true to pass the gdpr consent string + }, + }, + }, + }, }); ``` Add the `video` config if you need to render videos using the video module. For more info navigate to https://docs.prebid.org/prebid-video/video-module.html. ``` pbjs.setConfig({ - video: { - providers: [{ - divId: 'player', // the id related to the videojs tag in your body - vendorCode: 2, // videojs, - playerConfig: { - params: { - adPluginConfig: { - numRedirects: 10 - }, - vendorConfig: { - controls: true, - autoplay: true, - preload: "auto", - } - } - } - },] - }, + video: { + providers: [ + { + divId: 'player', // the id related to the videojs tag in your body + vendorCode: 2, // videojs, + playerConfig: { + params: { + adPluginConfig: { + numRedirects: 10, + }, + vendorConfig: { + controls: true, + autoplay: true, + preload: 'auto', + }, + }, + }, + }, + ], + }, }); ``` @@ -79,23 +77,23 @@ pbjs.setConfig({ {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| -| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `'integer'` | -| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `'string'` | -| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `'string'` | -| `siteId` | recommended | Unique Site ID | `'123'` | `'string'` | -| `siteName` | | Site name | `'test.com'` | `'string'` | -| `banner.sizes` | required | [width, height] | `[145,256]` | `'integer array'` | -| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `'string'` | -| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `'string'` | -| `country` | | country ISO3 | `'IRL'` | `'string'` | -| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `'string'` | -| `keywords` | | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `'string'` | -| `bidfloor` | | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `'float'` | -| `bidfloorcur` | | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `'string'` | -| `bcat` | | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `'string array'` | -| `badv` | | Block list of advertisers by their domains | `['first.com', 'second.com']` | `'string array'` | -| `mimes` | | List of supported mime types. We support: image/jpeg, image/jpg, image/png, image/png, image/gif, image/webp, video/mp4 | `['image/jpg']` | `'string array'` | -| `dsa` | | DSA transparency information. To see the specific paragraph for more details. | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | +| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `integer` | +| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `string` | +| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `string` | +| `siteId` | recommended | Unique Site ID | `'123'` | `string` | +| `siteName` | | Site name | `'test.com'` | `string` | +| `banner.sizes` | required | [width, height] | `[145,256]` | `integer array` | +| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `string` | +| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `string` | +| `country` | optional | country ISO3 | `'IRL'` | `string` | +| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `string` | +| `keywords` | optional | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `string` | +| `bidfloor` | optional | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `float` | +| `bidfloorcur` | optional | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `string` | +| `bcat` | optional | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `string array` | +| `badv` | optional | Block list of advertisers by their domains | `['first.com', 'second.com']` | `string array` | +| `mimes` | optional | List of supported mime types. We support: image/jpeg, image/jpg, image/png, image/png, image/gif, image/webp, video/mp4 | `['image/jpg']` | `string array` | +| `dsa` | optional | DSA transparency information. To see the specific paragraph for more details. | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | | `endpoint` | required | EXADS endpoint (URL) | `https://your-ad-network.com/rtb.php` | `string` | ##### DSA @@ -103,87 +101,96 @@ pbjs.setConfig({ {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| -| `dsarequired` | | flag to indicate if DSA information should be made available | `3` | `'integer'` | -| `pubrender` | | flag to indicate if the publisher will render the DSA Transparency info | `0` | `'integer'` | -| `datatopub` | | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `'integer'` | +| `dsarequired` | optional | flag to indicate if DSA information should be made available | `3` | `integer` | +| `pubrender` | optional | flag to indicate if the publisher will render the DSA Transparency info | `0` | `integer` | +| `datatopub` | optional | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `integer` | ##### RTB Banner 2.4 (Image) ```javascript - -adUnits = - [{ code: 'postbid_iframe', // the frame where to render the creative - mediaTypes: { - banner: { - sizes: [300, 250] - } +adUnits = [ + { + code: 'postbid_iframe', // the frame where to render the creative + mediaTypes: { + banner: { + sizes: [300, 250], + }, + }, + bids: [ + { + bidder: 'exadsadserver', + params: { + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + userIp: '0.0.0.0', + userId: '1234', + country: 'IRL', // optional + impressionId: impression_id.toString(), + keywords: 'lifestyle, humour', // optional + bidfloor: 0.00000011, // optional + bidfloorcur: 'EUR', // optional + bcat: ['IAB25', 'IAB7-39', 'IAB8-18', 'IAB8-5', 'IAB9-9'], // optional + badv: ['first.com', 'second.com'], // optional + mimes: ['image/jpg'], + dsa: { + // optional + dsarequired: 3, + pubrender: 0, + datatopub: 2, + }, + endpoint: 'https://your-ad-network.com/rtb.php', }, - bids: [{ - bidder: 'exadsadserver', - params: { - zoneId: 12345, - fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', - partner: 'ortb_2_4', - siteId: '123', - siteName: 'test.com', - userIp: '0.0.0.0', - userId: '1234', - country: 'IRL', - impressionId: impression_id.toString(), - keywords: 'lifestyle, humour', - bidfloor: 0.00000011, - bidfloorcur: 'EUR', - bcat: ['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9'], - badv: ['first.com', 'second.com'], - mimes: ['image/jpg'], - dsa: { - dsarequired: 3, - pubrender: 0, - datatopub: 2 - }, - endpoint: 'https://your-ad-network.com/rtb.php' - } - }] - }]; + }, + ], + }, +]; ``` ##### RTB Banner 2.4 (Video) ```javascript -adUnits = - [{ code: 'postbid_iframe', // the frame where to render the creative - mediaTypes: { - banner: { - sizes: [900, 250] - } +adUnits = [ + { + code: 'postbid_iframe', // the frame where to render the creative + mediaTypes: { + banner: { + sizes: [900, 250], + }, + }, + bids: [ + { + bidder: 'exadsadserver', + params: { + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + userIp: '0.0.0.0', + userId: '1234', + country: 'IRL', // optional + impressionId: '1234', // optional + keywords: 'lifestyle, humour', // optional + bidfloor: 0.00000011, // optional + bidfloorcur: 'EUR', // optional + bcat: ['IAB25', 'IAB7-39', 'IAB8-18', 'IAB8-5', 'IAB9-9'], // optional + badv: ['first.com', 'second.com'], // optional + mimes: ['image/jpg'], + dsa: { + // optional + dsarequired: 3, + pubrender: 0, + datatopub: 2, + }, + endpoint: 'https://your-ad-network.com/rtb.php', }, - bids: [{ - bidder: 'exadsadserver', - params: { - zoneId: 12345, - fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', - partner: 'ortb_2_4', - siteId: '123', - siteName: 'test.com', - userIp: '0.0.0.0', - userId: '1234', - country: 'IRL', - impressionId: '1234', - keywords: 'lifestyle, humour', - bidfloor: 0.00000011, - bidfloorcur: 'EUR', - bcat: ['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9'], - badv: ['first.com', 'second.com'], - mimes: ['image/jpg'], - dsa: { - dsarequired: 3, - pubrender: 0, - datatopub: 2 - }, - endpoint: 'https://your-ad-network.com/rtb.php' - } - }] - }]; + }, + ], + }, +]; ``` #### RTB 2.4 Video (Instream/OutStream/Video Slider) - VAST XML or VAST TAG (url) @@ -191,22 +198,22 @@ adUnits = {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| -| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `'integer'` | -| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `'string'` | -| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `'string'` | -| `siteId` | recommended | Unique Site ID | `'123'` | `'string'` | -| `siteName` | | Site name | `'test.com'` | `'string'` | -| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `'string'` | -| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `'string'` | -| `country` | | country ISO3 | `'IRL'` | `'string'` | -| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `'string'` | -| `keywords` | | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `'string'` | -| `bidfloor` | | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `'float'` | -| `bidfloorcur` | | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `'string'` | -| `bcat` | | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `'string array'` | -| `badv` | | Block list of advertisers by their domains | `['first.com', 'second.com']` | `'string array'` | -| `mediaTypes` | required | To see the specific paragraph for details | `{ video: { mimes: ['video/mp4'], context: 'instream', protocols: [3, 6] }}` | `'object'` | -| `dsa` | | DSA transparency information. To see paragraph for more info | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | +| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `integer` | +| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `string` | +| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `string` | +| `siteId` | recommended | Unique Site ID | `'123'` | `string` | +| `siteName` | | Site name | `'test.com'` | `string` | +| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `string` | +| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `string` | +| `country` | optional | country ISO3 | `'IRL'` | `string` | +| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `string` | +| `keywords` | optional | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `string` | +| `bidfloor` | optional | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `float` | +| `bidfloorcur` | optional | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `string` | +| `bcat` | optional | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `string array` | +| `badv` | optional | Block list of advertisers by their domains | `['first.com', 'second.com']` | `string array` | +| `mediaTypes` | required | To see the specific paragraph for details | `{ video: { mimes: ['video/mp4'], context: 'instream', protocols: [3, 6] }}` | `object` | +| `dsa` | optional | DSA transparency information. To see paragraph for more info | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | | `endpoint` | required | EXADS endpoint (URL) | `https://your-ad-network.com/rtb.php` | `string` | ##### MediaTypes.video @@ -214,60 +221,65 @@ adUnits = {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| -| `mimes` | required | list of supported mime types | `['video/mp4']` | `'string array'` | -| `protocols` | required | list of supported video bid response protocols | `[3, 6]` | `'integer array'` | -| `context` | recommended | the video context, either ‘instream’, ‘outstream’. Defaults to ‘instream’ | `'instream'` | `'string'` | +| `mimes` | required | list of supported mime types | `['video/mp4']` | `string array` | +| `protocols` | required | list of supported video bid response protocols | `[3, 6]` | `integer array` | +| `context` | recommended | the video context, either ‘instream’, ‘outstream’. Defaults to ‘instream’ | `'instream'` | `string` | ##### DSA {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| -| `dsarequired` | | flag to indicate if DSA information should be made available | `3` | `'integer'` | -| `pubrender` | | flag to indicate if the publisher will render the DSA Transparency info | `0` | `'integer'` | -| `datatopub` | | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `'integer'` | +| `dsarequired` | optional | flag to indicate if DSA information should be made available | `3` | `integer` | +| `pubrender` | optional | flag to indicate if the publisher will render the DSA Transparency info | `0` | `integer` | +| `datatopub` | optional | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `integer` | ```javascript -adUnits = [{ +adUnits = [ + { code: 'postbid_iframe', mediaTypes: { - video: { - mimes: ['video/mp4'], - context: 'instream', - protocols: [3, 6] - } + video: { + mimes: ['video/mp4'], + context: 'instream', + protocols: [3, 6], + }, }, - bids: [{ + bids: [ + { bidder: 'exadsadserver', params: { - zoneId: 12345, - fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', - partner: 'ortb_2_4', - siteId: '123', - siteName: 'test.com', - userIp: '0.0.0.0', - userId: '1234', - impressionId: '1234', - imp: { - ext: { - video_cta: 0 - } - }, - dsa: { - dsarequired: 3, - pubrender: 0, - datatopub: 2 + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + userIp: '0.0.0.0', + userId: '1234', + impressionId: '1234', + imp: { + ext: { + video_cta: 0, }, - country: 'IRL', - keywords: 'lifestyle, humour', - bidfloor: 0.00000011, - bidfloorcur: 'EUR', - bcat: ['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9'], - badv: ['first.com', 'second.com'], - endpoint: 'https://your-ad-network.com/rtb.php' - } - }] -}]; + }, + dsa: { + // optional + dsarequired: 3, + pubrender: 0, + datatopub: 2, + }, + country: 'IRL', // optional + keywords: 'lifestyle, humour', // optional + bidfloor: 0.00000011, // optional + bidfloorcur: 'EUR', // optional + bcat: ['IAB25', 'IAB7-39', 'IAB8-18', 'IAB8-5', 'IAB9-9'], // optional + badv: ['first.com', 'second.com'], // optional + endpoint: 'https://your-ad-network.com/rtb.php', + }, + }, + ], + }, +]; ``` #### RTB 2.4 Native @@ -275,23 +287,23 @@ adUnits = [{ {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| -| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `'integer'` | -| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `'string'` | -| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `'string'` | -| `siteId` | recommended | Unique Site ID | `'123'` | `'string'` | -| `siteName` | | Site name | `'test.com'` | `'string'` | -| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `'string'` | -| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `'string'` | -| `country` | | country ISO3 | `'IRL'` | `'string'` | -| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `'string'` | -| `keywords` | | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `'string'` | -| `bidfloor` | | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `'float'` | -| `bidfloorcur` | | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `'string'` | -| `bcat` | | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `'string array'` | -| `badv` | | Block list of advertisers by their domains | `['first.com', 'second.com']` | `'string array'` | -| `native.plcmtcnt` | | the number of identical placements in this Layout | `4` | `'integer'` | -| `assets` | | To see the specific paragraph for more info | `{}` | `'object'` | -| `dsa` | | DSA transparency information. To see paragraph for more info | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | +| `zoneID` | required | You can get it from the endpoint created after configuring the zones | `12345` | `integer` | +| `fid` | required | You can get it from the endpoint created after configuring the zones | `'829a896f011475d50da0d82cfdd1af8d9cdb07ff'` | `string` | +| `partner` | required | Currently we support rtb 2.4 (“ortb_2_4”) only | `'ortb_2_4'` | `string` | +| `siteId` | recommended | Unique Site ID | `'123'` | `string` | +| `siteName` | | Site name | `'test.com'` | `string` | +| `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `string` | +| `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `string` | +| `country` | optional | country ISO3 | `'IRL'` | `string` | +| `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `string` | +| `keywords` | optional | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `string` | +| `bidfloor` | optional | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `float` | +| `bidfloorcur` | optional | Currency for minimum bid value specified using ISO-4217 alpha codes | `'EUR'` | `string` | +| `bcat` | optional | Blocked advertiser categories using the IAB content categories | `['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9']` | `string array` | +| `badv` | optional | Block list of advertisers by their domains | `['first.com', 'second.com']` | `string array` | +| `native.plcmtcnt` | optional | the number of identical placements in this Layout | `4` | `integer` | +| `assets` | required | To see the specific paragraph for more info | `{}` | `object` | +| `dsa` | optional | DSA transparency information. To see paragraph for more info | `{ dsarequired: 3, pubrender: 0, datatopub: 2 }` | `object` | | `endpoint` | required | EXADS endpoint (URL) | `https://your-ad-network.com/rtb.php` | `string` | ##### Assets @@ -332,71 +344,78 @@ adUnits = [{ {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| -| `dsarequired` | | flag to indicate if DSA information should be made available | `3` | `'integer'` | -| `pubrender` | | flag to indicate if the publisher will render the DSA Transparency info | `0` | `'integer'` | -| `datatopub` | | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `'integer'` | +| `dsarequired` | optional | flag to indicate if DSA information should be made available | `3` | `integer` | +| `pubrender` | optional | flag to indicate if the publisher will render the DSA Transparency info | `0` | `integer` | +| `datatopub` | optional | ndependent of pubrender, the publisher may need the transparency data for audit purposes | `2` | `integer` | ```javascript -adUnits = [{ +adUnits = [ + { code: 'postbid_iframe', mediaTypes: { - native: { - ortb: { - assets: [{ - id: 2, - required: 1, - title: { - len: 124 - } - }, - { - id: 3, - data: { - type: 1, - len: 50 - } - }, - { - id: 1, - required: 1, - img: { - type: 3, - w: 300, - h: 300 - } - }] - } - } + native: { + ortb: { + assets: [ + { + id: 2, + required: 1, + title: { + len: 124, + }, + }, + { + id: 3, + data: { + type: 1, + len: 50, + }, + }, + { + id: 1, + required: 1, + img: { + type: 3, + w: 300, + h: 300, + }, + }, + ], + }, + }, }, - bids: [{ + bids: [ + { bidder: 'exadsadserver', params: { - zoneId: 12345, - fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', - partner: 'ortb_2_4', - siteId: '123', - siteName: 'test.com', - userIp: '0.0.0.0', - userId: '1234', - impressionId: '1234', - native: { - plcmtcnt: 4 - }, - dsa: { - dsarequired: 3, - pubrender: 0, - datatopub: 2 - }, - country: 'IRL', - keywords: 'lifestyle, humour', - bidfloor: 0.00000011, - bidfloorcur: 'EUR', - bcat: ['IAB25', 'IAB7-39','IAB8-18','IAB8-5','IAB9-9'], - badv: ['first.com', 'second.com'], - endpoint: 'https://your-ad-network.com/rtb.php' - } - }] -}]; + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + userIp: '0.0.0.0', + userId: '1234', + impressionId: '1234', + native: { + // optional + plcmtcnt: 4, + }, + dsa: { + dsarequired: 3, + pubrender: 0, + datatopub: 2, + }, + country: 'IRL', // optional + keywords: 'lifestyle, humour', // optional + bidfloor: 0.00000011, // optional + bidfloorcur: 'EUR', // optional + bcat: ['IAB25', 'IAB7-39', 'IAB8-18', 'IAB8-5', 'IAB9-9'], // optional + badv: ['first.com', 'second.com'], // optional + endpoint: 'https://your-ad-network.com/rtb.php', + }, + }, + ], + }, +]; ``` # DSA Transparency @@ -417,71 +436,4 @@ All DSA information, returned by the ad server, can be found into the **meta** t } } ``` -For more information navigate to https://docs.prebid.org/dev-docs/bidder-adaptor.html. - -# Tools and suggestions -This section contains some suggestions that allow to set some parameters automatically. - -### User Ip / Country -In order to detect the current user ip there are different approaches. An example is using public web services as ```https://api.ipify.org```. - -Example of usage (to add to the publisher websites): - -``` - -``` - -The same service gives the possibility to detect the country as well. Check the official web page about possible limitations of the free licence. - -### Impression Id -Each advertising request has to be identified uniquely by an id. -One possible approach is using a classical hash function. - -``` - -``` - -### User Id -The approach used for impression id could be used for generating a unique user id. -Also, it is recommended to store the id locally, e.g. by the browser localStorage. - -``` - -``` - -### Build -If you don't need to use the prebidJS video module, please remove the videojsVideoProvider module. -``` -gulp build --modules=consentManagement,exadsBidAdapter,videojsVideoProvider -``` \ No newline at end of file +For more information navigate to https://docs.prebid.org/dev-docs/bidder-adaptor.html. \ No newline at end of file From d7cafd30bc37f1fcddb228a8dcb5af5dceb4513f Mon Sep 17 00:00:00 2001 From: Giuseppe Cera Date: Tue, 19 Mar 2024 16:04:54 +0000 Subject: [PATCH 3/5] fix: changed main parameters --- dev-docs/bidders/exadsadserver.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/dev-docs/bidders/exadsadserver.md b/dev-docs/bidders/exadsadserver.md index 042da8ac13..21650f2fe6 100644 --- a/dev-docs/bidders/exadsadserver.md +++ b/dev-docs/bidders/exadsadserver.md @@ -3,19 +3,15 @@ layout: bidder title: EXADS description: EXADS Bidder Adapter pbjs: true -pbs: false ? biddercode: exadsadserver -gvl_id: 1084 ? // found here https://iabeurope.eu/vendor-list-tcf/ -tcfeu_supported: true? -usp_supported: false? +gvl_id: 1084 - waiting Tiago/Barry +tcfeu_supported: true media_types: banner, video, native -gpp_sids: ? -schain_supported: ? -dchain_supported: ? -safeframes_ok: ? -deals_supported: ? -floors_supported: ? -ortb_blocking_supported: ? +gpp_sids: tcfeu +safeframes_ok: false +deals_supported: false +floors_supported: true +ortb_blocking_supported: true --- ### Configuration From 62ae2bccbf1bb7930a8607b499237fe41befe5e3 Mon Sep 17 00:00:00 2001 From: Giuseppe Cera Date: Tue, 19 Mar 2024 17:43:18 +0000 Subject: [PATCH 4/5] fix: from code review --- dev-docs/bidders/exadsadserver.md | 48 ++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/dev-docs/bidders/exadsadserver.md b/dev-docs/bidders/exadsadserver.md index 21650f2fe6..5175b14170 100644 --- a/dev-docs/bidders/exadsadserver.md +++ b/dev-docs/bidders/exadsadserver.md @@ -14,8 +14,45 @@ floors_supported: true ortb_blocking_supported: true --- -### Configuration +### Example + +A very minimal RTB Banner example that shows how to use the EXADS adapter. +The most important attributes are: **endpoint**, **fid** and **zoneId**. You can get them after configuring the zones. +For more details about ad formats and parameters, read it in the next sections. + +``` +adUnits = [ + { + code: 'postbid_iframe', // the frame where to render the creative + mediaTypes: { + banner: { + sizes: [300, 250], + }, + }, + bids: [ + { + bidder: 'exadsadserver', + params: { + zoneId: 12345, + fid: '829a896f011475d50da0d82cfdd1af8d9cdb07ff', + partner: 'ortb_2_4', + siteId: '123', + siteName: 'test.com', + country: 'IRL, + userIp: '0.0.0.0', + userId: '1234', + impressionId: impression_id.toString(), + mimes: ['image/jpg'], + endpoint: 'https://your-ad-network.com/rtb.php', + }, + }, + ], + }, +]; +``` +### Configuration +##### General settings Use `setConfig` to instruct Prebid.js to initilize the exadsBidAdapter, as specified below. * Set "debug" as true if you need to read logs; * Set "gdprApplies" as true if you need to pass gdpr consent string; @@ -41,6 +78,9 @@ pbjs.setConfig({ }, }); ``` + +##### Video settings +If you will work with video stream ad formats you could choose to use the prebidJS video module to render the video using already supported video players as videoJS. Add the `video` config if you need to render videos using the video module. For more info navigate to https://docs.prebid.org/prebid-video/video-module.html. ``` @@ -81,7 +121,7 @@ pbjs.setConfig({ | `banner.sizes` | required | [width, height] | `[145,256]` | `integer array` | | `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `string` | | `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `string` | -| `country` | optional | country ISO3 | `'IRL'` | `string` | +| `country` | required | country ISO3 | `'IRL'` | `string` | | `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `string` | | `keywords` | optional | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `string` | | `bidfloor` | optional | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `float` | @@ -201,7 +241,7 @@ adUnits = [ | `siteName` | | Site name | `'test.com'` | `string` | | `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `string` | | `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `string` | -| `country` | optional | country ISO3 | `'IRL'` | `string` | +| `country` | required | country ISO3 | `'IRL'` | `string` | | `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `string` | | `keywords` | optional | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `string` | | `bidfloor` | optional | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `float` | @@ -290,7 +330,7 @@ adUnits = [ | `siteName` | | Site name | `'test.com'` | `string` | | `userIp` | required | IP address of the user, ipv4 or ipv6 | `'0.0.0.0'` | `string` | | `userId` | *required | Unique user ID (string). *If you cannot generate a user ID, you can leave it empty (""). The request will get a response as long as “user” object is included in the request | `''` | `string` | -| `country` | optional | country ISO3 | `'IRL'` | `string` | +| `country` | required | country ISO3 | `'IRL'` | `string` | | `impressionId` | required | Unique impression ID within this bid request | `'abcde'` | `string` | | `keywords` | optional | Keywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words | `'lifestyle, humour'` | `string` | | `bidfloor` | optional | Minimum bid for this impression (CPM) / click (CPC) and account currency | `0.00000011` | `float` | From f59df54f094ebcc5e20a897ca57a08ed485f6c12 Mon Sep 17 00:00:00 2001 From: Giuseppe Cera Date: Fri, 22 Mar 2024 17:10:04 +0100 Subject: [PATCH 5/5] fix: clear names --- dev-docs/bidders/exadsadserver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/bidders/exadsadserver.md b/dev-docs/bidders/exadsadserver.md index 5175b14170..8ba8935f4a 100644 --- a/dev-docs/bidders/exadsadserver.md +++ b/dev-docs/bidders/exadsadserver.md @@ -4,7 +4,7 @@ title: EXADS description: EXADS Bidder Adapter pbjs: true biddercode: exadsadserver -gvl_id: 1084 - waiting Tiago/Barry +gvl_id: 1084 tcfeu_supported: true media_types: banner, video, native gpp_sids: tcfeu