From 03d4dc281de67fed7cd020d1c13e1096d4ebfed9 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Thu, 11 Jul 2024 16:33:20 +0200 Subject: [PATCH 01/15] 1st version of the doc for raveltech bid adapter --- dev-docs/bidders/raveltech.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 dev-docs/bidders/raveltech.md diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md new file mode 100644 index 0000000000..d15057b5f1 --- /dev/null +++ b/dev-docs/bidders/raveltech.md @@ -0,0 +1,35 @@ +--- +layout: bidder +title: RavelTech +description: Prebid RavelTech Bidder Adaptor +biddercode: raveltech +media_types: banner, video, native +tcfeu_supported: true +dsa_supported: true +prebid_member: true +userIds: all (with commercial activation) +schain_supported: true +coppa_supported: true +usp_supported: true +gpp_supported: true +floors_supported: true +fpd_supported: false +pbjs: true +pbjs_version_notes: please avoid using v7.15 and v7.16 +pbs: true +gvl_id: 32 +sidebarType: 1 +--- + +# RavelTech Bid Adapter + +Ravel Technologies developed ZKAD (Zero-Knowledge ADvertising), a protocol anonymizing RTB data & PII during the RTB bidding process and during data processing. +ZKAD is using a scalable proprietary Homomorphic Encryption scheme (Ravel Homormorphic Encryption, RHE), a form of encryption that allows to perform computations at scale on encrypted data without having to first decrypt it. +ZKAD allows publishers to protect users’ privacy and publishers’ data while allowing advanced targeted advertising and advanced regulatory compliance. + +Ravel Bidder is a “Privacy Bus” allowing to anonymize bid requests before forwarding them to SSP and DSP preventing any personal data to be transferred to SSP and DSP. PII IDs are removed or/and anonymized into RIDs (Ravelized IDs). Furthermore, User-Agent is truncated, and location is provided with a significant Radius. IP addresses are not stored by the Privacy Bus and are not provided in the bid requests. + +The RavelTech Prebid Adapter first version supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params. +For more information about the Xandr/AppNexus params can be found at [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] + +Please contact support@raveltech.io to activate your adapter after installation or for more information. \ No newline at end of file From 5a6be51f91ed3da1850395350550d4b9b150d8c8 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Mon, 15 Jul 2024 16:42:23 +0200 Subject: [PATCH 02/15] add angle brackets around email address --- dev-docs/bidders/raveltech.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md index d15057b5f1..2ebcc015c4 100644 --- a/dev-docs/bidders/raveltech.md +++ b/dev-docs/bidders/raveltech.md @@ -32,4 +32,4 @@ Ravel Bidder is a “Privacy Bus” allowing to anonymize bid requests before fo The RavelTech Prebid Adapter first version supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params. For more information about the Xandr/AppNexus params can be found at [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] -Please contact support@raveltech.io to activate your adapter after installation or for more information. \ No newline at end of file +Please contact [support@raveltech.io] to activate your adapter after installation or for more information. \ No newline at end of file From b7e825443cb66754a84a084a00b4583b7fd73fc0 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Mon, 15 Jul 2024 16:43:06 +0200 Subject: [PATCH 03/15] add single newline character to comply with https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md047.md --- dev-docs/bidders/raveltech.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md index 2ebcc015c4..f44af2d8a0 100644 --- a/dev-docs/bidders/raveltech.md +++ b/dev-docs/bidders/raveltech.md @@ -32,4 +32,4 @@ Ravel Bidder is a “Privacy Bus” allowing to anonymize bid requests before fo The RavelTech Prebid Adapter first version supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params. For more information about the Xandr/AppNexus params can be found at [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] -Please contact [support@raveltech.io] to activate your adapter after installation or for more information. \ No newline at end of file +Please contact [support@raveltech.io] to activate your adapter after installation or for more information. From d7239d995a11b199346ade4d5a7b059c78c40c18 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Thu, 11 Jul 2024 16:33:20 +0200 Subject: [PATCH 04/15] 1st version of the doc for raveltech bid adapter --- dev-docs/bidders/raveltech.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 dev-docs/bidders/raveltech.md diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md new file mode 100644 index 0000000000..d15057b5f1 --- /dev/null +++ b/dev-docs/bidders/raveltech.md @@ -0,0 +1,35 @@ +--- +layout: bidder +title: RavelTech +description: Prebid RavelTech Bidder Adaptor +biddercode: raveltech +media_types: banner, video, native +tcfeu_supported: true +dsa_supported: true +prebid_member: true +userIds: all (with commercial activation) +schain_supported: true +coppa_supported: true +usp_supported: true +gpp_supported: true +floors_supported: true +fpd_supported: false +pbjs: true +pbjs_version_notes: please avoid using v7.15 and v7.16 +pbs: true +gvl_id: 32 +sidebarType: 1 +--- + +# RavelTech Bid Adapter + +Ravel Technologies developed ZKAD (Zero-Knowledge ADvertising), a protocol anonymizing RTB data & PII during the RTB bidding process and during data processing. +ZKAD is using a scalable proprietary Homomorphic Encryption scheme (Ravel Homormorphic Encryption, RHE), a form of encryption that allows to perform computations at scale on encrypted data without having to first decrypt it. +ZKAD allows publishers to protect users’ privacy and publishers’ data while allowing advanced targeted advertising and advanced regulatory compliance. + +Ravel Bidder is a “Privacy Bus” allowing to anonymize bid requests before forwarding them to SSP and DSP preventing any personal data to be transferred to SSP and DSP. PII IDs are removed or/and anonymized into RIDs (Ravelized IDs). Furthermore, User-Agent is truncated, and location is provided with a significant Radius. IP addresses are not stored by the Privacy Bus and are not provided in the bid requests. + +The RavelTech Prebid Adapter first version supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params. +For more information about the Xandr/AppNexus params can be found at [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] + +Please contact support@raveltech.io to activate your adapter after installation or for more information. \ No newline at end of file From 7724fe9f7c738e229a5b5db56a814c1415bedc21 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Mon, 15 Jul 2024 16:42:23 +0200 Subject: [PATCH 05/15] add angle brackets around email address --- dev-docs/bidders/raveltech.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md index d15057b5f1..2ebcc015c4 100644 --- a/dev-docs/bidders/raveltech.md +++ b/dev-docs/bidders/raveltech.md @@ -32,4 +32,4 @@ Ravel Bidder is a “Privacy Bus” allowing to anonymize bid requests before fo The RavelTech Prebid Adapter first version supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params. For more information about the Xandr/AppNexus params can be found at [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] -Please contact support@raveltech.io to activate your adapter after installation or for more information. \ No newline at end of file +Please contact [support@raveltech.io] to activate your adapter after installation or for more information. \ No newline at end of file From 004b8d8e6ea3866f53aecc23a7f0041fd241874e Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Mon, 15 Jul 2024 16:43:06 +0200 Subject: [PATCH 06/15] add single newline character to comply with https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md047.md --- dev-docs/bidders/raveltech.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md index 2ebcc015c4..f44af2d8a0 100644 --- a/dev-docs/bidders/raveltech.md +++ b/dev-docs/bidders/raveltech.md @@ -32,4 +32,4 @@ Ravel Bidder is a “Privacy Bus” allowing to anonymize bid requests before fo The RavelTech Prebid Adapter first version supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params. For more information about the Xandr/AppNexus params can be found at [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] -Please contact [support@raveltech.io] to activate your adapter after installation or for more information. \ No newline at end of file +Please contact [support@raveltech.io] to activate your adapter after installation or for more information. From 99e980e14bc34f40fdff3875fbefac49707c5211 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Thu, 18 Jul 2024 10:31:37 +0200 Subject: [PATCH 07/15] update to solve: - header level 3: https://github.com/prebid/prebid.github.io/pull/5501/files/004b8d8e6ea3866f53aecc23a7f0041fd241874e#r1681657660 - table of params: https://github.com/prebid/prebid.github.io/pull/5501/files/004b8d8e6ea3866f53aecc23a7f0041fd241874e#r1681663103 --- dev-docs/bidders/raveltech.md | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md index f44af2d8a0..96a3a9e8a1 100644 --- a/dev-docs/bidders/raveltech.md +++ b/dev-docs/bidders/raveltech.md @@ -21,7 +21,7 @@ gvl_id: 32 sidebarType: 1 --- -# RavelTech Bid Adapter +### RavelTech Bid Adapter Ravel Technologies developed ZKAD (Zero-Knowledge ADvertising), a protocol anonymizing RTB data & PII during the RTB bidding process and during data processing. ZKAD is using a scalable proprietary Homomorphic Encryption scheme (Ravel Homormorphic Encryption, RHE), a form of encryption that allows to perform computations at scale on encrypted data without having to first decrypt it. @@ -29,7 +29,30 @@ ZKAD allows publishers to protect users’ privacy and publishers’ data while Ravel Bidder is a “Privacy Bus” allowing to anonymize bid requests before forwarding them to SSP and DSP preventing any personal data to be transferred to SSP and DSP. PII IDs are removed or/and anonymized into RIDs (Ravelized IDs). Furthermore, User-Agent is truncated, and location is provided with a significant Radius. IP addresses are not stored by the Privacy Bus and are not provided in the bid requests. -The RavelTech Prebid Adapter first version supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params. -For more information about the Xandr/AppNexus params can be found at [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] +The RavelTech Prebid Adapter supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params: + +| Name | Scope | Description | Example | Type | +|---------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|------------------| +| `placement_id` (PBS+PBJS) or `placementId` (PBJS) | required | The placement ID from AppNexus. You may identify a placement using the `invCode` and `member` instead of a placement ID. This parameter can be either a `string` or `integer` for Prebid.js, however `integer` is preferred. Legacy code can retain the `string` value. **Prebid Server requires an integer value.** | `234234` | `integer` | +| `member` | optional | The member ID from AppNexus. Must be used with `invCode`. | `'12345'` | `string` | +| `invCode` or `inv_code` | optional | The inventory code from AppNexus. Must be used with `member`. | `'abc123'` | `string` | +| `publisherId` or `publisher_id` | optional | The publisher ID from AppNexus. It is used by the AppNexus end point to identify the publisher when placement id is not provided and `invCode` goes wrong. The `publisherId` parameter can be either a `string` or `integer` for Prebid.js, however `integer` is preferred. | `12345` | `integer` | +| `frameworks` | optional | Array of integers listing API frameworks for Banner supported by the publisher. | `[1,2]` | `array of integer` | +| `user` | optional | Object that specifies information about an external user. See [User Object](#appnexus-user-object) for details. | `user: { age: 25, gender: 0, dnt: true}` | `object` | +| `allowSmallerSizes` or `allow_smaller_sizes` | optional | If `true`, ads smaller than the values in your ad unit's `sizes` array will be allowed to serve. Defaults to `false`. | `true` | `boolean` | +| `usePaymentRule` (PBJS) or `use_pmt_rule` (PBS+PBJS) | optional | If `true`, Appnexus will return net price to Prebid.js after publisher payment rules have been applied. | `true` | `boolean` | +| `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Mapped to [buy-side segment targeting](https://monetize.xandr.com/docs/segment-targeting) (login required). A maximum of 100 key/value pairs can be defined at the page level. Each tag can have up to 100 additional key/value pairs defined. Values can be empty. See [Passing Keys Without Values](#appnexus-no-value) below for examples. If you want to pass keywords for all adUnits, see [Auction Level Keywords](#appnexus-auction-keywords) for an example. Note that to use keyword with the Prebid Server adapter, that feature must be enabled for your account by an AppNexus account manager. | `keywords: { genre: ['rock', 'pop'] }` | `object` | +| `video` | optional | Object containing video targeting parameters. See [Video Object](#appnexus-video-object) for details. | `video: { playback_method: ['auto_play_sound_off'] }` | `object` | +| `app` | optional | Object containing mobile app parameters. See the [App Object](#appnexus-app-object) for details. | `app : { id: 'app-id'}` | `object` | +| `reserve` | optional | Sets a floor price for the bid that is returned. If floors have been configured in the AppNexus Console, those settings will override what is configured here unless 'Reserve Price Override' is checked. See [Xandr docs](https://docs.xandr.com/bundle/monetize_monetize-standard/page/topics/create-a-floor-rule.html) | `0.90` | `float` | +| `position` | optional | Identify the placement as above or below the fold. Allowed values: Unknown: `unknown`; Above the fold: `above`; Below the fold: `below` | `'above'` | `string` | +| `trafficSourceCode` or `traffic_source_code` | optional | Specifies the third-party source of this impression. | `'my_traffic_source'` | `string` | +| `supplyType` or `supply_type` | optional | Indicates the type of supply for this placement. Possible values are `web`, `mobile_web`, `mobile_app` | `'web'` | `string` | +| `pubClick` or `pub_click` | optional | Specifies a publisher-supplied URL for third-party click tracking. This is just a placeholder into which the publisher can insert their own click tracker. This parameter should be used for an unencoded tracker. This parameter is expected to be the last parameter in the URL. Please note that the click tracker placed in this parameter will only fire if the creative winning the auction is using AppNexus click tracking properly. | `'http://click.adserver.com/'` | `string` | +| `extInvCode` or `ext_inv_code` | optional | Specifies predefined value passed on the query string that can be used in reporting. The value must be entered into the system before it is logged. | `'10039'` | `string` | +| `externalImpId` or `external_imp_id` | optional | Specifies the unique identifier of an externally generated auction. | `'bacbab02626452b097f6030b3c89ac05'` | `string` | +| `generate_ad_pod_id` | optional | Signal to AppNexus to split impressions by ad pod and add unique ad pod id to each request. Specific to long form video endpoint only. Supported by Prebid Server, not Prebid JS. | `true` | `boolean` | + +For more information about the Xandr/AppNexus: [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] Please contact [support@raveltech.io] to activate your adapter after installation or for more information. From 217d24c6dc047e79ad1ff2a58e3d8915c6468d88 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Fri, 19 Jul 2024 08:12:48 +0200 Subject: [PATCH 08/15] fix anchors to the appnexus doc --- dev-docs/bidders/raveltech.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md index 96a3a9e8a1..e9b6232a96 100644 --- a/dev-docs/bidders/raveltech.md +++ b/dev-docs/bidders/raveltech.md @@ -38,12 +38,12 @@ The RavelTech Prebid Adapter supports only Xandr/Appnexus SSP and should be conf | `invCode` or `inv_code` | optional | The inventory code from AppNexus. Must be used with `member`. | `'abc123'` | `string` | | `publisherId` or `publisher_id` | optional | The publisher ID from AppNexus. It is used by the AppNexus end point to identify the publisher when placement id is not provided and `invCode` goes wrong. The `publisherId` parameter can be either a `string` or `integer` for Prebid.js, however `integer` is preferred. | `12345` | `integer` | | `frameworks` | optional | Array of integers listing API frameworks for Banner supported by the publisher. | `[1,2]` | `array of integer` | -| `user` | optional | Object that specifies information about an external user. See [User Object](#appnexus-user-object) for details. | `user: { age: 25, gender: 0, dnt: true}` | `object` | +| `user` | optional | Object that specifies information about an external user. See [User Object](/dev-docs/bidders/appnexus.md#appnexus-user-object) for details. | `user: { age: 25, gender: 0, dnt: true}` | `object` | | `allowSmallerSizes` or `allow_smaller_sizes` | optional | If `true`, ads smaller than the values in your ad unit's `sizes` array will be allowed to serve. Defaults to `false`. | `true` | `boolean` | | `usePaymentRule` (PBJS) or `use_pmt_rule` (PBS+PBJS) | optional | If `true`, Appnexus will return net price to Prebid.js after publisher payment rules have been applied. | `true` | `boolean` | -| `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Mapped to [buy-side segment targeting](https://monetize.xandr.com/docs/segment-targeting) (login required). A maximum of 100 key/value pairs can be defined at the page level. Each tag can have up to 100 additional key/value pairs defined. Values can be empty. See [Passing Keys Without Values](#appnexus-no-value) below for examples. If you want to pass keywords for all adUnits, see [Auction Level Keywords](#appnexus-auction-keywords) for an example. Note that to use keyword with the Prebid Server adapter, that feature must be enabled for your account by an AppNexus account manager. | `keywords: { genre: ['rock', 'pop'] }` | `object` | -| `video` | optional | Object containing video targeting parameters. See [Video Object](#appnexus-video-object) for details. | `video: { playback_method: ['auto_play_sound_off'] }` | `object` | -| `app` | optional | Object containing mobile app parameters. See the [App Object](#appnexus-app-object) for details. | `app : { id: 'app-id'}` | `object` | +| `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Mapped to [buy-side segment targeting](https://monetize.xandr.com/docs/segment-targeting) (login required). A maximum of 100 key/value pairs can be defined at the page level. Each tag can have up to 100 additional key/value pairs defined. Values can be empty. See [Passing Keys Without Values](/dev-docs/bidders/appnexus.mdappnexus-no-value) below for examples. If you want to pass keywords for all adUnits, see [Auction Level Keywords](/dev-docs/bidders/appnexus.mdappnexus-auction-keywords) for an example. Note that to use keyword with the Prebid Server adapter, that feature must be enabled for your account by an AppNexus account manager. | `keywords: { genre: ['rock', 'pop'] }` | `object` | +| `video` | optional | Object containing video targeting parameters. See [Video Object](/dev-docs/bidders/appnexus.mdappnexus-video-object) for details. | `video: { playback_method: ['auto_play_sound_off'] }` | `object` | +| `app` | optional | Object containing mobile app parameters. See the [App Object](/dev-docs/bidders/appnexus.mdappnexus-app-object) for details. | `app : { id: 'app-id'}` | `object` | | `reserve` | optional | Sets a floor price for the bid that is returned. If floors have been configured in the AppNexus Console, those settings will override what is configured here unless 'Reserve Price Override' is checked. See [Xandr docs](https://docs.xandr.com/bundle/monetize_monetize-standard/page/topics/create-a-floor-rule.html) | `0.90` | `float` | | `position` | optional | Identify the placement as above or below the fold. Allowed values: Unknown: `unknown`; Above the fold: `above`; Below the fold: `below` | `'above'` | `string` | | `trafficSourceCode` or `traffic_source_code` | optional | Specifies the third-party source of this impression. | `'my_traffic_source'` | `string` | From f96d2d9a54448a1a36b1ab56ceda165438183dbb Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Fri, 19 Jul 2024 08:15:54 +0200 Subject: [PATCH 09/15] fix anchors to the appnexus doc --- dev-docs/bidders/raveltech.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md index 96a3a9e8a1..f95b25c003 100644 --- a/dev-docs/bidders/raveltech.md +++ b/dev-docs/bidders/raveltech.md @@ -38,12 +38,12 @@ The RavelTech Prebid Adapter supports only Xandr/Appnexus SSP and should be conf | `invCode` or `inv_code` | optional | The inventory code from AppNexus. Must be used with `member`. | `'abc123'` | `string` | | `publisherId` or `publisher_id` | optional | The publisher ID from AppNexus. It is used by the AppNexus end point to identify the publisher when placement id is not provided and `invCode` goes wrong. The `publisherId` parameter can be either a `string` or `integer` for Prebid.js, however `integer` is preferred. | `12345` | `integer` | | `frameworks` | optional | Array of integers listing API frameworks for Banner supported by the publisher. | `[1,2]` | `array of integer` | -| `user` | optional | Object that specifies information about an external user. See [User Object](#appnexus-user-object) for details. | `user: { age: 25, gender: 0, dnt: true}` | `object` | +| `user` | optional | Object that specifies information about an external user. See [User Object](/dev-docs/bidders/appnexus.md#appnexus-user-object) for details. | `user: { age: 25, gender: 0, dnt: true}` | `object` | | `allowSmallerSizes` or `allow_smaller_sizes` | optional | If `true`, ads smaller than the values in your ad unit's `sizes` array will be allowed to serve. Defaults to `false`. | `true` | `boolean` | | `usePaymentRule` (PBJS) or `use_pmt_rule` (PBS+PBJS) | optional | If `true`, Appnexus will return net price to Prebid.js after publisher payment rules have been applied. | `true` | `boolean` | -| `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Mapped to [buy-side segment targeting](https://monetize.xandr.com/docs/segment-targeting) (login required). A maximum of 100 key/value pairs can be defined at the page level. Each tag can have up to 100 additional key/value pairs defined. Values can be empty. See [Passing Keys Without Values](#appnexus-no-value) below for examples. If you want to pass keywords for all adUnits, see [Auction Level Keywords](#appnexus-auction-keywords) for an example. Note that to use keyword with the Prebid Server adapter, that feature must be enabled for your account by an AppNexus account manager. | `keywords: { genre: ['rock', 'pop'] }` | `object` | -| `video` | optional | Object containing video targeting parameters. See [Video Object](#appnexus-video-object) for details. | `video: { playback_method: ['auto_play_sound_off'] }` | `object` | -| `app` | optional | Object containing mobile app parameters. See the [App Object](#appnexus-app-object) for details. | `app : { id: 'app-id'}` | `object` | +| `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Mapped to [buy-side segment targeting](https://monetize.xandr.com/docs/segment-targeting) (login required). A maximum of 100 key/value pairs can be defined at the page level. Each tag can have up to 100 additional key/value pairs defined. Values can be empty. See [Passing Keys Without Values](/dev-docs/bidders/appnexus.md#appnexus-no-value) below for examples. If you want to pass keywords for all adUnits, see [Auction Level Keywords](/dev-docs/bidders/appnexus.md#appnexus-auction-keywords) for an example. Note that to use keyword with the Prebid Server adapter, that feature must be enabled for your account by an AppNexus account manager. | `keywords: { genre: ['rock', 'pop'] }` | `object` | +| `video` | optional | Object containing video targeting parameters. See [Video Object](/dev-docs/bidders/appnexus.md#appnexus-video-object) for details. | `video: { playback_method: ['auto_play_sound_off'] }` | `object` | +| `app` | optional | Object containing mobile app parameters. See the [App Object](/dev-docs/bidders/appnexus.md#appnexus-app-object) for details. | `app : { id: 'app-id'}` | `object` | | `reserve` | optional | Sets a floor price for the bid that is returned. If floors have been configured in the AppNexus Console, those settings will override what is configured here unless 'Reserve Price Override' is checked. See [Xandr docs](https://docs.xandr.com/bundle/monetize_monetize-standard/page/topics/create-a-floor-rule.html) | `0.90` | `float` | | `position` | optional | Identify the placement as above or below the fold. Allowed values: Unknown: `unknown`; Above the fold: `above`; Below the fold: `below` | `'above'` | `string` | | `trafficSourceCode` or `traffic_source_code` | optional | Specifies the third-party source of this impression. | `'my_traffic_source'` | `string` | From 0970b076912e21a0a31e1925d8083c8555ffb694 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Wed, 5 Mar 2025 16:16:15 +0100 Subject: [PATCH 10/15] initial release of raveltechRtdProvider.md, replacing the raveltech.md as we're changing the approach from bid adapter to rtd module. --- dev-docs/bidders/raveltech.md | 59 ------------------- dev-docs/modules/raveltechRtdProvider.md | 73 ++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 59 deletions(-) delete mode 100644 dev-docs/bidders/raveltech.md create mode 100644 dev-docs/modules/raveltechRtdProvider.md diff --git a/dev-docs/bidders/raveltech.md b/dev-docs/bidders/raveltech.md deleted file mode 100644 index 57c49feb05..0000000000 --- a/dev-docs/bidders/raveltech.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: bidder -title: RavelTech -description: Prebid RavelTech Bidder Adaptor -biddercode: raveltech -media_types: banner, video, native -tcfeu_supported: true -dsa_supported: true -prebid_member: true -userIds: all (with commercial activation) -schain_supported: true -coppa_supported: true -usp_supported: true -gpp_supported: true -floors_supported: true -fpd_supported: false -pbjs: true -pbjs_version_notes: please avoid using v7.15 and v7.16 -pbs: true -gvl_id: 32 -sidebarType: 1 ---- - -### RavelTech Bid Adapter - -Ravel Technologies developed ZKAD (Zero-Knowledge ADvertising), a protocol anonymizing RTB data & PII during the RTB bidding process and during data processing. -ZKAD is using a scalable proprietary Homomorphic Encryption scheme (Ravel Homormorphic Encryption, RHE), a form of encryption that allows to perform computations at scale on encrypted data without having to first decrypt it. -ZKAD allows publishers to protect users’ privacy and publishers’ data while allowing advanced targeted advertising and advanced regulatory compliance. - -Ravel Bidder is a “Privacy Bus” allowing to anonymize bid requests before forwarding them to SSP and DSP preventing any personal data to be transferred to SSP and DSP. PII IDs are removed or/and anonymized into RIDs (Ravelized IDs). Furthermore, User-Agent is truncated, and location is provided with a significant Radius. IP addresses are not stored by the Privacy Bus and are not provided in the bid requests. - -The RavelTech Prebid Adapter supports only Xandr/Appnexus SSP and should be configured with your current Xandr/Appnexus existing params: - -| Name | Scope | Description | Example | Type | -|---------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|------------------| -| `placement_id` (PBS+PBJS) or `placementId` (PBJS) | required | The placement ID from AppNexus. You may identify a placement using the `invCode` and `member` instead of a placement ID. This parameter can be either a `string` or `integer` for Prebid.js, however `integer` is preferred. Legacy code can retain the `string` value. **Prebid Server requires an integer value.** | `234234` | `integer` | -| `member` | optional | The member ID from AppNexus. Must be used with `invCode`. | `'12345'` | `string` | -| `invCode` or `inv_code` | optional | The inventory code from AppNexus. Must be used with `member`. | `'abc123'` | `string` | -| `publisherId` or `publisher_id` | optional | The publisher ID from AppNexus. It is used by the AppNexus end point to identify the publisher when placement id is not provided and `invCode` goes wrong. The `publisherId` parameter can be either a `string` or `integer` for Prebid.js, however `integer` is preferred. | `12345` | `integer` | -| `frameworks` | optional | Array of integers listing API frameworks for Banner supported by the publisher. | `[1,2]` | `array of integer` | -| `user` | optional | Object that specifies information about an external user. See [User Object](/dev-docs/bidders/appnexus.md#appnexus-user-object) for details. | `user: { age: 25, gender: 0, dnt: true}` | `object` | -| `user` | optional | Object that specifies information about an external user. See [User Object](/dev-docs/bidders/appnexus.md#appnexus-user-object) for details. | `user: { age: 25, gender: 0, dnt: true}` | `object` | -| `allowSmallerSizes` or `allow_smaller_sizes` | optional | If `true`, ads smaller than the values in your ad unit's `sizes` array will be allowed to serve. Defaults to `false`. | `true` | `boolean` | -| `usePaymentRule` (PBJS) or `use_pmt_rule` (PBS+PBJS) | optional | If `true`, Appnexus will return net price to Prebid.js after publisher payment rules have been applied. | `true` | `boolean` | -| `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Mapped to [buy-side segment targeting](https://monetize.xandr.com/docs/segment-targeting) (login required). A maximum of 100 key/value pairs can be defined at the page level. Each tag can have up to 100 additional key/value pairs defined. Values can be empty. See [Passing Keys Without Values](/dev-docs/bidders/appnexus.md#appnexus-no-value) below for examples. If you want to pass keywords for all adUnits, see [Auction Level Keywords](/dev-docs/bidders/appnexus.md#appnexus-auction-keywords) for an example. Note that to use keyword with the Prebid Server adapter, that feature must be enabled for your account by an AppNexus account manager. | `keywords: { genre: ['rock', 'pop'] }` | `object` | -| `video` | optional | Object containing video targeting parameters. See [Video Object](/dev-docs/bidders/appnexus.md#appnexus-video-object) for details. | `video: { playback_method: ['auto_play_sound_off'] }` | `object` | -| `app` | optional | Object containing mobile app parameters. See the [App Object](/dev-docs/bidders/appnexus.md#appnexus-app-object) for details. | `app : { id: 'app-id'}` | `object` | -| `reserve` | optional | Sets a floor price for the bid that is returned. If floors have been configured in the AppNexus Console, those settings will override what is configured here unless 'Reserve Price Override' is checked. See [Xandr docs](https://docs.xandr.com/bundle/monetize_monetize-standard/page/topics/create-a-floor-rule.html) | `0.90` | `float` | -| `position` | optional | Identify the placement as above or below the fold. Allowed values: Unknown: `unknown`; Above the fold: `above`; Below the fold: `below` | `'above'` | `string` | -| `trafficSourceCode` or `traffic_source_code` | optional | Specifies the third-party source of this impression. | `'my_traffic_source'` | `string` | -| `supplyType` or `supply_type` | optional | Indicates the type of supply for this placement. Possible values are `web`, `mobile_web`, `mobile_app` | `'web'` | `string` | -| `pubClick` or `pub_click` | optional | Specifies a publisher-supplied URL for third-party click tracking. This is just a placeholder into which the publisher can insert their own click tracker. This parameter should be used for an unencoded tracker. This parameter is expected to be the last parameter in the URL. Please note that the click tracker placed in this parameter will only fire if the creative winning the auction is using AppNexus click tracking properly. | `'http://click.adserver.com/'` | `string` | -| `extInvCode` or `ext_inv_code` | optional | Specifies predefined value passed on the query string that can be used in reporting. The value must be entered into the system before it is logged. | `'10039'` | `string` | -| `externalImpId` or `external_imp_id` | optional | Specifies the unique identifier of an externally generated auction. | `'bacbab02626452b097f6030b3c89ac05'` | `string` | -| `generate_ad_pod_id` | optional | Signal to AppNexus to split impressions by ad pod and add unique ad pod id to each request. Specific to long form video endpoint only. Supported by Prebid Server, not Prebid JS. | `true` | `boolean` | - -For more information about the Xandr/AppNexus: [https://github.com/prebid/prebid.github.io/blob/master/dev-docs/bidders/appnexus.md] - -Please contact [support@raveltech.io] to activate your adapter after installation or for more information. diff --git a/dev-docs/modules/raveltechRtdProvider.md b/dev-docs/modules/raveltechRtdProvider.md new file mode 100644 index 0000000000..b2c8f85ab9 --- /dev/null +++ b/dev-docs/modules/raveltechRtdProvider.md @@ -0,0 +1,73 @@ +--- +layout: page_v2 +title: Raveltech RTD Module +display_name: Raveltech RTD Module +description: Raveltech Real Time Data Module +page_type: module +module_type: rtd +module_code : raveltechRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Raveltech RTD Module for Prebid.js + +## Overview + +``` +Module Name: Raveltech RTD Provider +Module Type: RTD Provider +Maintainer: maintainers@raveltech.io +``` + +The Raveltech RTD (Real-Time Data) module for Prebid.js integrates with Ravel Technologies' privacy-focused solution to anonymize bidder requests before they are sent to SSPs and DSPs. Using the Ravel Privacy Bus, this module ensures that personally identifiable information (PII) is never transmitted in bid requests, enhancing privacy compliance and security. + +## How It Works + +The module operates in two modes: +1. **Bid URL Replacement:** The module modifies the bid request URL of the configured bidders to pass through the Ravel proxy, ensuring that all IDs are anonymized. +2. **Bid Duplication (if `preserveOriginalBid` is enabled):** The module duplicates the original bid request, sending one request as-is and another through the Ravel proxy with anonymized IDs. + +## Configuration + +To enable the Raveltech RTD module, you need to configure it with a list of bidders and specify whether to preserve the original bid request. +Please contact support@raveltech.io to activate your adapter after installation or for more information. + +### Build +``` +gulp build --modules="rtdModule,raveltechRtdProvider,appnexusBidAdapter,..." +``` + +> Note that the global RTD module, `rtdModule`, is a prerequisite of the raveltech RTD module. + +### Parameters + +| Parameter | Type | Description | +|--------------------|--------|-------------| +| `bidders` | Array | A list of bidder codes (or their alias if an alias is used) that should have their bid requests anonymized via Ravel. | +| `preserveOriginalBid` | Boolean | If `true`, the original bid request is preserved, and an additional bid request is sent through the Ravel proxy. If `false`, the original bid request is replaced with the Ravel-protected request. | + +### Example Configuration + +```javascript +pbjs.setConfig({ + realTimeData: { + dataProviders: [{ + name: 'raveltech', + params: { + bidders: ['appnexus', 'rubicon'], + preserveOriginalBid: true + } + }] + } +}); +``` + +## Privacy Features + +The RavelTech RTD module ensures the following privacy protections: +- PII is removed or transformed into RIDs (Ravelized IDs). +- The User-Agent is truncated. +- Location data is generalized with a significant radius. +- IP addresses are not stored or included in bid requests. From 60335b26f636ad0e38db306cd2ef2f1206dc30f6 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Wed, 5 Mar 2025 16:17:47 +0100 Subject: [PATCH 11/15] Update of documentation --- dev-docs/modules/raveltechRtdProvider.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/dev-docs/modules/raveltechRtdProvider.md b/dev-docs/modules/raveltechRtdProvider.md index b2c8f85ab9..93fa7fdc41 100644 --- a/dev-docs/modules/raveltechRtdProvider.md +++ b/dev-docs/modules/raveltechRtdProvider.md @@ -21,7 +21,7 @@ Module Type: RTD Provider Maintainer: maintainers@raveltech.io ``` -The Raveltech RTD (Real-Time Data) module for Prebid.js integrates with Ravel Technologies' privacy-focused solution to anonymize bidder requests before they are sent to SSPs and DSPs. Using the Ravel Privacy Bus, this module ensures that personally identifiable information (PII) is never transmitted in bid requests, enhancing privacy compliance and security. +The RavelTech RTD (Real-Time Data) module for Prebid.js enables publishers to integrate seamlessly with Ravel Technologies' privacy-focused solution, ensuring bidder requests are anonymized before reaching SSPs and DSPs. By leveraging the Ravel Privacy Bus, this module prevents the transmission of personally identifiable information (PII) in bid requests, strengthening privacy compliance and security. ## How It Works @@ -66,8 +66,6 @@ pbjs.setConfig({ ## Privacy Features -The RavelTech RTD module ensures the following privacy protections: -- PII is removed or transformed into RIDs (Ravelized IDs). -- The User-Agent is truncated. -- Location data is generalized with a significant radius. -- IP addresses are not stored or included in bid requests. +The RavelTech RTD module allows publishers to implement the following privacy protections: +- Personally Identifiable Information (PII) is either removed or converted into Anonymized IDs (RIDs). +- Bid requests are routed through an anonymized proxy before reaching the SSP, ensuring IP address anonymization. \ No newline at end of file From 630dd84281ce4d8638b53cc48b4cda088a865d75 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Wed, 5 Mar 2025 17:05:31 +0100 Subject: [PATCH 12/15] fix the markdown lint errors --- dev-docs/modules/raveltechRtdProvider.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/dev-docs/modules/raveltechRtdProvider.md b/dev-docs/modules/raveltechRtdProvider.md index 93fa7fdc41..6c9efc8a54 100644 --- a/dev-docs/modules/raveltechRtdProvider.md +++ b/dev-docs/modules/raveltechRtdProvider.md @@ -15,7 +15,7 @@ sidebarType : 1 ## Overview -``` +```text Module Name: Raveltech RTD Provider Module Type: RTD Provider Maintainer: maintainers@raveltech.io @@ -26,16 +26,20 @@ The RavelTech RTD (Real-Time Data) module for Prebid.js enables publishers to in ## How It Works The module operates in two modes: -1. **Bid URL Replacement:** The module modifies the bid request URL of the configured bidders to pass through the Ravel proxy, ensuring that all IDs are anonymized. -2. **Bid Duplication (if `preserveOriginalBid` is enabled):** The module duplicates the original bid request, sending one request as-is and another through the Ravel proxy with anonymized IDs. + +1. Bid URL Replacement: +** The module modifies the bid request URL of the configured bidders to pass through the Ravel proxy, ensuring that all IDs are anonymized. +2. Bid Duplication (if `preserveOriginalBid` is enabled): +** The module duplicates the original bid request, sending one request as-is and another through the Ravel proxy with anonymized IDs. + ## Configuration To enable the Raveltech RTD module, you need to configure it with a list of bidders and specify whether to preserve the original bid request. -Please contact support@raveltech.io to activate your adapter after installation or for more information. +Please contact to activate your adapter after installation or for more information. ### Build -``` +```bash gulp build --modules="rtdModule,raveltechRtdProvider,appnexusBidAdapter,..." ``` @@ -67,5 +71,6 @@ pbjs.setConfig({ ## Privacy Features The RavelTech RTD module allows publishers to implement the following privacy protections: + - Personally Identifiable Information (PII) is either removed or converted into Anonymized IDs (RIDs). -- Bid requests are routed through an anonymized proxy before reaching the SSP, ensuring IP address anonymization. \ No newline at end of file +- Bid requests are routed through an anonymized proxy before reaching the SSP, ensuring IP address anonymization. From 6261588e2ac87fc91d275f57db2c78ac41c0e2fe Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Wed, 5 Mar 2025 17:08:09 +0100 Subject: [PATCH 13/15] fix markdown lint errors --- dev-docs/modules/raveltechRtdProvider.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/modules/raveltechRtdProvider.md b/dev-docs/modules/raveltechRtdProvider.md index 6c9efc8a54..bd8e047edf 100644 --- a/dev-docs/modules/raveltechRtdProvider.md +++ b/dev-docs/modules/raveltechRtdProvider.md @@ -32,13 +32,13 @@ The module operates in two modes: 2. Bid Duplication (if `preserveOriginalBid` is enabled): ** The module duplicates the original bid request, sending one request as-is and another through the Ravel proxy with anonymized IDs. - ## Configuration To enable the Raveltech RTD module, you need to configure it with a list of bidders and specify whether to preserve the original bid request. Please contact to activate your adapter after installation or for more information. ### Build + ```bash gulp build --modules="rtdModule,raveltechRtdProvider,appnexusBidAdapter,..." ``` From 4cc70d0019cbaabb1e956497ff195996a15a4b4d Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Thu, 13 Mar 2025 15:45:34 +0100 Subject: [PATCH 14/15] update markdown with instructions on how to load zkad.js --- dev-docs/modules/raveltechRtdProvider.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dev-docs/modules/raveltechRtdProvider.md b/dev-docs/modules/raveltechRtdProvider.md index bd8e047edf..fd6cdcfd7d 100644 --- a/dev-docs/modules/raveltechRtdProvider.md +++ b/dev-docs/modules/raveltechRtdProvider.md @@ -35,6 +35,14 @@ The module operates in two modes: ## Configuration To enable the Raveltech RTD module, you need to configure it with a list of bidders and specify whether to preserve the original bid request. +For the anonymization feature to work, you also need to load a javascript in the header of your HTML page: + +```html + +``` + +** NB: the URL to load zkad.js may change depending your setup. Please reach out to your contact at Ravel Technologies to ensure you have the correct URL. ** + Please contact to activate your adapter after installation or for more information. ### Build From 1b1e1f00436da0370870a1e952e37966d07c3670 Mon Sep 17 00:00:00 2001 From: Michel Nguyen Date: Thu, 13 Mar 2025 15:53:50 +0100 Subject: [PATCH 15/15] fix lint errors --- dev-docs/modules/raveltechRtdProvider.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/modules/raveltechRtdProvider.md b/dev-docs/modules/raveltechRtdProvider.md index fd6cdcfd7d..596720699f 100644 --- a/dev-docs/modules/raveltechRtdProvider.md +++ b/dev-docs/modules/raveltechRtdProvider.md @@ -41,7 +41,7 @@ For the anonymization feature to work, you also need to load a javascript in the ``` -** NB: the URL to load zkad.js may change depending your setup. Please reach out to your contact at Ravel Technologies to ensure you have the correct URL. ** +**NB: the URL to load zkad.js may change depending your setup. Please reach out to your contact at Ravel Technologies to ensure you have the correct URL.** Please contact to activate your adapter after installation or for more information.