Skip to content

Commit cda7196

Browse files
Merge branch 'master' into add-permutive-consent-changes
2 parents ac934ed + b34ac6b commit cda7196

51 files changed

Lines changed: 1806 additions & 316 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

_data/sidebar.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,14 @@
531531
sectionTitle:
532532
subgroup: 5
533533

534+
- sbSecId: 1
535+
title: Loading modules separately
536+
link: /dev-docs/modules/index.html#loading-modules-separately
537+
isHeader: 0
538+
isSectionHeader: 0
539+
sectionTitle:
540+
subgroup: 5
541+
534542
- sbSecId: 1
535543
title: External Interfaces
536544
link:

dev-docs/adunit-reference.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ See the table below for the list of properties in the `mediaTypes` object of the
8484
{: .table .table-bordered .table-striped }
8585
| Name | Scope | Type | Description |
8686
|---------+----------+---------------------------------------+-----------------------------------------------------------------------------------------|
87-
| `sizes` | Required | Array[Number] or Array[Array[Number]] | All sizes this ad unit can accept. Examples: `[400, 600]`, `[[300, 250], [300, 600]]`. Prebid recommends that the sizes auctioned by Prebid should be the same auctioned by AdX and GAM OpenBidding, which means AdUnit sizes should match the GPT sizes. |
87+
| `sizes` | Required if `format` is not provided | Array[Number] or Array[Array[Number]] | All sizes this ad unit can accept. Examples: `[400, 600]`, `[[300, 250], [300, 600]]`. Prebid recommends that the sizes auctioned by Prebid should be the same auctioned by AdX and GAM OpenBidding, which means AdUnit sizes should match the GPT sizes. |
88+
| `format` | Required if `sizes` is not provided | Array of ORTB [Format](https://github.com/InteractiveAdvertisingBureau/openrtb2.x/blob/main/2.6.md#objectformat) objects | Alternative to `sizes`, and takes precedence over it. Allows for more options, such as . |
8889
| `pos` | Optional | Integer | OpenRTB page position value: 0=unknown, 1=above-the-fold, 3=below-the-fold, 4=header, 5=footer, 6=sidebar, 7=full-screen |
8990
| `name` | Optional | String | Name for this banner ad unit. Can be used for testing and debugging. |
9091

@@ -222,6 +223,41 @@ pbjs.addAdUnits({
222223
});
223224
```
224225

226+
#### Flex banner example
227+
228+
See the [Google request object documentation](https://developers.google.com/authorized-buyers/rtb/openrtb-guide#flexslot-object) for additional details. These fields were removed from OpenRTB 2.6 but remain popular.
229+
230+
```javascript
231+
pbjs.addAdUnits({
232+
code: slot.code,
233+
mediaTypes: {
234+
banner: {
235+
expdir: [1, 2, 3, 4],
236+
format: [{w: 250, h: 250}],
237+
wmin: 250,
238+
wmax: 375,
239+
hmin: 250,
240+
hmax: 250,
241+
},
242+
},
243+
ortb2Imp: {
244+
banner: {
245+
ext: {
246+
flexslot: {
247+
wmin: 250,
248+
wmax: 375,
249+
hmin: 250,
250+
hmax: 250
251+
}
252+
}
253+
}
254+
},
255+
bids: [
256+
// ...
257+
]
258+
})
259+
```
260+
225261
<a name="adUnit-video-example"></a>
226262

227263
### Video

dev-docs/analytics/intentiq.md

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,41 @@ No registration for this module is required.
1717

1818
**IMPORTANT**: only effective when Intent IQ Universal ID module be installed and configured. [(How-To)](https://docs.prebid.org/dev-docs/modules/userid-submodules/intentiq.html)
1919

20-
No additional configuration for this module is required. We will use the configuration provided for Intent IQ Universal IQ module.
20+
### Analytics Options
21+
22+
{: .table .table-bordered .table-striped }
23+
| Parameter | Scope | Type | Description | Example |
24+
| --- | --- | --- | --- | --- |
25+
| options.partner| Required | Number | This is the partner ID value obtained from registering with IntentIQ. | `1177538` |
26+
| options.manualWinReportEnabled | Optional | Boolean | This variable determines whether the bidWon event is triggered automatically. If set to false, the event will occur automatically, and manual reporting with reportExternalWin will be disabled. If set to true, the event will not occur automatically, allowing manual reporting through reportExternalWin. The default value is false. | `false` |
27+
| options.reportMethod | Optional | String | Defines the HTTP method used to send the analytics report. If set to `"POST"`, the report payload will be sent in the body of the request. If set to `"GET"` (default), the payload will be included as a query parameter in the request URL. | `"GET"` |
28+
| options.reportingServerAddress | Optional | String | The base URL for the IntentIQ reporting server. If parameter is provided in `configParams`, it will be used. | `"https://domain.com"` |
29+
| options.adUnitConfig | Optional | Number | Determines how the `placementId` parameter is extracted in the report (default is 1). Possible values: 1 – adUnitCode first, 2 – placementId first, 3 – only adUnitCode, 4 – only placementId. | `1` |
30+
| options.gamPredictReporting | Optional | Boolean | This variable controls whether the GAM prediction logic is enabled or disabled. The main purpose of this logic is to extract information from a rendered GAM slot when no Prebid bidWon event is available. In that case, we take the highest CPM from the current auction and add 0.01 to that value. | `false` |
31+
| options. ABTestingConfigurationSource | Optional | String | Determines how AB group will be defined. Possible values: `"IIQServer"` – group defined by IIQ server, `"percentage"` – generated group based on abPercentage, `"group"` – define group based on value provided by partner. | `IIQServer` |
32+
| options.abPercentage | Optional | Number | Percentage for A/B testing group. Default value is `95` | `95` |
33+
| options.group | Optional | String | Define group provided by partner, possible values: `"A"`, `"B"` | `"A"` |
34+
| options.gamObjectReference | Optional | Object | This is a reference to the Google Ad Manager (GAM) object, which will be used to set targeting. If this parameter is not provided, the group reporting will not be configured.| `googletag`|
35+
| options.browserBlackList | Optional | String | This is the name of a browser that can be added to a blacklist.| `"chrome"`|
36+
| options.domainName | Optional | String | Specifies the domain of the page in which the IntentIQ object is currently running and serving the impression. This domain will be used later in the revenue reporting breakdown by domain. For example, cnn.com. It identifies the primary source of requests to the IntentIQ servers, even within nested web pages.| `"currentDomain.com"`|
37+
| options. additionalParams | Optional | Array | This parameter allows sending additional custom key-value parameters with specific destination logic (sync, VR, winreport). Each custom parameter is defined as an object in the array. | `[ { parameterName: “abc”, parameterValue: 123, destination: [1,1,0] } ]` |
38+
| options. additionalParams[0].parameterName | Required | String | Name of the custom parameter. This will be sent as a query parameter. | `"abc"` |
39+
| options. additionalParams[0].parameterValue | Required | String / Number | Value to assign to the parameter. | `123` |
40+
| options. additionalParams[0].destination | Required | Array | Array of numbers either `1` or `0`. Controls where this parameter is sent `[sendWithSync, sendWithVr, winreport]`. | `[1, 0, 0]` |
2141

2242
#### Example Configuration
2343

2444
```js
2545
pbjs.enableAnalytics({
26-
provider: 'iiqAnalytics'
46+
provider: 'iiqAnalytics',
47+
options: {
48+
partner: 1177538,
49+
manualWinReportEnabled: false,
50+
reportMethod: "GET",
51+
adUnitConfig: 1,
52+
domainName: "currentDomain.com",
53+
gamPredictReporting: false
54+
}
2755
});
2856
```
2957

@@ -33,23 +61,6 @@ The reportExternalWin function allows for manual reporting, meaning that reports
3361

3462
To enable this manual reporting functionality, you must set the manualWinReportEnabled parameter in Intent IQ Unified ID module configuration is true. Once enabled, reports can be manually triggered using the reportExternalWin function.
3563

36-
```js
37-
pbjs.setConfig({
38-
userSync: {
39-
userIds: [{
40-
name: "intentIqId",
41-
params: {
42-
partner: 123456, // valid partner id
43-
browserBlackList: "chrome",
44-
manualWinReportEnabled: true
45-
}
46-
}]
47-
}
48-
});
49-
```
50-
51-
You can find more information and configuration examples in the [Intent IQ Universal ID module](https://docs.prebid.org/dev-docs/modules/userid-submodules/intentiq.html#configuration)
52-
5364
### Calling the reportExternalWin Function
5465

5566
To call the reportExternalWin function, you need to pass the partner_id parameter as shown in the example below:

dev-docs/aps.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
layout: bidder
3+
title: APS
4+
description: Prebid APS Bidder Adapter
5+
biddercode: aps
6+
tcfeu_supported: true
7+
dsa_supported: false
8+
gvl_id: 793
9+
usp_supported: true
10+
coppa_supported: true
11+
schain_supported: true
12+
media_types: display, video
13+
deals_supported: true
14+
floors_supported: true
15+
fpd_supported: true
16+
ortb_blocking_supported: true
17+
pbjs: true
18+
pbs: false
19+
prebid_member: true
20+
multiformat_supported: will-bid-on-any
21+
sidebarType: 1
22+
---
23+
24+
### Bidder Config Params
25+
26+
{: .table .table-bordered .table-striped }
27+
28+
| Name | Scope | Description | Example | Type |
29+
| ------------------ | -------- | ---------------------------------------- | --------------------------------- | --------- |
30+
| `aps.accountID` | required | APS-provided ID | `1234` | `string` |
31+
| `aps.debugURL` | optional | Bid endpoint | `https://example.com/bid` | `string` |
32+
| `aps.debug` | optional | Toggle to enable / disable debug mode | `true` | `boolean` |
33+
| `aps.renderMethod` | optional | Debug mode render method | `fif` | `string` |
34+
| `aps.creativeURL` | optional | Creative rendering URL | `https://example.com/creative.js` | `string` |
35+
| `aps.telemetry` | optional | Toggle to enable / disable APS telemetry | `true` | `boolean` |
36+
37+
### Bid Params
38+
39+
None.
40+
41+
## User Syncs
42+
43+
If you'd like to activate user syncs through APS, you must activate iframe syncing.
44+
45+
```javascript
46+
window.pbjs.que.push(function () {
47+
window.pbjs.setConfig({
48+
userSync: {
49+
filterSettings: {
50+
iframe: {
51+
bidders: ['aps'],
52+
filter: 'include',
53+
},
54+
},
55+
},
56+
});
57+
});
58+
```

dev-docs/bidder-adaptor.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,8 @@ export const spec = {
238238
onSetTargeting: function(bid) {},
239239
onBidderError: function({ error, bidderRequest }) {},
240240
onAdRenderSucceeded: function(bid) {},
241-
supportedMediaTypes: [BANNER, VIDEO, NATIVE, AUDIO]
241+
supportedMediaTypes: [BANNER, VIDEO, NATIVE, AUDIO],
242+
alwaysHasCapacity: true // When true, this bidder will be omitted in checking if origin has http capacity
242243
}
243244
registerBidder(spec);
244245

@@ -301,6 +302,7 @@ Here is a sample array entry for `validBidRequests[]`:
301302
bidId: "22c4871113f461",
302303
bidder: "rubicon",
303304
bidderRequestId: "15246a574e859f",
305+
pageViewId: 'de48e8d1-25e1-487c-96c6-41fcef84b41b',
304306
bidRequestsCount: 1,
305307
bidderRequestsCount: 1,
306308
auctionsCount: 1,
@@ -322,6 +324,7 @@ Other notes:
322324
* **Bid ID** is unique across ad units and bidders.
323325
* **auctionId** (see [note](#tid-warning)) is unique per call to `requestBids()`, but is the same across ad units and bidders.
324326
* **Transaction ID** (see [note](#tid-warning)) is unique for each ad unit within a call to `requestBids()`, but same across bidders. This is the ID that enables DSPs to recognize the same impression coming in from different supply sources.
327+
* **Page view ID** is unique for a page view (one load of Prebid); can also be refreshed programmatically. Shared across all requests and responses within the page view, for the same bidder. Different bidders see a different page view ID.
325328
* **Bid Request Count** is the number of times `requestBids()` has been called for this ad unit.
326329
* **Bidder Request Count** is the number of times `requestBids()` has been called for this ad unit and bidder.
327330
* **Auctions Count** is the number of times `requestBids()` has been called for this ad unit excluding the duplicates generated by twin adUnits.
@@ -340,6 +343,7 @@ Here is a sample bidderRequest object:
340343
auctionStart: 1579746300522,
341344
bidderCode: "myBidderCode",
342345
bidderRequestId: "15246a574e859f",
346+
pageViewId: 'de48e8d1-25e1-487c-96c6-41fcef84b41b',
343347
bids: [{...}],
344348
gdprConsent: {consentString: "BOtmiBKOtmiBKABABAENAFAAAAACeAAA", vendorData: {...}, gdprApplies: true},
345349
ortb2: {...},
@@ -511,11 +515,13 @@ The parameters of the `bidResponse` object are:
511515

512516
| Key | Scope | Description | Example |
513517
|--------------+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------|
514-
| `requestId` | Required | The bid ID that was sent to `spec.buildRequests` as `bidRequests[].bidId`. Used to tie this bid back to the request. | 12345 |
515-
| `cpm` | Required | The bid price. We recommend the most granular price a bidder can provide | 3.5764 |
516-
| `currency` | Required | 3-letter ISO 4217 code defining the currency of the bid. | `"EUR"` |
517-
| `width` | Required | The width of the returned creative. For video, this is the player width. | 300 |
518-
| `height` | Required | The height of the returned creative. For video, this is the player height. | 250 |
518+
| `requestId` | Required | The bid ID that was sent to `spec.buildRequests` as `bidRequests[].bidId`. Used to tie this bid back to the request. | 12345 |
519+
| `cpm` | Required | The bid price. We recommend the most granular price a bidder can provide | 3.5764 |
520+
| `currency` | Required | 3-letter ISO 4217 code defining the currency of the bid. | `"EUR"` |
521+
| `width` | Required except when using `wratio` / `hratio` | The width of the returned creative. For video, this is the player width. | 300 |
522+
| `height` | Required except when using `wratio` / `hratio` | The height of the returned creative. For video, this is the player height. | 250 |
523+
| `wratio` | Required for flex ads | For flexible banner only, the relative width of the creative | 6 |
524+
| `hratio` | Required for flex ads | For flexible banner only, the relative height of the creative | 5 |
519525
| `ad` | Required | The creative payload of the returned bid. | `"<html><h3>I am an ad</h3></html>"` |
520526
| `ttl` | Required | Time-to-Live - how long (in seconds) Prebid can use this bid. See the [FAQ entry](/dev-docs/faq.html#does-prebidjs-cache-bids) for more info. | 360 |
521527
| `creativeId` | Required | A bidder-specific unique code that supports tracing the ad creative back to the source. | `"123abc"` |
@@ -720,6 +726,7 @@ Sample data received by this function:
720726
auctionStart: 1579746300522,
721727
bidderCode: "myBidderCode",
722728
bidderRequestId: "15246a574e859f",
729+
pageViewId: 'de48e8d1-25e1-487c-96c6-41fcef84b41b',
723730
bids: [{...}],
724731
gdprConsent: {consentString: "BOtmiBKOtmiBKABABAENAFAAAAACeAAA", vendorData: {...}, gdprApplies: true},
725732
refererInfo: {
@@ -1184,6 +1191,7 @@ export const spec = {
11841191
code: BIDDER_CODE,
11851192
gvlid: 0000000000,
11861193
supportedMediaTypes: [BANNER, VIDEO, NATIVE],
1194+
alwaysHasCapacity: true,
11871195
aliases: [{code: "myAlias", gvlid: 99999999999} ],
11881196
/**
11891197
* Determines whether or not the given bid request is valid.

0 commit comments

Comments
 (0)