Replies: 10 comments 18 replies
-
AFAIK, a true CMP (consent management platform) is made of 2 main components:
Therefore, this plugin is not a CMP. To be a valid, registered CMP, you also have to pay about €1.500 every year. The IAB-tcf framework can only be implemented if the solution is a valid CMP. A CMP + IAB-TCF compliant solution is expensive to build and maintain, and this plugin will very likely never become one. I would also assume that google's compliant/certified solutions will not be free. All users who rely on one of the listed ad-related products will have to switch, whether they like it or not. |
Beta Was this translation helpful? Give feedback.
-
Based on this discussion, it's unlikely that a solution with a permissive license — e.g. MIT, GPL or Apache — could ever implement the TCF framework as it has specific rules regarding the appearance/behavior/options of a CMP. These strict rules simply cannot be ensured if anyone is allowed to modify the plugin freely. |
Beta Was this translation helpful? Give feedback.
-
Is self-hosted solution like CookieConsent also a CMP? It's basically self-hosted and per definition not a provider. Or is the main problem that anyone can modify the plugin freely? Does it means that CookieConsent cannot be used for Google AdSense, Ad Manager, or AdMob? |
Beta Was this translation helpful? Give feedback.
-
From my research if you use Google Ads or Analytics as customer (you pay Google for traffic) - there is no need to use certified CMP (as this applies to publishers) - but you should properly set consent to use all functions like remarketing, audiences etc.: https://developers.google.com/tag-platform/security/guides/consent
Then update like:
But I am not 100% sure about that - so if anyone could confirm it - that would be great 😄 |
Beta Was this translation helpful? Give feedback.
-
That's my take on it as well @orestbida and @mateusz-zadorozny. So on https://playground.cookieconsent.orestbida.com/ where it says "New Google requirements. Google Ads products will no longer work with CookieConsent!", this is not true. It will work as long as you use Consent Mode in GTM? Further, as I understand it when you set ad_storage (marketing) this applies to ad_user_data and ad_personalization as well. Is that true? |
Beta Was this translation helpful? Give feedback.
-
So looking at https://developers.google.com/tag-platform/security/guides/consent?consentmode=advanced#implementation_example I worked out the following code for react (nextjs). Would this work the way it should or am I missing something? 'use client';
import {useEffect, useState} from "react";
import "vanilla-cookieconsent/dist/cookieconsent.css";
import * as CookieConsent from "vanilla-cookieconsent";
import Script from "next/script";
declare const window: Window & { dataLayer: Record<string, unknown>[]; };
const updateCookieConsent = () => {
CookieConsent.showPreferences();
};
const resetCookieConsent = () => {
CookieConsent.reset(true);
};
const listenForConsent = (state: any) => {
if (window._ccRun) return;
window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'functionality_storage': 'denied',
'personalization_storage': 'denied',
'security_storage': 'granted',
});
state.setLoadScript(true);
gtag('js', new Date());
gtag('config', process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS);
const updateGtagConsent = () => {
gtag('consent', 'update', {
'ad_storage': CookieConsent.acceptedCategory('advertisement') ? 'granted' : 'denied',
'ad_user_data': CookieConsent.acceptedCategory('advertisement') ? 'granted' : 'denied',
'ad_personalization': CookieConsent.acceptedCategory('advertisement') ? 'granted' : 'denied',
'analytics_storage': CookieConsent.acceptedCategory('analytics') ? 'granted' : 'denied',
'functionality_storage': CookieConsent.acceptedCategory('functional') ? 'granted' : 'denied',
'personalization_storage': CookieConsent.acceptedCategory('functional') ? 'granted' : 'denied',
'security_storage': 'granted', //necessary
});
};
window.addEventListener('cc:onConsent', () => {
updateGtagConsent();
});
window.addEventListener('cc:onChange', () => {
updateGtagConsent();
});
};
const CookieConsentComponent = () => {
const [loadScript, setLoadScript] = useState(false);
useEffect(() => {
/**
* All config. options available here:
* https://cookieconsent.orestbida.com/reference/configuration-reference.html
*/
listenForConsent({setLoadScript});
CookieConsent.run({
guiOptions: {
consentModal: {
layout: 'cloud inline',
position: 'bottom center',
equalWeightButtons: true,
flipButtons: false
},
},
categories: {
necessary: {
enabled: true,
readOnly: true
},
functional: {},
analytics: {},
// performance: {},
advertisement: {}
},
language: {
default: 'en',
translations: {
en: {
consentModal: {
title: 'We use cookies',
description: 'Hello, this website uses essential cookies to ensure its proper functioning and tracking cookies to understand how you interact with it. The latter is only set after permission.',
acceptAllBtn: 'Accept all',
acceptNecessaryBtn: 'Reject all',
showPreferencesBtn: 'Manage Individual preferences',
},
preferencesModal: {
title: 'Manage cookie preferences',
acceptAllBtn: 'Accept all',
acceptNecessaryBtn: 'Reject all',
savePreferencesBtn: 'Accept current selection',
closeIconLabel: 'Close modal',
serviceCounterLabel: 'Service|Services',
sections: [
{
title: 'Your Privacy Choices',
description: `We use cookies to ensure basic website functionality and to improve your online experience. You can choose to opt in or out of each category whenever you want.`,
},
{
title: 'Necessary',
description: 'Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.',
linkedCategory: 'necessary'
},
{
title: 'Functional',
description: 'Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.',
linkedCategory: 'functional',
},
{
title: 'Analytics',
description: 'Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.',
linkedCategory: 'analytics',
},
// {
// title: 'Performance',
// description: 'Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.',
// linkedCategory: 'performance',
// },
{
title: 'Advertisement',
description: 'Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.',
linkedCategory: 'advertisement',
},
{
title: 'More information',
// description: 'For any queries in relation to our policy on cookies and your choices, please <a href="/contact">contact us</a>.',
description: 'For any queries in relation to our policy on cookies and your choices, please contact us.'
}
]
}
}
}
}
});
}, []);
return (
<>
{loadScript && (<Script async strategy="lazyOnload" src={`https://www.googletagmanager.com/gtag/js?id=${process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS}`} />)}
</>
)
}
export { updateCookieConsent, resetCookieConsent, CookieConsentComponent } |
Beta Was this translation helpful? Give feedback.
-
has anybody managed to find the triggers for the next google requirement? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
[edit, found the answer] This article is useful: https://www.adbutler.com/blog/article/Google-Ad-Manager-vs-Google-Ads-Google-AdSense-Ecosystem-FAQ
|
Beta Was this translation helpful? Give feedback.
-
Google is one of the main reasons why those privacy regulations are necessary today and are being implemented by more and more governments around the world, and now they (Google) are shamelessly mandating what CMP solutions you are allowed to use and monetizing on it as well. This is very very wrong. Google should not be allowed to do that. Companies, websites, developers should be able to use their own homegrown CMP systems, as well as be free to choose who they want to use. Let's do something about it! |
Beta Was this translation helpful? Give feedback.
-
Google has recently annnounced that,
This is a concerning development for any publishers using Google's ad platforms, since it appears (on the face of it) that you will be required to use one of their pre-approved Consent Management Platforms in order to show ads in GDPR countries.
I'm just not clear what their definition of a CMP is, would it include self-hosted scripts like CookieConsent?
And if not, why not? Surely this is a very worrying concern if they will now absolutely require you to use a 3rd party service, and I just can't imagine many sites using in-house solutions such as CookieConsent will be very happy about this.
(more details)
I am hoping Google will get some significant pushback on this, or it will at least become clearer what our options are.
I really don't like the direction they're going here in terms of absolutely mandating an IAB solution to the GDPR requirements (and moreso potentially forcing the use of a 3rd party platform), there are significant problems here - not least the fact that IAB have tended to give the impression of bad faith actors in terms of compliance up until recently (although having said that, this whole area appears to be significantly complex).
Would appreciate any thoughts on this.
Beta Was this translation helpful? Give feedback.
All reactions