diff --git a/CNAME b/CNAME index 3c93479163..d329f03eb1 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -prebid.org \ No newline at end of file +docs.prebid.org \ No newline at end of file diff --git a/_includes/adops/adops-gam-video-setup.html b/_includes/adops/adops-gam-video-setup.html index 67ea3ac629..5aa6714df9 100644 --- a/_includes/adops/adops-gam-video-setup.html +++ b/_includes/adops/adops-gam-video-setup.html @@ -49,13 +49,13 @@

Single Cache Location

If you’re using a single order for all bidders, then the VAST URL will be the same for each bidder:

-
   https://prebid.adnxs.com/pbc/v1/cache?uuid=%%PATTERN:hb_cache_id%%
+
   https://prebid.adnxs.com/pbc/v1/cache?uuid=%%PATTERN:hb_uuid%%
 or
    [other bidder cache location]

If you’re using different orders for each bidder, the VAST URL for each will include the bidder-specific targeting variable:

-
   https://prebid.adnxs.com/pbc/v1/cache?uuid=%%PATTERN:hb_cache_id_BIDDERCODE%%
+
   https://prebid.adnxs.com/pbc/v1/cache?uuid=%%PATTERN:hb_uuid_BIDDERCODE%%
 or
    [other bidder cache location]
diff --git a/dev-docs/bidders/adbutler.md b/dev-docs/bidders/adbutler.md index 6cfe2d661b..bca389de36 100644 --- a/dev-docs/bidders/adbutler.md +++ b/dev-docs/bidders/adbutler.md @@ -10,10 +10,11 @@ biddercode: adbutler ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|--------------------------------------|------------------|----------| -| `accountID` | required | Account ID | `'167283'` | `string` | -| `zoneID` | required | Zone ID | `'210093'` | `string` | -| `keyword` | optional | Keyword(s) used for custom targeting | `'green,orange'` | `string` | -| `minCPM` | optional | Minimum CPM value to accept | `'1.00'` | `string` | -| `maxCPM` | optional | Maximum CPM value to accept | `'5.00'` | `string` | +| Name | Scope | Description | Example | Type | +|-------------|----------|------------------------------------------------------|------------------|----------| +| `accountID` | required | Account ID | `'167283'` | `string` | +| `zoneID` | required | Zone ID | `'210093'` | `string` | +| `keyword` | optional | Keyword(s) used for custom targeting | `'green,orange'` | `string` | +| `minCPM` | optional | Minimum CPM value to accept | `'1.00'` | `string` | +| `maxCPM` | optional | Maximum CPM value to accept | `'5.00'` | `string` | +| `extra` | optional | Pass other AdButler parameters like 'tuid' or 'kw' | `{kw: "green"}` | `object` | diff --git a/dev-docs/bidders/apstream.md b/dev-docs/bidders/apstream.md new file mode 100644 index 0000000000..e85fb3cd51 --- /dev/null +++ b/dev-docs/bidders/apstream.md @@ -0,0 +1,97 @@ +# Overview + +``` +Module Name: AP Stream Bidder Adapter +Module Type: Bidder Adapter +Maintainer: stream@audienceproject.com +gdpr_supported: true +tcf2_supported: true +``` + +# Description + +Module that connects to AP Stream source + +# Inherit from prebid.js +``` + var adUnits = [ + { + code: '/19968336/header-bid-tag-1', + mediaTypes: { // mandatory and should be only one + banner: { + sizes: [[920,180], [920, 130]] + } + }, + bids: [{ + bidder: 'apstream', + params: { + publisherId: STREAM_PIBLISHER_ID // mandatory + } + }] + } + ]; +``` + +# Explicit ad-unit code +``` + var website = null; + switch (location.hostname) { + case "site1.com": + website = "S1"; + break; + case "site2.com": + website = "S2"; + break; + } + + var adUnits = [ + { + code: '/19968336/header-bid-tag-1', + mediaTypes: { // mandatory and should be only one + banner: { + sizes: [[920,180], [920, 130]] + } + }, + bids: [{ + bidder: 'apstream', + params: { + publisherId: STREAM_PIBLISHER_ID, // mandatory + code: website + '_Leaderboard' + } + }] + } + ]; +``` + +# Explicit ad-unit ID +``` + var adUnits = [ + { + code: '/19968336/header-bid-tag-1', + mediaTypes: { // mandatory and should be only one + banner: { + sizes: [[920,180], [920, 130]] + } + }, + bids: [{ + bidder: 'apstream', + params: { + publisherId: STREAM_PIBLISHER_ID, // mandatory + adunitId: 1234 + } + }] + } + ]; +``` + +# DSU + +To disable DSU use config option: + +``` + pbjs.setConfig({ + apstream: { + noDsu: true + } + }); +``` \ No newline at end of file diff --git a/dev-docs/bidders/rubicon.md b/dev-docs/bidders/rubicon.md index d09e94101c..bd396a0996 100644 --- a/dev-docs/bidders/rubicon.md +++ b/dev-docs/bidders/rubicon.md @@ -10,7 +10,7 @@ usp_supported: true coppa_supported: true schain_supported: true media_types: video -userIds: identityLink, liveIntentId, pubCommonId, unifiedId +userIds: identityLink, liveIntentId, unifiedId prebid_member: true safeframes_ok: true --- diff --git a/dev-docs/bidders/undertone.md b/dev-docs/bidders/undertone.md index 8afca67afa..17d7903ebf 100644 --- a/dev-docs/bidders/undertone.md +++ b/dev-docs/bidders/undertone.md @@ -19,6 +19,17 @@ userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrable | `placementId` | optional | Your placement ID (provided by undertone) | `"13as14d0"` | `string` | | `publisherId` | required | publisher ID (provided by undertone) | `12345` | `integer` | + +#### Video Object + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|------------------|----------|------------------------------------------------|-------------------------------------------|-----------------| +| `playbackMethod` | optional | Playback method supported by the publisher.
`1`: Auto-play sound on
`2`: Auto-play sound off
`3`: Click-to-play sound on
`4`: Mouse-over sound on| `1` | `integer` | +| `maxDuration` | optional | Maximum video ad duration in seconds. | `30` | `integer` | +| `skippable` | optional | Skippability of the inventory. Possible values: `true` - only skippable inventory is allowed, `false` - skippable inventory is not allowed, null/missing - all inventory is allowed (default value). | `true` | `boolean` | + + ### Configuration To maximize revenue efficiency, please enable iframe-based user syncing. This functionality will improve user match rates and will help increasing the bid rate. diff --git a/dev-docs/conditional-ad-units.md b/dev-docs/conditional-ad-units.md index 855f1677ac..c4073de26f 100644 --- a/dev-docs/conditional-ad-units.md +++ b/dev-docs/conditional-ad-units.md @@ -30,7 +30,7 @@ See the [Publisher API reference]({{site.baseurl}}/dev-docs/publisher-api-refere ## What if some bidders should be skipped for some devices? {: .alert.alert-info :} -See the [Advanced Size Mapping module](/dev-docs/modules/sizeMappingV2.html) for another way to handle this scenario. +See the [Advanced Size Mapping module](/dev-docs/modules/sizeMappingV2.html) for another way to handle this scenario. Note that you must use Advanced Size Mapping for mediaTypes other than banner. Say a particular bidder is focused on mobile phone demand, so it's really not worthwhile to send them requests from display or tablets. @@ -107,7 +107,7 @@ For instance, say that a given bidder wants to define different placements for d | Display | 1111 | | Phones and tablets | 2222 | -### Using the Global sizeConfig Approach +### Using the Global sizeConfig Approach (Banner only) Assuming the same `sizeConfig` as in the first use case above, the AdUnit would contain bids for both placements, but the conditional `labelAny` is added to them both. This will cause the bid to be fired only if one @@ -191,7 +191,7 @@ var AdUnits = [{ ## What if some ad unit auctions should be skipped entirely for some devices? Say there's a responsive page where one of the ad units only supports larger sizes, so it doesn't make sense -on phones. To suppress the ad unit for mobile users, we can apply conditional logic to the entire ad unit. For example: +on phones. To suppress the ad unit for mobile users, we can apply conditional logic to the entire ad unit. Here's an example using the global sizeConfig approach (banner only): {% highlight js %} @@ -219,6 +219,8 @@ var AdUnits = [{ ] }] +See the [Advanced Size Mapping module](/dev-docs/modules/sizeMappingV2.html) if you need to do something like this for video. + {% endhighlight %} ## What if some bid requests apply only to users originating certain from countries? diff --git a/dev-docs/faq.md b/dev-docs/faq.md index e7c48c1a76..fdbd0277f5 100644 --- a/dev-docs/faq.md +++ b/dev-docs/faq.md @@ -125,7 +125,7 @@ See [the GitHub release schedule](https://github.com/prebid/Prebid.js/blob/maste ## When do I have to upgrade my version of Prebid.js? -Prebid.org does not support any version of Prebid.js prior to version 1.0. If you want continued support through updates and documentation you should upgrade to a newer version. +Prebid.org does not support any version of Prebid.js prior to the previous version. e.g. if the current version is 4.x, we'll help debug 3.x, but not 2.x. If you want continued support through updates and documentation you should upgrade to a newer version. ## How can I change the price granularity for different ad units? @@ -148,6 +148,15 @@ benefits for sending more than one bid. Once you find the right balance for your application, you can specify what's sent to the ad server with [targetingControls.auctionKeyMaxChars](/dev-docs/publisher-api-reference.html#setConfig-targetingControls) and/or [sendBidsControl.bidLimit](/dev-docs/publisher-api-reference.html#setConfig-Send-Bids-Control) +## Can I run multiple different versions of Prebid.js concurrently? + +It's technically possible, but we don't recommend doing this: + +- The code isn't small. For performance reasons you don't want to run two versions if you can help it +- We don't test concurrent versions +- We won't specifically support debugging problems caused by running two concurrent versions. But will take take PRs if someone finds an issue. + +If all this wasn't enough to warn you away from trying, it should work if you name the PBJS global differently for each instance (https://github.com/prebid/Prebid.js/blob/master/package.json#L20) ## Related Reading diff --git a/dev-docs/publisher-api-reference.md b/dev-docs/publisher-api-reference.md index 7cf8fb41f3..2832c5bf1d 100644 --- a/dev-docs/publisher-api-reference.md +++ b/dev-docs/publisher-api-reference.md @@ -2042,13 +2042,14 @@ As of Prebid.js 3.11.0, the [Advanced SizeMapping module](/dev-docs/modules/size You should consider using that module if any of these scenarios are true: {::nomarkdown}
    +
  • You need to work with video or native AdUnits
  • The site needs to alter different AdUnits at different screen widths; e.g., the left-nav changes sizes at 600 pixels, but the footer's size behavior changes at 620 pixels.
  • The site needs to alter different mediaTypes at different screen widths; e.g., the banner size ranges are 0-400px, 401-700px, and 701+px, but the native ads appear at 500px.
  • Some bidders or mediaTypes should be included (or removed) at different overlapping size ranges.

{:/} -If, on the other hand, the AdUnits, bidders, and mediaTypes all change behavior together at the same viewport width, then the built-in sizeConfig feature is appropriate. +If, on the other hand, you're only working with the banner mediaType and the AdUnits all change behavior together at the same viewport width, then the built-in sizeConfig feature is appropriate. {% endcapture %} {% include alerts/alert_tip.html content=tip-choosing %} @@ -2058,7 +2059,7 @@ If, on the other hand, the AdUnits, bidders, and mediaTypes all change behavior -##### How it Works +##### How Size Config Works for Banners - Before `requestBids` sends bid requests to adapters, it will evaluate and pick the appropriate label(s) based on the `sizeConfig.mediaQuery` and device properties. Once it determines the active label(s), it will then filter the `adUnit.bids` array based on the `labels` defined and whether the `banner` mediaType was included. Ad units that include a `banner` mediaType that don't match the label definition are dropped. - The required `sizeConfig.mediaQuery` property allows [CSS media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries). The queries are tested using the [`window.matchMedia`](https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia) API. diff --git a/dev-docs/show-prebid-ads-on-amp-pages.md b/dev-docs/show-prebid-ads-on-amp-pages.md index a67f238882..34f376cc67 100644 --- a/dev-docs/show-prebid-ads-on-amp-pages.md +++ b/dev-docs/show-prebid-ads-on-amp-pages.md @@ -37,7 +37,7 @@ To set up Prebid to serve ads into your AMP pages, you'll need: + An account with a [Prebid Server][PBS] instance + One or more Prebid Server Stored Bid Requests. A Stored Bid Request is a partial OpenRTB JSON request which: - + Specifies properties like timeout and price granularity + + Specifies properties like currency, schain, price granularity, etc. + Contains a list of demand partners and their respective parameters + An AMP page containing at least one amp-ad element for an AMP ad network that supports Fast Fetch and AMP RTC @@ -52,19 +52,38 @@ To set up Prebid to serve ads into your AMP pages, you'll need: You will have to create at least one Stored Request for Prebid Server. Valid Stored Requests for AMP pages must contain an `imp` array with exactly one element. It is not necessary to include a `tmax` field in the Stored Request, as Prebid Server will always use the smaller of the AMP default timeout (1000ms) and the value passed via the `timeoutMillis` field of the `amp-ad.rtc-config` attribute (explained in the next section). -An example Stored Request is given below: +An example Stored Request is given below. You'll see that the Stored Request contains some important info +that doesn't come from /amp parameters: + +- cur +- schain +- ext.prebid.cache.bids - needed to let Prebid Server know that you want it to store the result in PBC +- ext.prebid.targeting.pricegranularity - needed to let Prebid Server know how to calculate the price bucket +- ext.prebid.aliases +- bidders and their parameters ```html { "id": "some-request-id", + "cur": ["USD"], + "source": { + "ext": { + "schain": { + ... + } + } + }, "site": { - "page": "prebid.org" + "page": "prebid.org" // will be overridden by the 'curl' parameter on /amp endpoint }, "ext": { "prebid": { + "cache": { + "bids": {} + }, "targeting": { - "pricegranularity": { // This is equivalent to the deprecated "pricegranularity": "medium" + "pricegranularity": { // This is equivalent to "pricegranularity": "medium" "precision": 2, "ranges": [{ "max": 20.00, @@ -86,10 +105,10 @@ An example Stored Request is given below: ] }, "ext": { - "appnexus": { + "bidderA": { // Insert parameters here }, - "rubicon": { + "bidderB": { // Insert parameters here } } @@ -98,6 +117,7 @@ An example Stored Request is given below: } ``` +This basic OpenRTB record will be enhanced by the parameters from the call to the [/amp endpoint](prebid-server/endpoints/openrtb2/amp.html). ### AMP content page @@ -277,8 +297,6 @@ To review that Prebid on AMP is working properly the following aspects can be lo + [AMP RTC Overview][RTC-Overview] + [AMP RTC Publisher Integration Guide](https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/rtc-publisher-implementation-guide.md) - - [PBS]: {{site.baseurl}}/dev-docs/get-started-with-prebid-server.html diff --git a/download.md b/download.md index 321496a5e1..0443487acc 100644 --- a/download.md +++ b/download.md @@ -158,7 +158,9 @@ function get_form_data() { # Customize and Download Prebid.js {: .lead :} -To improve the speed and load time of your site, build Prebid.js for only the header bidding partners you choose. + +{: .alert.alert-warning :} +Prebid.js is open source software that is offered for free as a convenience. While it is designed to help companies address legal requirements associated with header bidding, we cannot and do not warrant that your use of Prebid.js will satisfy legal requirements. You are solely responsible for ensuring that your use of Prebid.js complies with all applicable laws. We strongly encourage you to obtain legal advice when using Prebid.js to ensure your implementation complies with all laws where you operate. ### Option 1: Customize your download here @@ -402,6 +404,14 @@ Prebid only supports the most recent major version. Within a month or so after a +
+
+ +
+
+
Contact vendor| [Website](https://media.net) | | PrebidAnalytics by Roxot | [Paid]( http://prebidanalytics.roxot.com/) | [Website](http://prebidanalytics.roxot.com/) | | [Prebid Manager](https://prebidmanager.com/) | Free trial and free up to a certain volume. See [pricing](http://prebidmanager.com/#pricing) | [Website](http://prebidmanager.com/) | +| [Pubperf](https://www.pubperf.com/) | Free trial. See [pricing](https://www.pubperf.com/pricing) | [Website](http://www.pubperf.com/) | | [Pubstack](https://pubstack.io?source=prebid.org-analytics) ~ Real Time Analytics For Prebid and GAM | Start a free trial / Talk to the Sales Team | [Website](https://pubstack.io?source=prebid.org-analytics) | | PubWise | Free & Paid, see [pricing](https://pubwise.io/pricing/) | [Website](https://www.pubwise.io/) | | PulsePoint | Contact vendor | [Website](https://www.pulsepoint.com/) | diff --git a/prebid-mobile/adops-price-granularity.md b/prebid-mobile/adops-price-granularity.md index 1358b82b25..4d883ba8ff 100644 --- a/prebid-mobile/adops-price-granularity.md +++ b/prebid-mobile/adops-price-granularity.md @@ -1,26 +1,24 @@ --- layout: page_v2 -title: Price Granularity -description: Price granularity -pid: 2 -top_nav_section: prebid-mobile -nav_section: prebid-mobile-adops +title: Mobile Price Granularity +description: Mobile Price granularity sidebarType: 3 --- -# Price Granularity +# Prebid Mobile Price Granularity -With Prebid Mobile, you’ll need to setup line items to tell your ad server how much money the “bidder” demand is worth to you. This process is done via key-values. +With Prebid Mobile, you’ll need to setup line items to tell your ad server how much money the “bidder” demand is worth to you. This process is done with an ad server key-value pair: `hb_pb`, which stands for "header bidding price bucket". Example: - * Prebid Mobile is going to call Prebid Server which calls your bidders for their price, then passes it into your ad server on the query-string. You want to target this bid price with a line item that earns you the same amount if it serves. * If you had 1-line item for every bid at a penny granularity of $0.01, $0.02, $0.03, ..., 1.23, ..., $4.56 you’d need 1,000 line items just to represent bids from $0-$10. We call this the “Exact” granularity option. * Creating 1,000 line items can be a hassle, so publishers typically use price buckets to represent price ranges that matter. For example, you could group bids into 10 cent increments, so bids of $1.06 or $1.02 would be rounded down into a single price bucket of $1.00. +The SDK itself doesn't deal with granularity. Instead, these details are set up in Prebid Server and your ad server. The specific details about how to set up the price granularity will differ for each Prebid Mobile managed service company -- check with your provider to get details for their system. + ## Accepted values for price granularity + `"low"`: $0.50 increments, capped at $5 CPM @@ -28,6 +26,12 @@ Example: + `"high"`: $0.01 increments, capped at $20 CPM + `"auto"`: Applies a sliding scale to determine granularity as shown in the [Auto Granularity](#autoGranularityBucket) table below. + `"dense"`: Like `"auto"`, but the bid price granularity uses smaller increments, especially at lower CPMs. For details, see the [Dense Granularity](#denseGranularityBucket) table below. ++ `"custom"`: If none of the above apply, your service provider should provide a way to establish arbitrary price buckets. + +Notes: +- Banner and outstream video generally share the same ad server line items. +- PBS-Java support the "mediatypepricegranularity" enhancement, which lets you define different +granularities for banner and video @@ -54,10 +58,8 @@ Example: | CPM > $20 | Caps the price bucket at $20 | $24.82 floored to $20.00 | -{: .alert.alert-success :} -**Action Item:** Once you have decided the price granularity, go to Prebid Server [account page](https://prebid.adnxs.com/account/) to set the price granularity setting for your account. - +Please contact your Prebid Mobile host company for details about how to implement granularity. -The below screenshot is taken from the Prebid Server account page where you can choose your price granularity setting from the options. +## Further Reading -![Key-values]({{ site.github.url }}/assets/images/prebid-mobile/adops-price-granularity/pg-setting.png){: .pb-md-img :} +- [Prebid.js MediaTypePriceGranularity](/dev-docs/publisher-api-reference.html#setConfig-MediaType-Price-Granularity) diff --git a/privacy.md b/privacy.md index b3cc26146d..74373d2556 100644 --- a/privacy.md +++ b/privacy.md @@ -8,9 +8,10 @@ sidebarType: 0 # Prebid.org Website Privacy Policy {:.no_toc} -Last updated Dec 18, 2018 +Last updated Aug 5, 2020 Prebid.org, Inc. respects your right to privacy. This Privacy Notice explains who we are, how we collect, share and use personal information about you, and how you can exercise your privacy rights. This Privacy Notice applies to personal information that we collect through our website at [https://prebid.org/](https://prebid.org/) and its subdomains ("**Website**") and via our marketing activities and events. +This Privacy Notice does not apply to any information collected by third parties using our open source software. If you have any questions or concerns about our use of your personal information, then please contact us using the contact details provided at the bottom of this Privacy Notice. @@ -26,10 +27,11 @@ We recommend that you read this Privacy Notice in full to ensure you are fully i Prebid.org is an industry consortium that provides free and open source solutions to implement header bidding. We’re utilized globally and headquartered in the United States. We seek to ensure and promote fair, transparent, and efficient header bidding across the ad tech industry, representing all parts of the programmatic ecosystem, from ad tech vendors to publishers and others. -The open source software products we make available may be utilized by third parties for the purposes of serving online advertisements. These third parties may configure the software to enable pseudonymized data included in bid requests to be transmitted within the online advertising ecosystem. However, Prebid.org has no involvement in these transactions and does not itself transmit, store or otherwise process the pseudonymized data in these transactions.  Prebid.org is not responsible for the privacy practices of such third parties and it is the responsibility of the third party concerned to handle data in accordance with applicable privacy laws.  +The open source software products we make available may be utilized by third parties for the purposes of serving online advertisements. These third parties may configure the software to enable pseudonymized data included in bid requests to be transmitted within the online advertising ecosystem. However, Prebid.org has no involvement in these transactions and does not itself transmit, store or otherwise process the pseudonymized data in these transactions.  Prebid.org is not responsible for the privacy practices of third parties that use our software and it is the responsibility of the third party concerned to handle data in accordance with applicable privacy laws.  For more information about Prebid.org, please see the “About” section of our Website at [https://prebid.org/overview/what-is-prebid-org.html](/overview/what-is-prebid-org.html). + ## What personal information does Prebid.org collect and why? The personal information that we may collect from our Website or through our marketing activities broadly falls into the following categories: @@ -56,6 +58,7 @@ Collecting this information enables us to better understand the visitors who com Some of this information may be collected using cookies and similar tracking technology, as explained further in our [Cookies Notice](/cookies.html). + ## Who does Prebid.org share my personal information with? We may disclose your personal information to the following categories of recipients: @@ -92,7 +95,7 @@ We use appropriate technical and organisational measures to protect the personal Your personal information may be transferred to, and processed in, countries other than the country in which you are resident. We are headquartered in the US, and our member companies and third party service providers and partners operate around the world. Therefore, when we collect your personal information, we may process it in countries that have data protection laws that are different to the laws of your country and in some cases, may not be as protective. -We will take appropriate safeguards to ensure that your personal information will remain protected in accordance with this Privacy Notice, including signing standard contractual clauses with our third party service providers, or engaging third party service providers that are Privacy Shield certified. Further details can be provided upon request – please write to us using the contact details further below. +We will take appropriate safeguards to ensure that your personal information will remain protected in accordance with this Privacy Notice, including signing standard contractual clauses with our third party service providers. Further details can be provided upon request – please write to us using the contact details further below. ## Data retention @@ -100,21 +103,39 @@ We retain personal information we collect from you where we have an ongoing legi When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymise it or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible. + ## Your data protection rights -If you are a resident of the European Economic Area, you have the following data protection rights: +If you are a resident of the European Economic Area or California, you have the right to request to access or request deletion of your personal information. You may exercise this right at any time by using the contact details provided under the ["How to contact us"](#contact) heading below. -* If you wish to access, correct, update or request deletion of your personal information, you can do so at any time by using the contact details provided under the ["How to contact us"](#contact) heading below. +In addition, if you are a resident of the European Economic Area, you have the following additional data protection rights: -* In addition, you can object to processing of your personal information, ask us to restrict processing of your personal information or request portability of your personal information. Again, you can exercise these rights by contacting us using the contact details provided under the ["How to contact us"](#contact) heading below. +* You may object to processing of your personal information, ask us to restrict processing of your personal information or request portability or correction of your personal information. Again, you can exercise these rights by contacting us using the contact details provided under the ["How to contact us"](#contact) heading below. +* If we have collected and processed your personal information with your consent, then you can withdraw your consent at any time. Withdrawing your consent will not affect the lawfulness of any processing we conducted prior to your withdrawal, nor will it affect processing of your personal information conducted in reliance on lawful processing grounds other than consent. +* You have the right to complain to a data protection authority about our collection and use of your personal information. For more information, please contact your local data protection authority. Contact details for data protection authorities in the European Economic Area are available [here](https://ec.europa.eu/justice/data-protection/article-29/structure/data-protection-authorities/index_en.htm). -* You have the right to opt-out of marketing communications we send you at any time. You can exercise this right by clicking on the "unsubscribe" or "opt-out" link in the marketing e-mails we send you. Alternatively, you can opt out by using the contact details provided under the ["How to contact us"](#contact) heading below. +Everyone has the right to opt-out of marketing communications we send you +at any time. You can exercise this right by clicking on the "unsubscribe" or +"opt-out" link in the marketing e-mails we send you. Alternatively, you can opt +out by using the contact details provided under the ["How to contact us"](#contact) heading below. -* Similarly, if we have collected and processed your personal information with your consent, then you can withdraw your consent at any time. Withdrawing your consent will not affect the lawfulness of any processing we conducted prior to your withdrawal, nor will it affect processing of your personal information conducted in reliance on lawful processing grounds other than consent. +We respond to all requests we receive from individuals wishing to exercise their data protection rights in accordance with applicable data protection laws. -* You have the right to complain to a data protection authority about our collection and use of your personal information. For more information, please contact your local data protection authority. Contact details for data protection authorities in the European Economic Area are available [here](https://ec.europa.eu/justice/data-protection/article-29/structure/data-protection-authorities/index_en.htm). +## Additional information for California residents + +If you are a California resident, please review the following additional privacy disclosures under the California Consumer Privacy Act ("CCPA"). + +You have the right to understand how we collect, use, and disclose your personal information, to access your information, to request that we delete certain information, and to not be discriminated against for exercising your privacy rights. You may exercise these rights as described in the ["Your data protection rights"](#data-protection-rights) section above. + +You also have the right to understand what information we collect, for what purpose, and how we disclose personal information to third parties. As described in the [What personal information does Prebid.org collect and why?](#what-personal-info) section, we collect the categories of personal information listed below, and we use and disclose these categories of information for the business purposes described in that section. The categories are: + +* Identifiers, like your name, email address, IP address, device ID, cookie ID, and other similar identifiers. +* Internet or other electronic network activity information, such as the usage data we receive when you access or use our Website. This includes information about your interactions with the Website and about the devices and computers you use to access the Website. +* Professional or employment related information, including any information (like your name, email address, or similar information) that you provide about your employment or employer. +* Other information that you choose to provide. + +We share these categories of personal information as described in the [Who does Prebid.org share my personal information with?](#share-personal-info) section. We never sell the personal information we collect. -We respond to all requests we receive from individuals wishing to exercise their data protection rights in accordance with applicable data protection laws. ## Updates to this Privacy Notice