From 0a2ae2a58181facbfdb1dd52502a11136bdde204 Mon Sep 17 00:00:00 2001 From: MartianTribe Date: Tue, 8 Sep 2020 11:16:40 -0400 Subject: [PATCH 01/65] reverted optanon in header (#2315) Co-authored-by: Steve --- _includes/head.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/head.html b/_includes/head.html index 9938ff1871..b7a530f7c5 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -18,7 +18,7 @@ {% endif %} - + @@ -29,7 +29,7 @@ - + From f8371647344ad58c03d61d14a6825c9daa354845 Mon Sep 17 00:00:00 2001 From: amoltchan <56824198+amoltchan@users.noreply.github.com> Date: Tue, 8 Sep 2020 18:03:17 +0200 Subject: [PATCH 02/65] LiveIntent registration link fix (#2300) * Add LiveIntent ID module to the overview * Update LiveIntent ID docs - remove 'providedIdentifierName' parameter, as it's removed from code (https://github.com/prebid/Prebid.js/pull/5407) - adjust links in the docs - new privacy policy - code examples updated to include the storage part * typo fix * added registration information * LiveIntent registration link fix --- dev-docs/modules/userId.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/modules/userId.md b/dev-docs/modules/userId.md index 9ce5722659..6f16a72fed 100644 --- a/dev-docs/modules/userId.md +++ b/dev-docs/modules/userId.md @@ -426,7 +426,7 @@ The adapters can be implemented to use the lipibid as the identifier and segment #### LiveIntent ID Registration -Please register with us if you’re not a LiveIntent customer already: https://www.liveintent.com/prebid-registration/ +Please register with us if you’re not a LiveIntent customer already: [https://www.liveintent.com/prebid-registration/](https://www.liveintent.com/prebid-registration/) When adding LiveIntent’s ID to your Prebid.js package, you disclose or make available Personal Information to LiveIntent. This information made available to LiveIntent is used to (i) connect with and reference data that already exists in LiveIntent’s graph (the “LiveIntent Graph”), and (ii) authenticate and validate data in aggregate to improve the performance of the services LiveIntent provides. By activating LiveIntent’s module, you hereby confirm that with regard to all individuals to whom Personal Information relates, you have, at or before the point of collecting Personal Information or making Personal Information available to LiveIntent, provided any legally required notices, obtained any legally required consents, and provided individuals with an opportunity to opt-out of the sharing of Personal Information, if such an opt-out is required under applicable laws, such that LiveIntent can provide service to you as described here and in LiveIntent’s privacy policies for the services which can be found at [https://www.liveintent.com/services-privacy-policy/](https://www.liveintent.com/services-privacy-policy/) From e0f2b31683b80183e95e6716cf628e8cbaf99936 Mon Sep 17 00:00:00 2001 From: murilodiko Date: Tue, 8 Sep 2020 13:07:37 -0300 Subject: [PATCH 03/65] Update oftmedia.md (#2308) forgot to insert the code " schain_supported: true", same as appnexus. thanks! --- dev-docs/bidders/oftmedia.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-docs/bidders/oftmedia.md b/dev-docs/bidders/oftmedia.md index 61552509f1..c58c976c06 100644 --- a/dev-docs/bidders/oftmedia.md +++ b/dev-docs/bidders/oftmedia.md @@ -10,6 +10,7 @@ tcf2_supported: true coppa_supported: true usp_supported: true pbs: true +schain_supported: true --- ### Bid Params From 2a42f78f6ada99ca36c5aea1bdb47ab437f7b3b2 Mon Sep 17 00:00:00 2001 From: AaronColbyPrice <67345931+AaronColbyPrice@users.noreply.github.com> Date: Tue, 8 Sep 2020 09:08:09 -0700 Subject: [PATCH 04/65] Delete pb-is-amp.html (#2311) Duplicate file with trailing space after the name --- _includes/video/pb-is-amp.html | 136 -------------------------------- 1 file changed, 136 deletions(-) delete mode 100644 _includes/video/pb-is-amp.html diff --git a/_includes/video/pb-is-amp.html b/_includes/video/pb-is-amp.html deleted file mode 100644 index f860fe9596..0000000000 --- a/_includes/video/pb-is-amp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - {% if page.head_title %} - {{page.head_title}} - {% else %} - {{page.title}} for Header Bidding - {% endif %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 2361b20732487e899ca611c034f99ec4843ef954 Mon Sep 17 00:00:00 2001 From: invibes <51820283+invibes@users.noreply.github.com> Date: Tue, 8 Sep 2020 19:08:31 +0300 Subject: [PATCH 05/65] Update invibes.md (#2312) --- dev-docs/bidders/invibes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-docs/bidders/invibes.md b/dev-docs/bidders/invibes.md index a639ec53b0..ac767ce7e9 100644 --- a/dev-docs/bidders/invibes.md +++ b/dev-docs/bidders/invibes.md @@ -6,6 +6,7 @@ pbjs: true biddercode: invibes gdpr_supported: true tcf2_supported: true +pbs: true --- ### Bid Params From e394f2e48bbeef239141a716e942b7eb6a738ee3 Mon Sep 17 00:00:00 2001 From: Ian Flournoy Date: Tue, 8 Sep 2020 12:09:44 -0400 Subject: [PATCH 06/65] parrableIdSystem: Add an optional timezone and timezone offset allow/block filter (#2184) * PBID-11: Update Parrable ID system configuration example to remove storage options * PBID-25: Add docs for Parrable ID timezone filtering feature config * PBID-25: Fix grammar in userId timezone filtering --- dev-docs/modules/userId.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dev-docs/modules/userId.md b/dev-docs/modules/userId.md index 6f16a72fed..2a95b4c3f5 100644 --- a/dev-docs/modules/userId.md +++ b/dev-docs/modules/userId.md @@ -616,6 +616,12 @@ In addition to the parameters documented above in the Basic Configuration sectio | --- | --- | --- | --- | --- | | params | Required | Object | Details for the Parrable ID. | | | params.partner | Required | String | A list of one or more comma-separated Parrable Partner Client IDs for the Parrable-aware bid adapters you are using. Please obtain Parrable Partner Client IDs from them and/or obtain your own. | `'30182847-e426-4ff9-b2b5-9ca1324ea09b'` | +| params.timezoneFilter | Optional | Object | Configures a timezone or timezone offset filter | | +| params.timezoneFilter.allowedZones | Optional | Array[String] | description | `[ 'America/Anchorage' ]` | +| params.timezoneFilter.allowedOffsets | Optional | Array[Number] | description | `[ -4 ]` | +| params.timezoneFilter.blockedZones | Optional | Array[String] | description | `[ 'America/New_York' ]` | +| params.timezoneFilter.blockedOffsets | Optional | Array[Number] | description | `[ -5 ]` | + {: .alert.alert-info :} NOTE: The Parrable ID that is delivered to Prebid is encrypted by Parrable with a time-based key and updated frequently in the browser to enforce consumer privacy requirements and thus will be different on every page view, even for the same user. @@ -624,6 +630,15 @@ The Parrable ID system manages a cookie with the name of `_parrable_id` containi This cookie is used also by standalone Parrable integrations outside of Prebid. It is for this reason that the cookie name is not configurable for the Parrable ID system. +#### Timezone and Timezone Offset Filtering + +The Parrable ID system enables a publisher to configure lists of **allowed** timezones (eg. `Europe/Dublin`) and/or timezone offsets (eg. `-4`) as well as a lists of **blocked** timezones and timezone offsets. + +- With no configuration (`params.timezoneFilter` not set, or all of the lists are empty) all impressions are permitted. +- With only allow lists configured a browser must match either a timezone or timezone offset for it to not be filtered. +- With only block lists configured an impression will be filtered only if it is from a browser matching a blocked timezone or timezone offset. +- An impression from a browser that matches any allowed timezone or timezone offset, but does not match a blocked timezone or timezone offset will engage in the Parrable ID syncronization process. +- If a browser has a stored Parrable ID then it will not be filtered even if the browser is in a timezone or timezone offset that is blocked. #### Parrable ID Examples From 30cf3081156bfc05c3c93716c3d871822f35842c Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 8 Sep 2020 18:11:02 +0200 Subject: [PATCH 07/65] add native support for ablida bid adapter (#2164) --- dev-docs/bidders/ablida.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/bidders/ablida.md b/dev-docs/bidders/ablida.md index df144e8fbd..1ccd290043 100644 --- a/dev-docs/bidders/ablida.md +++ b/dev-docs/bidders/ablida.md @@ -3,7 +3,7 @@ layout: bidder title: ablida description: Prebid ablida Bidder Adaptor pbjs: true -media_types: banner +media_types: banner, native biddercode: ablida --- From dc2416268973a75a0ed9b10ea1a7e8443b89ecf1 Mon Sep 17 00:00:00 2001 From: Klaas-Jan Boon Date: Tue, 8 Sep 2020 18:13:08 +0200 Subject: [PATCH 08/65] Blue Billywig bid adapter - add video param to docs (#2198) * add Blue Billywig bidder adaptor dev docs * Add missing empty line * move empty line to right place... Co-authored-by: Klaas-Jan Boon Co-authored-by: Klaas-Jan Boon --- dev-docs/bidders/bluebillywig.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-docs/bidders/bluebillywig.md b/dev-docs/bidders/bluebillywig.md index 0128f21f55..753ed5cd49 100644 --- a/dev-docs/bidders/bluebillywig.md +++ b/dev-docs/bidders/bluebillywig.md @@ -22,3 +22,4 @@ userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrable | `accountId` | required | Your publication ID at Blue Billywig | `642` | `integer` | | `rendererCode` | required | The name of the renderer to use in your Blue Billywig publication | `"renderer"` | `string` | | `connections` | required | Back-ends to connect with. For every value in this a param matching the back-end should exist too. | `["bluebillywig"]` | `array` | +| `video` | optional | Any OpenRTB 2.5 video params to additionally send along to the SSPs. | `{"maxduration": 30}` | `object` | From f8103efb8c9188e59b58e9035ba743c304bd2ca2 Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Tue, 8 Sep 2020 12:14:00 -0400 Subject: [PATCH 09/65] Document auctionDebug (#2255) * Document auctionDebug * Update integrate-with-the-prebid-analytics-api.md --- dev-docs/integrate-with-the-prebid-analytics-api.md | 4 ++++ dev-docs/publisher-api-reference.md | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/dev-docs/integrate-with-the-prebid-analytics-api.md b/dev-docs/integrate-with-the-prebid-analytics-api.md index 621ea286e9..2eafcb6079 100644 --- a/dev-docs/integrate-with-the-prebid-analytics-api.md +++ b/dev-docs/integrate-with-the-prebid-analytics-api.md @@ -135,6 +135,10 @@ The callback will receive an object with the following attributes: } ``` +#### Listening for errors + +There are two error events analytics modules may wish to listen for: auctionDebug and adRenderFailed. The former is any error that would be normally logged to console and there can be a great many. The latter may happen for the following reasons: (PREVENT_WRITING_ON_MAIN_DOCUMENT, NO_AD, CANNOT_FIND_AD, EXCEPTION, MISSING_DOC_OR_ADID) + #### Analytics adapter best practices + listen only to the events required diff --git a/dev-docs/publisher-api-reference.md b/dev-docs/publisher-api-reference.md index e88ac2cc56..aebe9b1ff5 100644 --- a/dev-docs/publisher-api-reference.md +++ b/dev-docs/publisher-api-reference.md @@ -1211,6 +1211,7 @@ The available events are: | requestBids | Bids have been requested from adapters (i.e. pbjs.requestBids() was called) | None | | addAdUnits | Ad units have been added to the auction | None | | adRenderFailed| Ad rendering failed | Object containing 'reason' and 'message' | +| auctionDebug | An error was logged to the console | Object containing 'type' and 'arguments' | | bidderDone | A bidder has signaled they are done responding | Bid request object | | tcf2Enforcement | There was a TCF2 enforcement action taken | `{ storageBlocked: ['moduleA', 'moduleB'], biddersBlocked: ['moduleB'], analyticsBlocked: ['moduleC'] }` | @@ -1271,6 +1272,16 @@ Events example 3: Dynamically modify the auction pbjs.onEvent('beforeRequestBids', bidderFilter); {% endhighlight %} +Events example 4: Log errors and render fails to your own endpoint +{% highlight js %} + pbjs.onEvent('adRenderFailed', function () { + // pub-specific logic to call their own endpoint + }); + pbjs.onEvent('auctionDebug', function () { + // pub-specific logic to call their own endpoint + }); +{% endhighlight %} +
From 015954723dd401536247f5cb08679212b3a14d4c Mon Sep 17 00:00:00 2001 From: Seba Perez Date: Tue, 8 Sep 2020 18:04:33 -0300 Subject: [PATCH 10/65] Fix typo (#2319) --- faq/prebid-server-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/faq/prebid-server-faq.md b/faq/prebid-server-faq.md index edf31a3d0d..5fd7702260 100644 --- a/faq/prebid-server-faq.md +++ b/faq/prebid-server-faq.md @@ -99,7 +99,7 @@ AppNexus' Prebid Server, it can read their 'uuid2' cookie. In other words, if th has the exchange cookie, the host company will have an ID one page-view sooner than the other bidders. This gives a slight edge to the hosting company in some scenarios, but it's technically unavoidable and better for both buyers and sellers to have one ID available rather than zero. -## How does Prebid Server support privay signals? +## How does Prebid Server support privacy signals? See the [Prebid Server Privacy Feature Page](/prebid-server/features/pbs-privacy.html) From 07c0fd615d907173c368542179093d7e137f6bce Mon Sep 17 00:00:00 2001 From: bretg Date: Wed, 9 Sep 2020 13:25:07 -0400 Subject: [PATCH 11/65] added adapter request params (#2318) --- prebid-server/developers/add-new-bidder-go.md | 14 ++++++++++++++ prebid-server/developers/add-new-bidder-java.md | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/prebid-server/developers/add-new-bidder-go.md b/prebid-server/developers/add-new-bidder-go.md index 665a26e079..4f35c310c8 100644 --- a/prebid-server/developers/add-new-bidder-go.md +++ b/prebid-server/developers/add-new-bidder-go.md @@ -49,6 +49,20 @@ Bidder implementations may assume that any params have already been validated ag {: .alert.alert-warning :} Prebid Server bid adapters must follow all required conventions defined in the [Module Rules](/dev-docs/module-rules.html). Not doing so could lead to delays in approving your adapter for inclusion in Prebid Server. If you'd like to apply for an exception to one of the rules, make your request in a new [Prebid Server issue](https://github.com/prebid/prebid-server/issues). +### Bid Request Standards + +Prebid clients ([Prebid.js](/use-cases/pbs-pbjs.html), [Prebid SDK](/use-cases/pbs-sdk.html), and [AMP](/use-cases/pbs-amp.html)) pass a number of parameters +that bid adapters should take into account: + +- Currency: The publisher's desired bid currency is in the OpenRTB `cur` field. If your bid is in a different currency, you must set the bid currency in the response. +- Bid Floor: `imp[].bidfloor` and `imp[].bidfloorcur` - please make use of this value before responding with a bid. +- First Party Data: bidders should look in these locations for first party data: `imp[].ext.context.data.*`, `site.ext.data.*`, `app.ext.data.*`, and `user.ext.data.*`. +- Supply Chain: `source.ext.schain` +- GDPR: `regs.ext.gdpr` and `user.ext.consent` +- CCPA: `regs.ext.us_privacy` +- COPPA: `regs.coppa` +- Test: Bidders should be aware that the OpenRTB `test` flag indicates non-production traffic. + ### Bid Response Metadata In addition to the standard OpenRTB2.5 response fields, Prebid encourages bidders to diff --git a/prebid-server/developers/add-new-bidder-java.md b/prebid-server/developers/add-new-bidder-java.md index 8fdad707b9..5a4d296f70 100644 --- a/prebid-server/developers/add-new-bidder-java.md +++ b/prebid-server/developers/add-new-bidder-java.md @@ -88,6 +88,23 @@ Bidder response processing: 1. Extract bids from response; 2. Set each bid type and currency; +### Bid Request Standards + +Prebid clients ([Prebid.js](/use-cases/pbs-pbjs.html), [Prebid SDK](/use-cases/pbs-sdk.html), and [AMP](/use-cases/pbs-amp.html)) pass a number of parameters +that bid adapters should take into account: + +- Currency: The publisher's desired bid currency is in the OpenRTB `cur` field. I +f your bid is in a different currency, you must set the bid currency in the respo +nse. +- Bid Floor: `imp[].bidfloor` and `imp[].bidfloorcur` - please make use of this v +alue before responding with a bid. +- First Party Data: bidders should look in these locations for first party data: `imp[].ext.context.data.*`, `site.ext.data.*`, `app.ext.data.*`, and `user.ext.data.*`. +- Supply Chain: `source.ext.schain` +- GDPR: `regs.ext.gdpr` and `user.ext.consent` +- CCPA: `regs.ext.us_privacy` +- COPPA: `regs.coppa` +- Test: Bidders should be aware that the OpenRTB `test` flag indicates non-production traffic. + ### Bid Response Metadata In addition to the standard OpenRTB2.5 response fields, Prebid encourages bidders to From 1bcb343289dbcc4fbd84534476afc0f5c1673ea4 Mon Sep 17 00:00:00 2001 From: bjorn-lw <32431346+bjorn-lw@users.noreply.github.com> Date: Thu, 10 Sep 2020 16:21:17 +0200 Subject: [PATCH 12/65] Livewrapped support for native and video (#2323) * Livewrapped bidder adapter * Added analytics documentation * Spelling * Added support for tcf2 and schain * video and native support --- dev-docs/bidders/livewrapped.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/bidders/livewrapped.md b/dev-docs/bidders/livewrapped.md index 9832c5fc73..e15d83b404 100644 --- a/dev-docs/bidders/livewrapped.md +++ b/dev-docs/bidders/livewrapped.md @@ -4,7 +4,7 @@ title: Livewrapped description: Prebid Livewrapped Bidder Adaptor biddercode: livewrapped pbjs: true -media_types: banner +media_types: banner, video, native gdpr_supported: true userIds: id5Id, pubCommonId tcf2_supported: true From 8f91c11db08af9994c14b9baa199c76812aeea87 Mon Sep 17 00:00:00 2001 From: Jean Stemp <38964447+jeanstemp@users.noreply.github.com> Date: Thu, 10 Sep 2020 11:15:55 -0700 Subject: [PATCH 13/65] update based on new prebid.org site content (#2321) * update based on new prebid.org site content * added link to prebid.org and updated blog url --- _data/sidebar.yml | 41 +------------------ dev-docs/faq.md | 2 +- ...integrate-with-the-prebid-analytics-api.md | 2 +- faq/prebid-server-faq.md | 19 ++++----- overview/intro.md | 5 ++- overview/what-is-prebid-org.md | 6 +-- .../overview/prebid-server-overview.md | 2 +- wrapper_code_of_conduct.md | 1 + 8 files changed, 21 insertions(+), 57 deletions(-) diff --git a/_data/sidebar.yml b/_data/sidebar.yml index 8e817b5682..84d3f157fd 100644 --- a/_data/sidebar.yml +++ b/_data/sidebar.yml @@ -27,14 +27,6 @@ sectionTitle: subgroup: 0 -- sbSecId: 0 - title: About Prebid.org - link: /overview/what-is-prebid-org.html - isHeader: 0 - isSectionHeader: 0 - sectionTitle: - subgroup: 0 - - sbSecId: 0 title: Project Principles link: /principles.html @@ -43,22 +35,6 @@ sectionTitle: subgroup: 0 -- sbSecId: 0 - title: Membership - link: /partners/partners.html - isHeader: 0 - isSectionHeader: 0 - sectionTitle: - subgroup: 0 - -- sbSecId: 0 - title: Prebid Management Committees - link: /overview/prebid-management-committees.html - isHeader: 0 - isSectionHeader: 0 - sectionTitle: - subgroup: 0 - - sbSecId: 0 title: Developers link: /developers.html @@ -83,13 +59,6 @@ sectionTitle: subgroup: 0 -- sbSecId: 0 - title: '  Community' - link: /overview/community-code-of-conduct.html - isHeader: 0 - isSectionHeader: 0 - subgroup: 0 - - sbSecId: 0 title: '  Module Rules' link: /dev-docs/module-rules.html @@ -137,14 +106,6 @@ isSectionHeader: 0 subgroup: 0 -- sbSecId: 0 - title: "Other" - link: - isHeader: 0 - isSectionHeader: 0 - isCatHeader: 1 - sectionTitle: - subgroup: 1 #--------------Prebid.js--------------| @@ -2076,7 +2037,7 @@ - sbSecId: 7 title: Blog - link: /blog.html + link: https://prebid.org/blog/ isHeader: 0 isSectionHeader: 0 sectionTitle: diff --git a/dev-docs/faq.md b/dev-docs/faq.md index fdbd0277f5..17c4ed7e1f 100644 --- a/dev-docs/faq.md +++ b/dev-docs/faq.md @@ -22,7 +22,7 @@ Nope. The only approval process is a code review. There are separate instruction - [adding a bidder in Prebid.js](/dev-docs/bidder-adaptor.html) - [adding an analytics adapter in Prebid.js](/dev-docs/integrate-with-the-prebid-analytics-api.html) -As for [membership](/partners/partners.html) in Prebid.org, that's entirely optional -- we'd be happy to have you join and participate in the various committees, +As for [membership](https://prebid.org/membership/) in Prebid.org, that's entirely optional -- we'd be happy to have you join and participate in the various committees, but it's not necessary for contributing code as a community member. ## When starting out, what should my timeouts be? diff --git a/dev-docs/integrate-with-the-prebid-analytics-api.md b/dev-docs/integrate-with-the-prebid-analytics-api.md index 2eafcb6079..c0c3a06929 100644 --- a/dev-docs/integrate-with-the-prebid-analytics-api.md +++ b/dev-docs/integrate-with-the-prebid-analytics-api.md @@ -169,7 +169,7 @@ st of other analytics adapters. ### Step 6: Wait for Prebid volunteers to review -We sometimes get pretty busy, so it can take a couple of weeks for the review process to complete, so while you're waiting, consider [joining Prebid.org](/partners/partners.html) to help us out with code reviews. (!) +We sometimes get pretty busy, so it can take a couple of weeks for the review process to complete, so while you're waiting, consider [joining Prebid.org](https://prebid.org/membership/) to help us out with code reviews. (!) ## Further Reading diff --git a/faq/prebid-server-faq.md b/faq/prebid-server-faq.md index 5fd7702260..95a3091dac 100644 --- a/faq/prebid-server-faq.md +++ b/faq/prebid-server-faq.md @@ -20,7 +20,7 @@ Nope. The only approval process is a code review. There are separate instruction - [Prebid Server - Go](https://github.com/prebid/prebid-server/blob/master/docs/developers/add-new-bidder.md) - [Prebid Server - Java](https://github.com/rubicon-project/prebid-server-java/blob/master/docs/developers/add-new-bidder.md) -As for [membership](/partners/partners.html) in Prebid.org, that's entirely optional -- we'd be happy to have you join and participate in the various committees, +As for [membership](https://prebid.org/membership/) in Prebid.org, that's entirely optional -- we'd be happy to have you join and participate in the various committees, but it's not necessary for contributing code as a community member. ## How can I debug Prebid Server requests? @@ -72,12 +72,12 @@ pbjs.setConfig({ There are 3 answers here. The easy answer is for requests coming into Prebid Server from the Prebid SDK - there's no concept of cookies there, so no syncing takes place in that scenario. ID in mobile is based on IDFA. -For other scenarios, Prebid Server sets up and manages a multi-vendor ID match table in the `uids` cookie in the host company's -domain. i.e. adnxs.com, rubiconproject.com, or whichever Prebid Server vendor you're utilizing. When the user has a `uids` cookie, +For other scenarios, Prebid Server sets up and manages a multi-vendor ID match table in the `uids` cookie in the host company's +domain. i.e. adnxs.com, rubiconproject.com, or whichever Prebid Server vendor you're utilizing. When the user has a `uids` cookie, Prebid Server parses it and passes the vendor-specific IDs to the relevant server-side bid adapters. -Syncing in the AMP scenario uses the [load-cookie.html](/dev-docs/show-prebid-ads-on-amp-pages.html#user-sync) file that's part of -the Prebid Universal Creative package. When placed into an AMP-iframe, this file will call /cookie-sync and initiate a sync that +Syncing in the AMP scenario uses the [load-cookie.html](/dev-docs/show-prebid-ads-on-amp-pages.html#user-sync) file that's part of +the Prebid Universal Creative package. When placed into an AMP-iframe, this file will call /cookie-sync and initiate a sync that creates or updates the `uids` cookie. The most common source of requests for Prebid Server is from Prebid.js in a scenario where the user doesn't have any cookies for the Prebid Server domain. @@ -93,9 +93,9 @@ The most common source of requests for Prebid Server is from Prebid.js in a scen {: .alert.alert-info :} -Note: the company that's hosting Prebid Server can configure it to read and utilize their exchange's -native cookie. i.e. if you're using Rubicon Project's Prebid Server, it can read their 'khaos' cookie, and if you're using -AppNexus' Prebid Server, it can read their 'uuid2' cookie. In other words, if the host company is an exchange and the user +Note: the company that's hosting Prebid Server can configure it to read and utilize their exchange's +native cookie. i.e. if you're using Rubicon Project's Prebid Server, it can read their 'khaos' cookie, and if you're using +AppNexus' Prebid Server, it can read their 'uuid2' cookie. In other words, if the host company is an exchange and the user has the exchange cookie, the host company will have an ID one page-view sooner than the other bidders. This gives a slight edge to the hosting company in some scenarios, but it's technically unavoidable and better for both buyers and sellers to have one ID available rather than zero. @@ -107,7 +107,7 @@ See the [Prebid Server Privacy Feature Page](/prebid-server/features/pbs-privacy For Prebid.js-initated server requests, we've found that cookie match rates are about what can be expected given the constraints: -- The [/cookie_sync](/prebid-server/developers/pbs-cookie-sync.html) process is initiated by Prebid.js the moment the [s2sConfig](https://docs.prebid.org/dev-docs/publisher-api-reference.html#setConfig-Server-to-Server) is parsed. +- The [/cookie_sync](/prebid-server/developers/pbs-cookie-sync.html) process is initiated by Prebid.js the moment the [s2sConfig](https://docs.prebid.org/dev-docs/publisher-api-reference.html#setConfig-Server-to-Server) is parsed. - A limited number of bidders will be synced at once. PBS-Go will sync all the bidders listed in the `bidders` array. PBS-Java will sync all of them and possibly additional bidders. Publishers can change the number of syncs by specifying `userSyncLimit` on the s2sConfig. - Privacy settings (e.g. GDPR) can affect sync rate. e.g. If a lot of your traffic is in the EEA, it's going to be harder to set cookies. @@ -117,4 +117,3 @@ For Prebid.js-initated server requests, we've found that cookie match rates are - Then AMP has to run this iframe. There are limitations as to where this amp-iframe can be on the page and possible how many amp-iframes there are on the page. - The [/cookie_sync](/prebid-server/developers/pbs-cookie-sync.html) call is initiated from `load-cookie.html`, but there are many adapters on the server side, and a limited number of them will be synced at once. Consider setting `max_sync_count` higher to get all bidders synced faster, - In a GDPR context, AMP doesn't supply the `gdprApplies` field. Prebid Server will determine for itself whether it can sync cookies, but it will not tell bidders whether the request is in GDPR-scope, so each bidder will have to determine scope for itself. - diff --git a/overview/intro.md b/overview/intro.md index d36bb8a659..5f623d4ff8 100644 --- a/overview/intro.md +++ b/overview/intro.md @@ -12,6 +12,9 @@ sidebarType: 0 ## Overview +{: .alert.alert-info :} +If you're looking for a more high-level overview of Prebid.org, including product features, membership, events, and so on, visit [Prebid.org](https://prebid.org/). + Prebid is more than a product; it's a product suite, a community, and an organization. - **Product Suite:** A free and open source suite of software products designed to enable publishers to implement header bidding on their websites and from within their apps. Our product line includes: @@ -19,7 +22,7 @@ Prebid is more than a product; it's a product suite, a community, and an organiz - **Prebid Server:** Provides a hosted or custom server-side solution for header bidding. Utilizing Prebid Server can reduce latency between bid request and ad selection, and speed the presentation of your site and ads. - **Prebid Mobile:** Our native iOS and Android solutions to enable header bidding within a mobile app. - **Community:** The developers that maintain and improve our products. -- **Organization:** A collection of leaders within the ad tech industry that promotes our products, works with the ad tech community to expand the solutions our products can provide, and encourages the development of the platform. +- **Organization:** A collection of leaders within the ad tech industry that promotes our products, works with the ad tech community to expand the solutions our products can provide, and encourages the development of the platform. For more about the organization, see the [Prebid.org](https://prebid.org/) website. {% include alerts/alert_note.html content="Our flagship product, Prebid.js, is sometimes referred to as simply *Prebid*, but please be aware that the Prebid product line supports header bidding for web, AMP, and mobile apps, using both client- and server-side project components." %} diff --git a/overview/what-is-prebid-org.md b/overview/what-is-prebid-org.md index 213e6a5388..f3577affc8 100644 --- a/overview/what-is-prebid-org.md +++ b/overview/what-is-prebid-org.md @@ -13,7 +13,7 @@ Formed in September of 2017, Prebid.org is an independent organization designed Prebid.org is open to all companies who are part of the programmatic ecosystem, from ad tech vendors to publishers and others. We believe strongly that by working together, we can do some great things in the industry. -[Learn more](/partners/partners.html) about becoming a member of Prebid.org. +[Learn more](https://prebid.org/membership/) about becoming a member of Prebid.org. ## Operations Managed through Product Management Committees (PMCs) @@ -44,6 +44,6 @@ Prebid welcomes any contribution on these projects! Read more here: -* [Prebid.org Members and Partners](/partners/partners.html) +* [Prebid.org Members and Partners](https://prebid.org/membership/) * [The Drum reporting on Prebid.org](https://www.thedrum.com/news/2017/09/11/appnexus-and-rubicon-project-launch-prebidorg-hailing-open-source-approach-header) -* [Current members of Prebid.org]({{site.baseurl}}/partners/partners.html) +* [Current members of Prebid.org](https://prebid.org/membership/member-directory/) diff --git a/prebid-server/overview/prebid-server-overview.md b/prebid-server/overview/prebid-server-overview.md index 388cf8b059..f4ed12b5aa 100644 --- a/prebid-server/overview/prebid-server-overview.md +++ b/prebid-server/overview/prebid-server-overview.md @@ -60,4 +60,4 @@ If you're a demand source, we also have information about [creating your own ser If you need help with Prebid Server, the best ways to communicate with us are: - [Post an issue](https://github.com/prebid/prebid-server/issues) in the prebid-server GitHub repo. -- [Join prebid.org](/partners/partners.html) and get access to our Slack workspace. +- [Join prebid.org](https://prebid.org/membership/) and get access to our Slack workspace. diff --git a/wrapper_code_of_conduct.md b/wrapper_code_of_conduct.md index 81c4bf654a..608521d72b 100644 --- a/wrapper_code_of_conduct.md +++ b/wrapper_code_of_conduct.md @@ -57,3 +57,4 @@ This Wrapper Code of Conduct establishes the principles by which we believe head + [Project Principles]({{site.baseurl}}/principles.html) + [Getting Started]({{site.baseurl}}/overview/getting-started.html) ++ [Prebid.org Community Code of Conduct](https://prebid.org/code-of-conduct/) From ee81faf332229e9d5d4501c07c12402735fabbab Mon Sep 17 00:00:00 2001 From: bretg Date: Fri, 11 Sep 2020 09:47:08 -0400 Subject: [PATCH 14/65] fixing old PBS+video message (#2327) --- formats/video.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/formats/video.md b/formats/video.md index 7ae5f3295d..8316a7a702 100644 --- a/formats/video.md +++ b/formats/video.md @@ -10,7 +10,7 @@ sidebarType: 6 # Prebid Video Ads {:.no_toc} -Video ads are supported by Prebid.js. Prebid Server support is coming soon. +Video ads are supported by both Prebid.js and Prebid Server. ## Prebid.js @@ -23,6 +23,8 @@ Video ads are supported by Prebid.js. Prebid Server support is coming soon. - [Getting started with video](/prebid-video/video-getting-started.html) - [Outstream video ads](/dev-docs/show-outstream-video-ads.html) +- [Prebid Server video ads](/use-cases/pbs-pbjs.html) +- [Prebid Server Long Form Video](r/use-cases/pbs-lfv.html) ### Prebid.js bid adapters that support instream and outstream video ads From f5834955423c7d15957ac1511f384ccac0460dde Mon Sep 17 00:00:00 2001 From: bretg Date: Fri, 11 Sep 2020 12:37:16 -0400 Subject: [PATCH 15/65] adding CMP link to other places (#2328) --- _data/sidebar.yml | 8 ++++++++ dev-docs/modules/index.md | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/_data/sidebar.yml b/_data/sidebar.yml index 84d3f157fd..f067a78785 100644 --- a/_data/sidebar.yml +++ b/_data/sidebar.yml @@ -145,6 +145,14 @@ sectionTitle: subgroup: 0 +- sbSecId: 1 + title: Consent Management Best Practices + link: /dev-docs/cmp-best-practices.html + isHeader: 0 + isSectionHeader: 0 + sectionTitle: + subgroup: 0 + - sbSecId: 1 title: Examples link: diff --git a/dev-docs/modules/index.md b/dev-docs/modules/index.md index c7731e994a..662954db27 100644 --- a/dev-docs/modules/index.md +++ b/dev-docs/modules/index.md @@ -31,7 +31,7 @@ If you are looking for bidder adapter parameters, see [Bidders' Params]({{site.b | Module | Description | |---------------------+--------------| | [**Currency**](/dev-docs/modules/currency.html) | Converts bid currency into ad server currency based on data in a supplied exchange rate file. | -| **ConsentManagement** | Collecting and passing consent information in support of privacy regulations:{::nomarkdown}{:/} | +| **ConsentManagement** | Collecting and passing consent information in support of privacy regulations:{::nomarkdown}{:/} See [CMP Best Practices.](/dev-docs/cmp-best-practices.html) | | [**Google Ad Manager Express**](/dev-docs/modules/dfp_express.html) | A simplified installation mechanism for publishers that have Google Publisher Tag (GPT) ad calls in their pages. | | [**Supply Chain Object**](/dev-docs/modules/schain.html) | Validates and makes the Supply Object available to bidders | | [**User ID**](/dev-docs/modules/userId.html) | Sub-modules are available to support a range of identification approaches: Criteo RTUS, DigiTrust, ID5 Universal ID, IdentityLink, PubCommon ID, Unified ID and LiveIntent ID. | From aa1afba163b80107a8328fddd4cd9d3d1f18403a Mon Sep 17 00:00:00 2001 From: bretg Date: Fri, 11 Sep 2020 14:52:17 -0400 Subject: [PATCH 16/65] moving cookie sync PBS FAQ (#2330) --- faq/prebid-server-faq.md | 31 ++------------------- prebid-server/developers/pbs-cookie-sync.md | 20 +++++++++++-- 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/faq/prebid-server-faq.md b/faq/prebid-server-faq.md index 95a3091dac..616c9f2a6a 100644 --- a/faq/prebid-server-faq.md +++ b/faq/prebid-server-faq.md @@ -70,34 +70,9 @@ pbjs.setConfig({ ``` ## How do user ID cookies and ID syncing work in Prebid Server? -There are 3 answers here. The easy answer is for requests coming into Prebid Server from the Prebid SDK - there's no concept of cookies there, so no syncing takes place in that scenario. ID in mobile is based on IDFA. - -For other scenarios, Prebid Server sets up and manages a multi-vendor ID match table in the `uids` cookie in the host company's -domain. i.e. adnxs.com, rubiconproject.com, or whichever Prebid Server vendor you're utilizing. When the user has a `uids` cookie, -Prebid Server parses it and passes the vendor-specific IDs to the relevant server-side bid adapters. - -Syncing in the AMP scenario uses the [load-cookie.html](/dev-docs/show-prebid-ads-on-amp-pages.html#user-sync) file that's part of -the Prebid Universal Creative package. When placed into an AMP-iframe, this file will call /cookie-sync and initiate a sync that -creates or updates the `uids` cookie. - -The most common source of requests for Prebid Server is from Prebid.js in a scenario where the user doesn't have any cookies for the Prebid Server domain. -1. The user loads a page with Prebid.js that's going to call Prebid Server -- i.e. the pub has set up s2sConfig. -2. Immediately after confirming that s2sConfig is setup, Prebid.js calls Prebid Server's /cookie-sync endpoint to initiate syncing -3. Prebid Server determines there is no `uids` cookie and responds to the browser with a list of pixel syncs for bidders that need to be synced. -4. Prebid.js places all of the pixels on the page and initiates the auction. -5. Because the syncs haven't completed, the auction call to Prebid Server will not contain the uids cookie. -6. The first auction occurs without IDs -7. At some point later, the pixels come back to Prebid Server through a /setuid redirect, setting (or updating) the uids cookie. -8. The second page view will have the IDs available. - - - -{: .alert.alert-info :} -Note: the company that's hosting Prebid Server can configure it to read and utilize their exchange's -native cookie. i.e. if you're using Rubicon Project's Prebid Server, it can read their 'khaos' cookie, and if you're using -AppNexus' Prebid Server, it can read their 'uuid2' cookie. In other words, if the host company is an exchange and the user -has the exchange cookie, the host company will have an ID one page-view sooner than the other bidders. This gives a slight edge to -the hosting company in some scenarios, but it's technically unavoidable and better for both buyers and sellers to have one ID available rather than zero. +For Prebid SDK there's no concept of cookies, so no syncing takes place in that scenario. ID in mobile is based on IDFA. + +For Prebid.js and AMP, see [Prebid Server User ID sync](/prebid-server/developers/pbs-cookie-sync.html) ## How does Prebid Server support privacy signals? diff --git a/prebid-server/developers/pbs-cookie-sync.md b/prebid-server/developers/pbs-cookie-sync.md index 921f5b8a9f..5f7de31627 100644 --- a/prebid-server/developers/pbs-cookie-sync.md +++ b/prebid-server/developers/pbs-cookie-sync.md @@ -6,6 +6,10 @@ title: Prebid Server | Developer | User ID Sync --- # Prebid Server User ID Sync +{: .no_toc} + +* TOC +{:toc} ## Motivation @@ -21,7 +25,11 @@ Prebid Server stores bidder IDs in the `uids` cookie in the host domain. For exa {"uids":{},"tempUIDs":{"adnxs":{"uid":"4722255122219375043","expires":"2020-07-30T22:10:28.961Z"},"triplelift":{"uid":"9328941297032053459","expires":"2020-07-30T22:10:33.496Z"},"yieldone":{"uid":"8c41c3b1-ce22-44fd-9bd7-454cd79e3c91","expires":"2020-07-30T22:10:33.229Z"},"ix":{"uid":"XlV6w9HM6LYAAHx2YJ4AAACZ&476","expires":"2020-07-30T22:10:31.916Z"},"yieldmo":{"uid":"ge515bd6c7da71cdc98a","expires":"2020-07-30T22:10:32.569Z"},"adform":{"uid":"1707054018971720697","expires":"2020-07-30T22:10:30.453Z"},"brightroll":{"uid":"y-S8Fq5QZ1lwWKPeXdoZ9vSeZx47maINFrJeY53pDtokA2FlaPmwvrJg--","expires":"2020-07-30T22:10:29.867Z"},"consumable":{"uid":"ue1-sb1-aa634f4b-d618-4378-b8c3-9baa56dcb91a","expires":"2020-07-30T22:10:28.07Z"},"pubmatic":{"uid":"2ECE1904-7EB2-4C38-98A4-38E97535AA9C","expires":"2020-07-30T22:10:27.559Z"},"rubicon":{"uid":"KACWYIER-P-59CH","expires":"2020-07-30T22:22:42.432Z"},"pulsepoint":{"uid":"dcxvyKqDV5VV","expires":"2020-07-30T22:10:26.915Z"},"sovrn":{"uid":"bad97f98b08c9204fe6b9826","expires":"2020-07-30T22:10:25.588Z"},"openx":{"uid":"f1f4ac13-99f8-46da-82f8-b52c29b378e0","expires":"2020-07-30T22:10:25.93Z"}},"bday":"2020-05-18T20:01:18.934Z"} ``` -Here's how these IDs get placed in the cookie: +## Setting the uids Cookie + +### Setting the uids cookie from Prebid.js + +Here's how these IDs get placed in the cookie from Prebid.js: ![Prebid Server Cookie Sync](/assets/images/prebid-server/pbs-cookie-sync.png){:class="pb-lg-img"} @@ -46,7 +54,7 @@ POST https://prebid-server.example.com/cookie_sync 5) When the browser receives this redirect, it contacts Prebid Server, which will once again check the privacy settings and will update the `uids` cookie if allowed. -### How It Works for AMP +### Setting the uids cookie from AMP Cookie sync for AMP works in a way quite similar to Prebid.js. @@ -70,7 +78,7 @@ Note that the only two values currently valid for 'endpoint' are 'appnexus' and 3) At runtime, the `load-cookie` script just calls the Prebid Server /cookie_sync endpoint. The rest works the same as described for Prebid.js above. -## Building a Sync Endpoint +## Bidder Instructions for Building a Sync Endpoint Bidders must implement an endpoint under their domain which accepts an encoded URI for redirects. This URL should be able to accept privacy parameters: @@ -100,3 +108,9 @@ Prebid Server would then save this ID mapping of `somebidder: 132` under the coo When the client then calls `www.prebid-domain.com/openrtb2/auction`, the ID for `somebidder` will be available in the Cookie. Prebid Server will then stick this into `request.user.buyeruid` in the OpenRTB request it sends to `somebidder`'s Bidder. + +## Further Reading + +- [Prebid Server Overview](/prebid-server/overview/prebid-server-overview.html) +- [Prebid.js s2sConfig](/dev-docs/publisher-api-reference.html#setConfig-Server-to-Server) +- [Prebid AMP Implementation Guide](/dev-docs/show-prebid-ads-on-amp-pages.html) From 766dafff10fe557e8b3d850ceba89c39f768bf8c Mon Sep 17 00:00:00 2001 From: Steve Date: Fri, 11 Sep 2020 16:01:21 -0400 Subject: [PATCH 17/65] Added docs.prebid.org google analytics tag --- _includes/footer.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_includes/footer.html b/_includes/footer.html index 668058859f..bffb0c8508 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -9,15 +9,16 @@ - + + diff --git a/_includes/head.html b/_includes/head.html index b7a530f7c5..12d1c73688 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -17,12 +17,7 @@ {{page.title}} for Header Bidding {% endif %} - - - - + diff --git a/_includes/video/pb-is-amp.html b/_includes/video/pb-is-amp.html index f860fe9596..f6cc79afb7 100644 --- a/_includes/video/pb-is-amp.html +++ b/_includes/video/pb-is-amp.html @@ -17,14 +17,7 @@ {{page.title}} for Header Bidding {% endif %} - - - - - - + @@ -67,7 +60,7 @@ - + @@ -108,7 +101,13 @@ debug: true, cache: { url: 'https://prebid.adnxs.com/pbc/v1/cache' - } + }, + consentManagement: { + gdpr: { + cmpApi: 'iab', + defaultGdprScope: true + } + } }); pbjs.requestBids({ diff --git a/_layouts/home.html b/_layouts/home.html index 46b859ff1f..272efe533f 100644 --- a/_layouts/home.html +++ b/_layouts/home.html @@ -119,17 +119,28 @@
- - \ No newline at end of file + diff --git a/examples/video/instream/radiant/pb-ve-radiant.html b/examples/video/instream/radiant/pb-ve-radiant.html index c1f9d7278f..110310f278 100644 --- a/examples/video/instream/radiant/pb-ve-radiant.html +++ b/examples/video/instream/radiant/pb-ve-radiant.html @@ -273,6 +273,9 @@

Place this code in the page body.

}); }); + __tcfapi("checkConsent", 2, (hasConsent, success) => { + if (hasConsent && success) { + /* here we re-define invokeVideoPlayer with Radiant Media Player set-up */ pbApp.invokeVideoPlayer = function (adTagUrl) { if (pbApp.playerSetup) { @@ -325,5 +328,13 @@

Place this code in the page body.

} pbApp.invokeVideoPlayer(pbApp.fallbackAdTagUrl); }, pbApp.playerSetupTimeout); + } else { // doesn't have consent + document.getElementById("rmpPlayer").innerHTML += '(Cookie permissions needed to demo this video player. Update Privacy Settings.)'; + } + }, { + data: [{ + purposeIds: [1] // asking for ability to set cookies + }] + }); diff --git a/examples/video/instream/videojs/pb-ve-videojs.html b/examples/video/instream/videojs/pb-ve-videojs.html index c4bf3d1bf7..f1679797ec 100644 --- a/examples/video/instream/videojs/pb-ve-videojs.html +++ b/examples/video/instream/videojs/pb-ve-videojs.html @@ -23,7 +23,7 @@

{{ page.title }}

-
+
+

Outstream AdUnit below

+ +

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

@@ -172,6 +188,14 @@

Place this code in the page body.

pbjs.que.push(function () { pbjs.addAdUnits(adUnits); + pbjs.setConfig({ + consentManagement: { + gdpr: { + cmpApi: "iab", + defaultGdprScope: true + } + } + }); pbjs.requestBids({ timeout: 1000, bidsBackHandler: function (bids) { diff --git a/examples/video/outstream/pb-ve-outstream-dfp.html b/examples/video/outstream/pb-ve-outstream-dfp.html index 21208d218e..20129af962 100644 --- a/examples/video/outstream/pb-ve-outstream-dfp.html +++ b/examples/video/outstream/pb-ve-outstream-dfp.html @@ -30,6 +30,20 @@

{{ page.title }}

Prebid Outstream Video Ad

+ - \ No newline at end of file + diff --git a/examples/video/outstream/pb-ve-outstream-no-server.html b/examples/video/outstream/pb-ve-outstream-no-server.html index 28f793f34a..b237d54e2c 100644 --- a/examples/video/outstream/pb-ve-outstream-no-server.html +++ b/examples/video/outstream/pb-ve-outstream-no-server.html @@ -108,9 +108,19 @@

Place this code in the page body.

- -
; -

Prebid Outstream Video Ad

-

+ diff --git a/examples/video/outstream/pb-ve-outstream-radiant.html b/examples/video/outstream/pb-ve-outstream-radiant.html index a32442769a..c37206af23 100644 --- a/examples/video/outstream/pb-ve-outstream-radiant.html +++ b/examples/video/outstream/pb-ve-outstream-radiant.html @@ -28,9 +28,26 @@

{{ page.title }}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Outstream AdUnit below

+
+ +

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

@@ -177,6 +194,14 @@

Place this code in the page body.

pbjs.que.push(function () { pbjs.addAdUnits(adUnits); + pbjs.setConfig({ + consentManagement: { + gdpr: { + cmpApi: "iab", + defaultGdprScope: true + } + } + }); pbjs.requestBids({ timeout: 1000, bidsBackHandler: function (bids) { diff --git a/examples/video/pb-video-template.html b/examples/video/pb-video-template.html index 9186a141bd..2c73cbc6ac 100644 --- a/examples/video/pb-video-template.html +++ b/examples/video/pb-video-template.html @@ -272,8 +272,21 @@

Place this code in the page body.

- \ No newline at end of file + diff --git a/examples/video/server/brid/pbs-ve-brid.html b/examples/video/server/brid/pbs-ve-brid.html index e397824456..6a03ea1491 100644 --- a/examples/video/server/brid/pbs-ve-brid.html +++ b/examples/video/server/brid/pbs-ve-brid.html @@ -167,6 +167,19 @@

Place this code in the page body.

- \ No newline at end of file + diff --git a/examples/video/server/jwplayer/pbs-ve-jwplayer-hosted.html b/examples/video/server/jwplayer/pbs-ve-jwplayer-hosted.html index 6e9695abf9..7541f8ea35 100644 --- a/examples/video/server/jwplayer/pbs-ve-jwplayer-hosted.html +++ b/examples/video/server/jwplayer/pbs-ve-jwplayer-hosted.html @@ -185,6 +185,19 @@

Place this code in the page body.

+ } + - \ No newline at end of file + diff --git a/examples/video/server/jwplayer/pbs-ve-jwplayer-jwplayer7.html b/examples/video/server/jwplayer/pbs-ve-jwplayer-jwplayer7.html index b97f5253f2..41cb675c72 100644 --- a/examples/video/server/jwplayer/pbs-ve-jwplayer-jwplayer7.html +++ b/examples/video/server/jwplayer/pbs-ve-jwplayer-jwplayer7.html @@ -175,6 +175,20 @@

Place this code in the page body.

- \ No newline at end of file + diff --git a/examples/video/server/jwplayer/pbs-ve-jwplayer-platform.html b/examples/video/server/jwplayer/pbs-ve-jwplayer-platform.html index a791d730db..ee23fe90a9 100644 --- a/examples/video/server/jwplayer/pbs-ve-jwplayer-platform.html +++ b/examples/video/server/jwplayer/pbs-ve-jwplayer-platform.html @@ -179,7 +179,20 @@

Place this code in the page body.

// we initialize our player instance, specifying the div to load it into var playerInstance = jwplayer('myElement1'); - function invokeVideoPlayer(url) { + __tcfapi("checkConsent", 2, (hasConsent, success) => { + if (hasConsent && success) { + videoHasConsent(); + } else { // doesn't have consent + document.getElementById("myElement1").innerHTML += '(Cookie permissions needed to demo this video player. Update Privacy Settings.)'; + } + }, { + data: [{ + purposeIds: [1] // asking for ability to set cookies + }] + }); + +function videoHasConsent() { + invokeVideoPlayer=function (url) { // this calls setup on the player we initialized // this will use the settings defined in the player we loaded above unless you override them here playerInstance.setup({ @@ -202,7 +215,7 @@

Place this code in the page body.

invokeVideoPlayer(tempTag); tempTag = false; } - +} - \ No newline at end of file + diff --git a/examples/video/server/jwplayer/pbs-ve-jwplayer-playlist.html b/examples/video/server/jwplayer/pbs-ve-jwplayer-playlist.html index f2eb304e67..e29d5a5a6e 100644 --- a/examples/video/server/jwplayer/pbs-ve-jwplayer-playlist.html +++ b/examples/video/server/jwplayer/pbs-ve-jwplayer-playlist.html @@ -196,6 +196,19 @@

Place this code in the page body.

var adTag = ""; var playerInstance = jwplayer('myElement1'); + __tcfapi("checkConsent", 2, (hasConsent, success) => { + if (hasConsent && success) { + videoHasConsent(); + } else { // doesn't have consent + document.getElementById("myElement1").innerHTML += '(Cookie permissions needed to demo this video player. Update Privacy Settings.)'; + } + }, { + data: [{ + purposeIds: [1] // asking for ability to set cookies + }] + }); + +function videoHasConsent() { invokeVideoPlayer = function(url) { adTag = url; console.log("MESSAGE: invoking the video player"); @@ -242,7 +255,7 @@

Place this code in the page body.

invokeVideoPlayer(tempTag); tempTag = false; } - + } - \ No newline at end of file + diff --git a/examples/video/server/kaltura/pbs-ve-kaltura.html b/examples/video/server/kaltura/pbs-ve-kaltura.html index 63f2d0eb13..b09aaee354 100644 --- a/examples/video/server/kaltura/pbs-ve-kaltura.html +++ b/examples/video/server/kaltura/pbs-ve-kaltura.html @@ -232,6 +232,18 @@

Place this code in the page body.

- \ No newline at end of file + diff --git a/examples/video/server/ooyala/pbs-ve-ooyala.html b/examples/video/server/ooyala/pbs-ve-ooyala.html index 7492ec603d..30943afb49 100644 --- a/examples/video/server/ooyala/pbs-ve-ooyala.html +++ b/examples/video/server/ooyala/pbs-ve-ooyala.html @@ -275,7 +275,22 @@

Place this code in the page body.

- \ No newline at end of file + diff --git a/examples/video/server/radiant/pbs-ve-radiant.html b/examples/video/server/radiant/pbs-ve-radiant.html index 1b8f4abe42..2ff222bab2 100644 --- a/examples/video/server/radiant/pbs-ve-radiant.html +++ b/examples/video/server/radiant/pbs-ve-radiant.html @@ -295,6 +295,20 @@

Place this code in the page body.

}); }); + __tcfapi("checkConsent", 2, (hasConsent, success) => { + if (hasConsent && success) { + videoHasConsent(); + } else { // doesn't have consent + document.getElementById("rmpPlayer").innerHTML += '(Cookie permissions needed to demo this video player. Update Privacy Settings.)'; + } + }, { + data: [{ + vendorId: 10064, + purposeIds: [1] // asking for ability to set cookies + }] + }); + + function videoHasConsent() { /* here we re-define invokeVideoPlayer with Radiant Media Player set-up */ pbApp.invokeVideoPlayer = function (adTagUrl) { if (pbApp.playerSetup) { @@ -347,5 +361,6 @@

Place this code in the page body.

} pbApp.invokeVideoPlayer(pbApp.fallbackAdTagUrl); }, pbApp.playerSetupTimeout); + } diff --git a/examples/video/server/videojs/pbs-ve-videojs.html b/examples/video/server/videojs/pbs-ve-videojs.html index 1154a644d2..1a444edce6 100644 --- a/examples/video/server/videojs/pbs-ve-videojs.html +++ b/examples/video/server/videojs/pbs-ve-videojs.html @@ -23,7 +23,7 @@

{{ page.title }}

-
+
{% include footer.html %} From 2070fa5da8205ecdb13cf16d1af191eb1ca085f1 Mon Sep 17 00:00:00 2001 From: bretg Date: Wed, 7 Oct 2020 14:36:06 -0400 Subject: [PATCH 65/65] updating cookies page --- cookies.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/cookies.md b/cookies.md index 8895f73b0f..e7457de724 100644 --- a/cookies.md +++ b/cookies.md @@ -9,13 +9,4 @@ sidebarType: 0 Prebid.org may store or retrieve information on your browser in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. However, blocking cookies may impact your experience of the site and the services we are able to offer. - -Cookie Settings - - -
- - - - - +To refine the usage of cookies on prebid.org sites, please update the "Store and/or Access Information On a Device" option in the Privacy Settings.