Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions dev-docs/adunit-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -599,9 +599,9 @@ time to set targeting.

<a name="adUnit-fpd-example"></a>

### First Party Data
### First Party Data and Floors

Example of an adunit-specific block of first party data:
Example of an adunit-specific block of first party data and a static floor:

```javascript
pbjs.addAdUnits({
Expand All @@ -612,6 +612,8 @@ pbjs.addAdUnits({
}
},
ortb2Imp: {
bidfloor: 1.00,
bidfloorcur: "EUR",
ext: {
data: {
pbadslot: "homepage-top-rect",
Expand Down
30 changes: 28 additions & 2 deletions dev-docs/modules/floors.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,26 @@ Notes:
* [Prebid Floor Service Providers](/dev-docs/modules/floors.html#floors-providers)
* [Transcript of this video](/dev-docs/floors-video-overview.html)

### Simple Static Floors

Some publishers just want to set a simple static floor. Please don't use this module for that. This module should only be used when you need to vary the floor by mediatype, size, etc. Here's how you can set static floors on each Prebid adunit:

```javascript
pbjs.addAdUnits({
code: "test-div",
mediaTypes: {
banner: {
sizes: [[300,250]]
}
},
ortb2Imp: {
bidfloor: 1.00,
bidfloorcur: "EUR"
},
// ...
});
```

## How it Works

There are several places where the Floor module changes the behavior of the Prebid.js auction process. Below is a diagram describing the general flow of the client-side Price Floors Module:
Expand Down Expand Up @@ -298,10 +318,13 @@ Schema 1 restricts floors providers or publishers to applying only one data grou
Note: if you're a dynamic floor provider service, your response must be
a subset that will be merged under the 'data' object.

{: .alert.alert-warning :}
You **cannot** set the `floorMin` parameter without specifying a `data` object. See the [simple static floor](/dev-docs/modules/floors.html#simple-static-floors) section above for more info.

{: .table .table-bordered .table-striped }
| Param | Type | Description | Default |
|---+---+---+---+---|
| floorMin | float | The mimimum CPM floor used by the Price Floors Module (as of 4.13). The Price Floors Module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. | - |
| floorMin | float | The mimimum CPM floor used by the Price Floors Module (as of 4.13). The Price Floors Module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. **Note**: this is not a method of setting a [static floor](/dev-docs/modules/floors.html#simple-static-floors). | - |
| floorProvider | string | Optional atribute (as of prebid version 4.1) used to signal to the Floor Provider's Analytics adapter their floors are being applied. They can opt to log only floors that are applied when they are the provider. If floorProvider is supplied in both the top level of the floors object and within the data object, the data object's configuration shall prevail.| - |
| enforcement | object | Controls the enforcement behavior within the Price Floors Module.| - |
| skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the Price Floors Module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail. | 0 |
Expand Down Expand Up @@ -354,10 +377,13 @@ While some attributes are common in both schema versions, for completeness, all
Note: if you're a dynamic floor provider service, your response must be
a subset that will be merged under the 'data' object.

{: .alert.alert-warning :}
You **cannot** set the `floorMin` parameter without specifying a `data` object. See the [simple static floor](/dev-docs/modules/floors.html#simple-static-floors) section above for more info.

{: .table .table-bordered .table-striped }
| Param | Type | Description | Default |
|---+---+---+---+---|
| floorMin | float | The mimimum CPM floor used by the module (as of 4.13). The module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. | - |
| floorMin | float | The mimimum CPM floor used by the module (as of 4.13). The module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. **Note**: this is not a method of setting a [static floor](/dev-docs/modules/floors.html#simple-static-floors). | - |
| floorMinCur | float | Prebid Server only: the currency used for the floorMin value. | - |
| floorProvider | string | Optional atribute (as of prebid version 4.1) used to signal to the Floor Provider's Analytics adapter their floors are being applied. They can opt to log only floors that are applied when they are the provider. If floorProvider is supplied in both the top level of the floors object and within the data object, the data object's configuration shall prevail.| - |
| skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail. | 0 |
Expand Down
3 changes: 3 additions & 0 deletions prebid-server/features/pbs-floors.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,9 @@ completely backwards-compatible -- PBS will accept and process any Prebid.js flo

### Defining Floor data

{: .alert.alert-warning :}
You **cannot** set the `floorMin` parameter without specifying a `data` object. See the [simple static floor](/dev-docs/modules/floors.html#simple-static-floors) section for more info.

As described in the [Signaling](#floor-signaling) section above, floor data may be defined in several ways. Here's the order of priority:

1. Dynamic data - if PBS finds recent (non-expired) floors data from a dynamic floors vendor, that takes precedence.
Expand Down