Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gdpr consentManagement module docs #645

Merged
merged 10 commits into from
Apr 16, 2018
Merged

gdpr consentManagement module docs #645

merged 10 commits into from
Apr 16, 2018

Conversation

jsnellbaker
Copy link
Contributor

DO NOT MERGE until prebid/Prebid.js#2213 is merged.

This PR represents the added documentation for the new GDPR consentManagement module.

---
layout: page
title: Module - GDPR ConsentManagement
description: User ID persisted in first party domain
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure this is accurate. Maybe change to something like "Add on module to consume and distribute consent information to bidder adapters"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a hold-over from a page I copied from to start things off that I missed. Will update it.

@@ -0,0 +1,178 @@
---
layout: page
title: Module - GDPR ConsentManagement
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mjacobsonny
What do you want to call the module? GDPR Consent Management or just "Consent Management"

if (bidderRequest && bidderRequest.gdprConsent) {
adapterRequest.gdpr_consent = {
consent_string: bidderRequest.gdprConsent.consentString,
consent_required: (typeof bidderRequest.gdprConsent.consentRequired === 'boolean') ? bidderRequest.gdprConsent.consentRequired : true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add a comment on this line describing the logic.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added a comment in the code


The actual implementation details of this CMP are not covered by this page; any questions on that implemenation should be referred to the CMP in question. However, we would recommend to have the CMP's code located before the prebid code in the head of the page, in order to ensure their framework is implemented before the prebid code starts to execute.

The module currently supports the following CMPs:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we discussed that this should be worded to include any CMP that conforms to the IAB standard at https://info.quantcast.com/rs/516-DGM-318/images/Framework%20CMP%20JS%20API%20Specification.pdf

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will make this update; would that be the ideal link to reference? I was looking around and thinking this may be better to use for a long-term reference:
https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

{: .table .table-bordered .table-striped }
| Param | Type | Description | Example |
| --- | --- | --- | --- |
| cmp | `string` | The ID for the CMP in use on the page. Default is `'appnexus'` | `'appnexus'` |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Related to the previous comment, believe this would be more like cmpApi, with the value being 'iab'.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll make this change (note - there will be subsequent updates in the main PR as a result).

| timeout | `integer` | Length of time (in milliseconds) to allow the CMP to perform its tasks before aborting the process. Default is `10000` | `10000` |
| allowAuctionWithoutConsent | `boolean` | A setting to determine what will happen when obtaining consent information from the CMP fails; either allow the auction to proceed (**true**) or cancel the auction (**false**). Default is `true` | `true` or `false` |

* Note - There are some technologies to determine if a given request is in scope of GDPR or not. While this technology is not part of the consentManagement module (nor prebid), some adapters may have this technology available. If they do, they have the opportunity to set their own default value for the `consentRequired` field. If you are using a GDPR supported adapter that has this capability, simply do **not** include this field in your config to let the corresponding adapter(s) set their value.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not the adapter that has the ability to determine GDPR scope... probably the SSP/exchange/bidder. Would suggest wording more like this:

Note - Some SSPs can determine whether a given request is in GDPR scope or not. If the page specifies consentRequired, it will override any dynamic determination and force the bidders to use this override value -- i.e. tell the SSP whether the consent string must be enforced for this user. Each bidder adapter supporting GDPR will default to the proper setting for the backend SSP, so it's not recommended to set this value unless override is what's desired.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the feedback, I'll make the changes as recommended.

@jsnellbaker
Copy link
Contributor Author

I've pushed a commit with changes in lieu of the recent feedback, as well as changes due to a shift of logic that happened in the module proper.

There is no longer a workflow where the module would wait for a new-user to finish entering their consent information. The eventlistener we were using the in the module to make this workflow work is not part of the IAB spec (it was only present in the AppNexus CMP), so it had to be removed to properly support the IAB CMP option. As a consequence, the timeout defaults were reduced to 500ms.

@mkendall07 mkendall07 merged commit 2b03e20 into master Apr 16, 2018
@jsnellbaker jsnellbaker deleted the gdpr_consent_module branch April 24, 2018 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants