From 1f9adc9d3f1743cf494630460afa415330d7298b Mon Sep 17 00:00:00 2001 From: antoniogargaro Date: Thu, 9 Apr 2026 16:12:57 +0100 Subject: [PATCH 1/4] docs: update permutiveRtdProvider.md for msft bidder custom cohorts Add msft to supported custom cohort bidders list, document the new params.bidders configuration, and note the appnexus-to-msft migration path. Co-Authored-By: Claude Opus 4.6 (1M context) --- dev-docs/modules/permutiveRtdProvider.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dev-docs/modules/permutiveRtdProvider.md b/dev-docs/modules/permutiveRtdProvider.md index 10c3836212..492b74b7a2 100644 --- a/dev-docs/modules/permutiveRtdProvider.md +++ b/dev-docs/modules/permutiveRtdProvider.md @@ -68,6 +68,10 @@ as well as enabling settings for specific use cases mentioned above (e.g. acbidd | params | Object | | - | | params.acBidders | String[] | An array of bidder codes to share cohorts with in certain versions of Prebid, see below | `[]` | | params.maxSegs | Integer | Maximum number of cohorts to be included in either the `permutive` or `p_standard` key-value. | `500` | +| params.bidders | Object | Per-bidder configuration for custom cohort sources. Keys are bidder codes. | `{ msft: { customCohorts: { source: 'ls', key: '_papns' } } }` | +| params.bidders.\.customCohorts | Object | Custom cohorts source configuration for a specific bidder. | - | +| params.bidders.\.customCohorts.source | String | Storage type to read custom cohorts from. Currently only `'ls'` (localStorage) is supported. | - | +| params.bidders.\.customCohorts.key | String | The localStorage key to read custom cohorts from. | - | ### Context @@ -132,11 +136,14 @@ Currently, bidders with known support for custom cohort targeting are: * Xandr * Magnite +* Microsoft (msft) When enabling the respective Activation for a cohort in Permutive, this module will automatically attach that cohort ID to the bid request. There is no need to enable individual bidders in the module configuration, it will automatically reflect which SSP integrations you have enabled in your Permutive dashboard. Permutive cohorts will be sent in the permutive key-value. +**Note:** Publishers migrating from the `appnexus` bidder to `msft` should add `msft` to the `acBidders` array (or via the Permutive platform). The module automatically reads custom cohorts for `msft` from the same localStorage key used by `appnexus`. + ### _Enabling Advertiser Cohorts_ If you are connecting to an Advertiser seat within Permutive to share Advertiser Cohorts, populate the acbidders config in the Permutive RTD with an array of bidder codes with whom you wish to share Advertiser Cohorts with. From 3571aacc5c3dfdcb0b9d351dc4b990c3f1d1b955 Mon Sep 17 00:00:00 2001 From: antoniogargaro Date: Thu, 9 Apr 2026 16:20:35 +0100 Subject: [PATCH 2/4] fix: align markdown table columns to pass MD060 lint rule Co-Authored-By: Claude Opus 4.6 (1M context) --- dev-docs/modules/permutiveRtdProvider.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/dev-docs/modules/permutiveRtdProvider.md b/dev-docs/modules/permutiveRtdProvider.md index 492b74b7a2..923a322d9e 100644 --- a/dev-docs/modules/permutiveRtdProvider.md +++ b/dev-docs/modules/permutiveRtdProvider.md @@ -61,17 +61,17 @@ as well as enabling settings for specific use cases mentioned above (e.g. acbidd {: .table .table-bordered .table-striped } -| Name | Type | Description | Default | -| ---------------------- | -------------------- | --------------------------------------------------------------------------------------------- | ------------------ | -| name | String | This should always be `permutive` | - | -| waitForIt | Boolean | Should be `true` if there's an `auctionDelay` defined (optional) | `false` | -| params | Object | | - | -| params.acBidders | String[] | An array of bidder codes to share cohorts with in certain versions of Prebid, see below | `[]` | -| params.maxSegs | Integer | Maximum number of cohorts to be included in either the `permutive` or `p_standard` key-value. | `500` | -| params.bidders | Object | Per-bidder configuration for custom cohort sources. Keys are bidder codes. | `{ msft: { customCohorts: { source: 'ls', key: '_papns' } } }` | -| params.bidders.\.customCohorts | Object | Custom cohorts source configuration for a specific bidder. | - | -| params.bidders.\.customCohorts.source | String | Storage type to read custom cohorts from. Currently only `'ls'` (localStorage) is supported. | - | -| params.bidders.\.customCohorts.key | String | The localStorage key to read custom cohorts from. | - | +| Name | Type | Description | Default | +| ---------------------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | +| name | String | This should always be `permutive` | - | +| waitForIt | Boolean | Should be `true` if there's an `auctionDelay` defined (optional) | `false` | +| params | Object | | - | +| params.acBidders | String[] | An array of bidder codes to share cohorts with in certain versions of Prebid, see below | `[]` | +| params.maxSegs | Integer | Maximum number of cohorts to be included in either the `permutive` or `p_standard` key-value. | `500` | +| params.bidders | Object | Per-bidder configuration for custom cohort sources. Keys are bidder codes. | `{ msft: { customCohorts: { source: 'ls', key: '_papns' } } }` | +| params.bidders.\.customCohorts | Object | Custom cohorts source configuration for a specific bidder. | - | +| params.bidders.\.customCohorts.source | String | Storage type to read custom cohorts from. Currently only `'ls'` (localStorage) is supported. | - | +| params.bidders.\.customCohorts.key | String | The localStorage key to read custom cohorts from. | - | ### Context From f7cd08c96a85e5cff66f46a404fdc5ea61111aee Mon Sep 17 00:00:00 2001 From: antoniogargaro Date: Tue, 14 Apr 2026 17:19:01 +0100 Subject: [PATCH 3/4] remove hardcoded msft default from docs, add publisher config example Mirrors the code change in Prebid.js PR #14655. The params.bidders default is now {} and publishers must explicitly configure msft custom cohort sources. Co-Authored-By: Claude Opus 4.6 (1M context) --- dev-docs/modules/permutiveRtdProvider.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/dev-docs/modules/permutiveRtdProvider.md b/dev-docs/modules/permutiveRtdProvider.md index 923a322d9e..0b5fcee63c 100644 --- a/dev-docs/modules/permutiveRtdProvider.md +++ b/dev-docs/modules/permutiveRtdProvider.md @@ -68,7 +68,7 @@ as well as enabling settings for specific use cases mentioned above (e.g. acbidd | params | Object | | - | | params.acBidders | String[] | An array of bidder codes to share cohorts with in certain versions of Prebid, see below | `[]` | | params.maxSegs | Integer | Maximum number of cohorts to be included in either the `permutive` or `p_standard` key-value. | `500` | -| params.bidders | Object | Per-bidder configuration for custom cohort sources. Keys are bidder codes. | `{ msft: { customCohorts: { source: 'ls', key: '_papns' } } }` | +| params.bidders | Object | Per-bidder configuration for custom cohort sources. Keys are bidder codes. | `{}` | | params.bidders.\.customCohorts | Object | Custom cohorts source configuration for a specific bidder. | - | | params.bidders.\.customCohorts.source | String | Storage type to read custom cohorts from. Currently only `'ls'` (localStorage) is supported. | - | | params.bidders.\.customCohorts.key | String | The localStorage key to read custom cohorts from. | - | @@ -142,7 +142,18 @@ When enabling the respective Activation for a cohort in Permutive, this module w There is no need to enable individual bidders in the module configuration, it will automatically reflect which SSP integrations you have enabled in your Permutive dashboard. Permutive cohorts will be sent in the permutive key-value. -**Note:** Publishers migrating from the `appnexus` bidder to `msft` should add `msft` to the `acBidders` array (or via the Permutive platform). The module automatically reads custom cohorts for `msft` from the same localStorage key used by `appnexus`. +**Note:** Publishers migrating from the `appnexus` bidder to `msft` need to configure the `params.bidders` object so the module knows where to read custom cohorts from. The Permutive SDK writes `msft` custom cohorts to the same localStorage key used by `appnexus` (`_papns`), so publishers should add the following to their Permutive RTD config: + +```javascript +params: { + acBidders: ['msft'], + bidders: { + msft: { + customCohorts: { source: 'ls', key: '_papns' } + } + } +} +``` ### _Enabling Advertiser Cohorts_ From b4a4959ffa763aeb7719b22f711aaa15983db5c0 Mon Sep 17 00:00:00 2001 From: antoniogargaro Date: Wed, 22 Apr 2026 10:03:53 +0100 Subject: [PATCH 4/4] docs(permutiveRtdProvider): note params.bidders now triggers ortb2 writes Document that listing a bidder under params.bidders causes the module to write ortb2 for that bidder, even when it is not in acBidders or Permutive's SSP list. Paired with the Prebid.js fix that iterates params.bidders keys in setBidderRtb. Co-Authored-By: Claude Opus 4.7 (1M context) --- dev-docs/modules/permutiveRtdProvider.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/modules/permutiveRtdProvider.md b/dev-docs/modules/permutiveRtdProvider.md index 0b5fcee63c..b8fce40305 100644 --- a/dev-docs/modules/permutiveRtdProvider.md +++ b/dev-docs/modules/permutiveRtdProvider.md @@ -68,7 +68,7 @@ as well as enabling settings for specific use cases mentioned above (e.g. acbidd | params | Object | | - | | params.acBidders | String[] | An array of bidder codes to share cohorts with in certain versions of Prebid, see below | `[]` | | params.maxSegs | Integer | Maximum number of cohorts to be included in either the `permutive` or `p_standard` key-value. | `500` | -| params.bidders | Object | Per-bidder configuration for custom cohort sources. Keys are bidder codes. | `{}` | +| params.bidders | Object | Per-bidder configuration for custom cohort sources. Keys are bidder codes; listing a bidder here also causes the module to write ortb2 data for that bidder, even if it is not in `acBidders` or on Permutive's SSP list. | `{}` | | params.bidders.\.customCohorts | Object | Custom cohorts source configuration for a specific bidder. | - | | params.bidders.\.customCohorts.source | String | Storage type to read custom cohorts from. Currently only `'ls'` (localStorage) is supported. | - | | params.bidders.\.customCohorts.key | String | The localStorage key to read custom cohorts from. | - |