dwyl / dwyl-site

:eyes: The dwyl website (please tell us what you think!)
https://dwyl.com
33 stars 14 forks source link

Update Cookie Consent for GDPR #458

Open Cleop opened 6 years ago

Cleop commented 6 years ago

As a user I want to have the freedom to consent or decline from the use of Cookies So that I know how my personal data is being used and that the EU law is being followed.

Questions:

Here is an example of a cookie modal's UI:

nelsonic commented 6 years ago

@Cleop I feel that we don't need cookies on the website except for for Google Analytics and we can easily "initialise" GA after cookie consent is given. The way you have done this for "CI" is roughly what we need for the dwyl site. But we need a detailed write-up of how it works (think technical blog post) because this is highly re-useable content. Thanks! 👍

Cleop commented 6 years ago

@nelsonic I totally agree, dwyl site doesn't need many cookies which makes life easier!

I was wondering more specifically whether you had any thoughts on if it's GDPR compliant to use a cookie to remember if someone chose actively not to give cookie consent? As in, once you say you don't want cookies, can a cookie still be used if it's not storing identifiable personal data?

This is a question I have for both CI and dwyl site.

nelsonic commented 6 years ago

@Cleop good question! 🤔 kinda by definition it's not kosher to use a cookie to store the user's opt-out of cookies ... For CI we should put the cookie preference in the Elm Model so that the person will not be "nagged" for the remainder of their current session. cookie prefs question/banner should be delayed e.g: onLoad setTimeout(function () { checkGDPRCookieConsent() }, 3000 )

If people are going to reject use of Cookies they are basically not going to get a great experience of using the CI app, but we shouldn't "nag" people on every page when they are just browsing ...

Cleop commented 6 years ago

Thanks @nelsonic, interesting.

In the case of CI, we have multiple elm apps running and therefore if a user were to navigate to another page which is running a different elm app then the information regarding their preferences would be lost.

Can you think of a way to overcome this?

Or do you think we should pursue a different route altogether with this in mind?

nelsonic commented 6 years ago

@Cleop in the case of having multiple Elm apps running on the same website, we need to get creative ... First question before we dive into trying to solve a complex problem is: do we need to have multiple Elm apps? (or can we initialise the same app with different "flags" depending on the page being loaded? i.e. can we solve a simpler problem instead?)

Cleop commented 6 years ago

@nelsonic I like the idea of that approach, I think in these specific circumstances the time/budget constraint of the client and the scale of the app would make that unfeasible.

Can you think of any faster options or do you think that is realistically the fastest solution?

nelsonic commented 6 years ago

@Cleop as you say, budget/time is constrained for the Client Project, therefore we should "accept" the cookie "nag" in the Client App as "undesirable UX" but by no means a "deal breaker" for the users.

From our experience of user-testing, people who are motivated to use something but who still want to avoid cookies, usually know about "incognito" or "private browsing". We have tested apps with users who's default behaviour is to open an Incognito Tab whenever they are searching for or trying something new precisely because they don't want to be tracked and then "spammed" by Ads.

Giving people a "nudge" to accept cookies to give them the best experience while using the (Web) App is good long-term UX because it gives the actual customers the client is trying to reach a way of seeing which products they have previously searched for.

So, in conclusion, for the specific Client Project my recommendation is:

Please let me know if this answers your question ("un-blocks" your progress). Thanks!

Cleop commented 6 years ago

Awesome, thanks for the insight @nelsonic, I've been able to implement this 👍 😊