The bidderSettings object provides a way to define some behaviors for the platform and specific adapters. The basic structure is a ‘standard’ section with defaults for all adapters, and then one or more adapter-specific sections that override behavior for that bidder:
Defining bidderSettings is optional; the platform has default values for all of the options. Adapters may specify their own default settings, though this isn’t common. Some sample scenarios where publishers may wish to alter the default settings:
- using bidder-specific ad server targeting instead of Prebid-standard targeting
- passing additional information to the ad server
- adjusting the bid CPM sent to the ad server
2. Bidder Setting Attributes
|adserverTargeting||standard or adapter-specific||all||see below||Define which key/value pairs are sent to the ad server.|
|bidCpmAdjustment||standard or adapter-specific||all||n/a||Could, for example, adjust a bidder’s gross-price bid to net price.|
|sendStandardTargeting||adapter-specific||0.13.0||true||If adapter-specific targeting is specified, can be used to suppress the standard targeting for that adapter.|
|suppressEmptyKeys||standard or adapter-specific||0.13.0||false||If custom adserverTargeting functions are specified that may generate empty keys, this can be used to suppress them.|
As described in the AdOps documentation, Prebid has a recommended standard set of ad server targeting that works across bidders. This standard targeting approach is defined in the adserverTargeting attribute in the ‘standard’ section, but can be overridden per adapter as needed. Both scenarios are described below.
Note that once
standard.adserverTargeting is specified,
you’ll need to fully manage the targeting – the default
hb_ targeting variables will not be added.
Keyword targeting for all bidders
The below code snippet is the default setting for ad server targeting. For each bidder’s bid,
Prebid.js will set 6 keys (
hb_format) with their corresponding values.
In addition, video will receive additional keys:
The key value pair targeting is applied to the bid’s corresponding ad unit. Your ad ops team will have the ad server’s line items and creatives to utilize these keys.
If you’d like to customize the key value pairs, you can overwrite the settings as the below example shows. Note that once you updated the settings, let your ad ops team know about the change, so they can update the line item targeting accordingly. See the Ad Ops documentation for more information.
There’s no need to include the following code if you choose to use the below default setting.
Note that the existence of
bidderSettings.adserverTargeting.standard will prevent the system from adding the standard display targeting values: hb_bidder, hb_adid, hb_pb, hb_size, and hb_format. However, if the mediaType is video and
bidderSettings.adserverTargeting.standard does not specify hb_uuid, hb_cache_id, or hb_cache_host, they will be added unless
bidderSettings.sendStandardTargeting is set to false.
Let’s say the bidder prefers a separate set of line items. You can overwrite the bidder settings as the below example for AppNexus shows.
Note that the line item setup has to match the targeting change
In other words, the above config sends 2 pairs of key/value strings targeting for every AppNexus bid and for every ad unit. The 1st pair would be
apn_pbMg => the value of
bidResponse.pbMg. The 2nd pair would be
apn_adId => the value of
bidResponse.adId. You can find the bidResponse object documentation here.
Note that sendStandardTargeting is set to false so that the standard Prebid targeting (hb_bidder, etc.) aren’t also sent to the ad server.
Now let’s say you would like to define a bidder-specific price bucket function rather than use the ones available by default in prebid.js. Even the priceGranularity config option applies to all bidders – with this approach you can overwrite price buckets.
Note: this will only impact the price bucket sent to the ad server for targeting. It won’t actually impact the cpm value used for ordering the bids.
Some bidders return gross prices instead of the net prices (what the publisher will actually get paid). For example, a publisher’s net price might be 15% below the returned gross price. In this case, the publisher may want to adjust the bidder’s returned price to run a true header bidding auction. Otherwise, this bidder’s gross price will unfairly win over your other demand sources who report the real price.
In the above example, the AOL bidder will inherit from “standard” adserverTargeting keys, so that you don’t have to define the targeting keywords again.
This boolean flag minimizes key/value pairs sent to the ad server when adapter-specific targeting is specified. By default, the platform will send both adapter-specific adServerTargeting as well as the standard adServerTargeting.
While sending extra targeting the ad server may not matter, this flag can be used to suppress the standard targeting for adapters that define their own.
See the example above for example usage.
If a custom adServerTargeting function can return an empty value, this boolean flag can be used to avoid sending those empty values to the ad server.