-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Fix gdprenforcement module to look for generic purpose 1 consent when enforcing legacy pubcommonid and sharedid modules #8161
Comments
@dgirardi after review this is indeed a bug, and a rather high priority one. The Pubcommonid does not have a vendor id, which is correct as it is set by the publisher, so I believe we should just be checking consentData for purpose one consent with no specific vendor at all. I had to decode a tcf string to see if this was even a concept, it appears to be so, that there is generalized purpose one consent. |
@patmmccann right now the logic is "allow if both purpose and vendor are explicitly allowed". The fix seems to be "allow if purpose is allowed, and vendor is either allowed or unknown". Is that right? it seems like a major change in the meaning of the consent string. Prebid.js/modules/gdprEnforcement.js Lines 136 to 157 in 02264c8
|
@JulieLorin - PubCommon has been deprecated in favor of SharedID since PBJS 5.0. So two comments:
Anyhow, heres an example:
|
I believe Prebid's GVL ID of 887 was there for pre5.x behavior and should be removed. The sharedid and the pubcommonid are generated only in the first party and purpose consent is applicable, but not consent to any particular vendor. The enforcement module should understand how to handle this "vendorless consent" whether a publisher is doing their own analytics, establishing their own id, or suplying their own RTD. |
@JulieLorin it isn't clear if you are referring to the standalone pubcommon id module or the id submodule, could you also clarify your prebid version? |
@jdwieland8282 -- let's take up this in next id committee meeting; should there be "vendor-less" modules that gdpr enforcement allows |
@patmmccann, @bretg does the first party fall outside of GDPR scope? it's not technically difficult to replace the GVLID with a placeholder that means "first party", but it would not be possible to decline consent for it (unless you decline storage in general). It's unclear to me if going this route breaks the rules. |
In my opinion for first party Id, the adapter should support a customization option allowing the publisher/operator to add its own vendorId for tcf check. |
@patmmccann The prebid version is 6.11.0 |
@JulieLorin that's true, the old module was kept open at Conversant's request while they work to migrate people. The new module might suffer the same issue however if we remove the gvlid, so we'll keep this open to track. |
FWIW, the TCF signals specs support CMPs providing transparency for the publisher's processing. These would be the "authoritative" publisher signal, if present. These are reflected in the "publisher" sub-object in the TCData API response: https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#tcdata. Absent these, checking "Purpose 1 consented" is a good baseline. |
After updating from 7.42 to 7.54.0 this warning now shows up "WARNING: Activity control: TCF2 denied 'accessDevice' for 'userId.pubCommonId'". I guess due to this #9736 ? |
Type of issue
I think this is a bug
Description
When using both gdprEnforcement (with enforcement or purpose and vendor for storage) and pubCommonId, pubCommonId is denied access to storage and won't be able to retrieve an ID
Steps to reproduce
Just import both module.
You can use this configuration in setConfig :
Expected results
I expect to have a pubcid when consent is given
Actual results
I have a log live saying pubcid = null
Platform details
Chrome
Other information
I tried some debugging and what is happening is that pubCommonId creates a storageManager with no gvlid and no moduleName.
So when pubCommonId tries to write the ID in the local storage, because of those lines in gdprEnforcement module :
The text was updated successfully, but these errors were encountered: