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

Writes in local storage before CMP validation - prebid.cookieTest - criteoID #6289

Closed
haroldpussat opened this issue Feb 9, 2021 · 11 comments

Comments

@haroldpussat
Copy link

Type of issue

BUG

Description

Prebid.js with criteoId module writes in local storage a entry called 'prebid.cookieTest' with value '1' before CMP validation, and so before consent for write cookie / local storage is available.

Steps to reproduce

Build a prebid.js with criteoID sub module (tester with prebid.js 4.15)
Setup the criteo module in userSync.userIds.name: "criteo" for pbjs.settings
Navigate on below test page in private navigation.

If I build a prebid.js version without criteoId sub module, it seems the local storage is not written before CMP validation.

Test page

private navigation with Chrome, before validate the CMP : https://lp.additi.fr/interne/hpu/criteoID-module/index_20200909.html
image

Expected results

Before CMP validation, no writes in local storage or cookie is allowed (legal basis)

Actual results

prebid.cookieTest is recorded in local storage (see enclosed screenshot)

Platform details

Tested on Prebid.js 4.15 and 4.24 with criteoID sub module built in.

Other information

seems linked to #5616

@allanjun
Copy link
Collaborator

Hi @haroldpussat thank you for reporting that, Criteo team will have a look!

@allanjun
Copy link
Collaborator

After some investigation, we concluded that this works as expected. Please notice this is not exclusive to Criteo UserId module. This behaviour was applied on this commit:

https://github.com/prebid/Prebid.js/pull/5018/files#diff-381b65d4141bd216f9021175532d712ce87a9c4a55985c0cf1226f03421b6014R127

The explanation is documented here: https://github.com/prebid/Prebid.js/blob/master/src/storageManager.js#L292

This function returns storage functions to access cookies and localstorage. This function will bypass the gdpr enforcement requirement. Prebid as a software needs to use storage in some scenarios and is not a vendor so GDPR enforcement rules does not apply on Prebid.

@patmmccann
Copy link
Collaborator

@bretg i think this should be documented in multiple places on prebid docs, potentially gdpr module and userid module pages. Anywhere else?

@haroldpussat
Copy link
Author

Thanks for the feedback @allanjun . But our DPO maintains that in the scope of advertising, even if Prebid is not a vendor, the consent is mandatory before write in local storage.

@patmmccann
Copy link
Collaborator

@Fawke fyi, can we put this behavior behind consent or config?

@Fawke
Copy link
Contributor

Fawke commented Feb 19, 2021

@patmmccann @haroldpussat This behaviour sits behind consent, but you need to make sure GDPR Enforcement is included in your build. So, in the end, if criteo doesn't have consent, it should not write anything in localStorage.

prebid.cookieTest is written by one of the functions localStorageIsEnabled defined in storageManager core module. So if a core module calls this function, this gets written. #6323 fixes that.

@bretg
Copy link
Collaborator

bretg commented Feb 21, 2021

Prebid does have a GVLID now -- 887. If we're setting cookies for our own purposes (e.g. test), it needs to be done with the user's approval for this vendor ID.

@Fawke
Copy link
Contributor

Fawke commented Feb 22, 2021

Hi @bretg,

This would require us to change a few things. We currently have two ways of accessing storage in Prebid.js. One is access required by core modules (doesn't require user consent) and other by third party modules (sits behind consent).

For now, I see few core modules bypassing GDPR checks namely: categoryTranslation.js, userId, userSync and a file in bidderFactory.js is using storage without consent.

If we were to enforce checks on core, is there an interface where a publisher can grant/deny access to Prebid.js? Do we wanna create a config option in setConfig or is there another simple solution.

I don't know at the moment how inner workings of Prebid.js will get impacted with no storage access, so I'll have to dig into this a bit more. And do we wanna warn publisher the impact of disabling storage access to Prebid.js core?

@patmmccann
Copy link
Collaborator

patmmccann commented Feb 22, 2021 via email

@patmmccann
Copy link
Collaborator

patmmccann commented Feb 22, 2021 via email

@gglas
Copy link

gglas commented Mar 29, 2021

We think this is resolved by #6323 pending some documentation -- please let us know if we need to reopen

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

No branches or pull requests

6 participants