Microsoft
Features
Bidder Code | msft | Prebid.org Member | yes |
---|---|---|---|
Prebid.js Adapter | yes | Prebid Server Adapter | yes |
Media Types | display, video, native | Multi Format Support | check with bidder |
TCF-EU Support | yes | IAB GVL ID | 32 |
GPP Support | some (check with bidder) | DSA Support | yes |
USP/CCPA Support | yes | COPPA Support | yes |
Supply Chain Support | yes | Demand Chain Support | check with bidder |
Safeframes OK | check with bidder | Supports Deals | check with bidder |
Floors Module Support | yes | First Party Data Support | yes |
Endpoint Compression | check with bidder | ORTB Blocking Support | check with bidder |
User IDs | all (with commercial activation) | Privacy Sandbox | check with bidder |
Prebid Server App Support | check with bidder |
Table of Contents
All Microsoft (formerly AppNexus/Xandr) placements included in a single call to requestBids
must belong to the same parent Publisher. If placements from two different publishers are included in the call, the Microsoft bidder will not return any demand for those placements.
Note: This requirement does not apply to adapters that are aliasing the Microsoft adapter.
Bid Params
NOTE Either placement_id
OR both member
and inv_code
are required. Please don’t specify all three together, it may impact delivery.
Name | Scope | Description | Example | Type |
---|---|---|---|---|
placement_id |
required (see note above) | The placement ID from Microsoft Monetize. You may identify a placement using the inv_code and member instead of a placement ID. |
11223344 |
integer |
member |
required (see note above) | The member ID from Microsoft Monetize. Must be used with inv_code . |
1234 |
integer |
inv_code |
required (see note above) | The inventory code from Microsoft Monetize. Must be used with member . |
'abc123' |
string |
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 |
use_pmt_rule |
optional | If true , Microsoft Monetize will return net price to Prebid.js after publisher payment rules have been applied. |
true |
boolean |
keywords |
optional | A comma-delimited string of key-value pairs (or terms) applied to this sepcific ad slot on the page. Mapped to buy-side segment targeting (login required). A maximum of 100 key/value pairs can be defined at the request/page level. Each tag can have up to 100 additional key/value pairs defined. If you want to pass keywords for all adUnits, please use the relevant keywords fields in the First Party Data feature. Note that to use keyword with the Prebid Server adapter, that feature must be enabled for your account by an Microsoft Monetize account manager. | pet=dog,food,brand=oldroy |
string |
traffic_source_code |
optional | Specifies the third-party source of this impression. | 'my_traffic_source' |
string |
pubclick |
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 Microsoft Monetize click tracking properly. | 'http://click.adserver.com/' |
string |
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 |
ext_imp_id |
optional | Specifies the unique identifier of an externally generated auction. | 'bacbab02626452b097f6030b3c89ac05' |
string |
banner_frameworks |
optional | Array of integers listing API frameworks for Banner supported by the publisher. | [1,2] |
array of integers |
Migrating from the AppNexus Bid Adapter & Bid Params
If you are migrating from the AppNexus bid adapter, a number of the previously available AppNexus bid parameters have been deprecated as available options for the Microsoft bid parameters. These deprecated bid parameters are still available however, they’re just read from other standarized locations offered within Prebid.js. This change was implemented to help us align better to the publisher-aligned features (such as First Party Data) to use a single setup for many bidders.
The following table shows how the bid parameters have changed between the two adapters:
AppNexus Parameter | Microsoft Parameter | Description |
---|---|---|
params.placementId |
params.placement_id |
Placement ID (only the underscore case is now supported in the name, value only accepts integers) |
params.member |
params.member |
Member ID (value only accepts integers) |
params.inv_code |
params.inv_code |
Inventory code (unchanged) |
params.publisher_id |
Use ortb2.publisher.id |
Publisher ID (moved to ortb2 config) |
params.frameworks |
params.banner_frameworks |
Banner API frameworks array (small name change to clarify banner only) |
params.user |
Use ortb2.user |
User data (moved to ortb2 config) |
params.allow_smaller_sizes |
params.allow_smaller_sizes |
Allow smaller ad sizes (unchanged) |
params.use_pmt_rule |
params.use_pmt_rule |
Use payment rule (unchanged) |
params.keywords |
params.keywords |
Tag/Imp-level keywords (use ORTB format of comma-delimited string value; eg 'pet=cat,food,brand=fancyfeast' ) |
params.video |
Use mediaTypes.video |
Video parameters (moved to mediaTypes) |
params.video.frameworks |
Use mediaTypes.video.api |
Video API frameworks (moved to mediaTypes) |
params.app |
Use ortb2.app |
App data (moved to ortb2 config) |
params.reserve |
Use bidfloor module | Reserve price (use bidfloor module) |
params.position |
Use mediaTypes.banner.pos |
Banner position (moved to mediaTypes) |
params.traffic_source_code |
params.traffic_source_code |
Traffic source code (unchanged) |
params.supply_type |
Use ortb2.site or ortb2.app |
Supply type (moved to ortb2 config) |
params.pub_click |
params.pubclick |
Publisher click URL (dropped underscore to align to endpoint) |
params.ext_inv_code |
params.ext_inv_code |
External inventory code (unchanged) |
params.external_imp_id |
params.ext_imp_id |
External impression ID (shortend to ext) |
Migrating from the AppNexus Bid Adapter & Ad Server Targeting
If you are migrating from the AppNexus bid adapter and your Ad Server Line Items (or related entities) relied on bidder specific keyword targeting to the Prebid.js keys (eg hb_bidder=appnexus or hb_pb_appnexus=5.00), you will like need to adjust your setup. Some adjustments could be creating additional line-items, updating the existing targeting, reomving targeting (if it’s no longer needed), or some other variation to ensure the targeting includes the msft
term in either the key-name or key-value.
Migrating from the AppNexus Bid Adapter & Native Ads
If you are migrating from the AppNexus bid adapter, the setup for Native adUnits now require the use of the Prebid.js ORTB Native setup. The Microsoft Bid Adapter no longer offers support to the legacy Prebid.js Native adUnit setup.
Requests using that legacy approach will NOT work and will need to be converted to the equivalent values in the adUnit. This change is made to better align with Prebid.js and many other Bid Adapters that support Native in an ORTB context.
Please refer to the Prebid.js Native Implementation Guide if you need additional information to implement the Native ORTB setup.
Migrating from the AppNexus Bid Adapter & Auction Level Keywords
If you are migrating from the AppNexus bid adapter, the previously available setConfig
option named appnexusAuctionKeywords
is not supported within the Microsoft bid adapter.
If you need to specify keyword-like data at the auction/request level, please instead specify that data within the appropriate area of the First Party Data section of your setup (eg ortb2.site.keywords
). If you wish to set bidder-specific First Party Data data, please refer to this page.
First Party Data
Publishers should use the ortb2
method of setting First Party Data.
PBS/PSP supports all first party data fields: site, user, segments, and imp-level first party data.
Debug Auction
Enabling the Microsoft Monetize Debug Auction feature should only be done for diagnosing the Monetize auction. Do NOT enable this feature in a production setting where it may impact users. The debug output will take the place of the normal bid response, meaning the ad will NOT show even if the auction debug output indicated there was a winning bid.
To understand what is happening behind the scenes during an auction, you can enable a debug auction by either adding an apn_prebid_debug
cookie with a JSON string or add certain key-value pairs in the page URL’s query string.
To use the cookie approach, the JSON payload for the cookie could look like:
{ "enabled": true, "dongle": "QWERTY", "debug_timeout": 1000, "member_id": 958 }
NOTE If you use this approach, you may need to grant permission to the msft Bid Adapter in the your Prebid.js config storageAllowed settings, otherwise Prebid.js will block the adapter from attempting to find/read the cookie.
To use the page URL query string approach, you can append the following set of apn_debug_...
key-value pairs to the existing page URL’s query string:
html
https://my.site.com/page/stuff.html?normal=data_here&apn_debug_enabled=true&apn_debug_dongle=QWERTY&apn_debug_member_id=958&apn_debug_timeout=1000
To view the results of the debug auction, add the pbjs_debug=true
query string parameter and open your browser’s developer console.
Name | Description | Example | Type |
---|---|---|---|
enabled |
Toggle the debug auction to occur | true |
boolean |
dongle |
Your account’s unique debug password. | QWERTY |
string |
member_id |
The ID of the member running the debug auction | 958 |
integer |
debug_timeout |
The timeout for the debug auction results to be returned | 3000 |
integer |
"Send All Bids" Ad Server Keys
These are the bidder-specific keys that would be targeted within GAM in a Send-All-Bids scenario. GAM truncates keys to 20 characters.hb_pb_msft |
hb_bidder_msft |
hb_adid_msft |
hb_size_msft |
hb_source_msft |
hb_format_msft |
hb_cache_host_msft |
hb_cache_id_msft |
hb_uuid_msft |
hb_cache_path_msft |
hb_deal_msft |