Websites promotion & analytics

Select your language

Ask a question +38 096 558 7514

Consent Modes for Traffic in the EEA

Have you heard about the ban on cookie transfer? Or the ban on the transfer of personalized data related to user events and visits? Or perhaps about the history of Facebook events on iOS 14+? Something similar is now happening with Google, and it will become effective starting March 24, 2024. Let’s take a closer look.

The topic of permission and prohibition on the transfer of personalized data became relevant for iOS 14+ devices a few years ago, and it was particularly problematic for Facebook advertisers. Facebook’s solution was to integrate the API Conversions. Google addressed the issue by updating encryption within Tag Manager. But now, this affects all websites with any Google tags that receive traffic from the European Economic Area (EEA).

Currently, Google wants all users of websites in the EEA to be able to either give or refuse their consent for the processing of user data (cookies). This infrastructure is known as consent mode.

Consent mode refers to permission or prohibition of transferring user information related to website visits (cookies).

This mode must be implemented by all websites with at least one Google tag (analytics, tag manager, conversion tag).

According to Google, company representatives will initially provide advisory support to help implement this feature. However, if consent mode is not implemented, Google Ads accounts may be blocked.

Logically, for those who rely on advertising, this is no joke, as all Google Ads accounts are now verified and linked to individuals or companies. The situation is more complicated for websites focused solely on SEO with no commercial commitments to Google. However, in any case, serious sanctions should be expected in the absence of consent mode, as the European Union’s legal requirements take precedence over Google’s policies.

Additional risks and why we are discussing this.

☝ Apart from Google penalties, there are advertising risks as well. If data isn’t transferred, analytics won’t be able to track conversions, and Google Ads won’t see the effectiveness of ad campaigns. As a result, the ad process, driven by intelligent bidding strategies, will become completely unpredictable, and its effectiveness will drop to zero. This puts the entire digital advertising sector at risk of collapse.

This is a kind of revolution in data transfer, which will change the way many businesses operate. If businesses don’t adapt to the new realities of consent mode, they risk their very existence. We highly recommend delving into how consent mode works.

How to implement consent mode?

👉 Through certified Google partners, offering ready-made solutions for implementing consent code. You just need to choose who to work with and insert the code on your website.

👉 By adding additional lines of code to the existing Google Developer tags according to the regulations.

You can take the first, easier route, but in the long run, you might find that standardized consent banners won’t provide the best results.

In consent modes, there are specific settings. Changing these settings also alters how data is processed and sent to Google’s servers.

How understanding consent algorithms?

2.1 The command that controls data collection consent is “consent”.

The “consent” command has two values:

  • default - the default setting;
  • update - used for updating consent properties.

* The “consent” command should be called on every page of the website.

2.2 As soon as the page loads, the code should ensure that the default setting prohibits data transfer, as the user has not yet given their consent. For example:


('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied'
});

2.3 When the user interacts with the popup banner, the “consent” directive should add the type of consent, whether allowing or denying data transfer.

The types of consent may be as follows:

  • ad_storage - allows storing data (e.g., in cookies) related to advertising;
  • analytics_storage - allows storing data (e.g., in cookies) related to analytics, such as session duration;
  • functionality_storage - allows storing data related to website or app functions, such as language preferences;
  • personalization_storage - allows storing data related to personalization, such as video recommendations;
  • security_storage - allows storing data related to security (e.g., authentication), fraud prevention, and other protective measures.

The commands for allowing or denying data processing are as follows:

  • granted - permission to transfer data;
  • denied - prohibition on data transfer.

2.4 An example of implementation might look like this:


<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Default ad_storage to 'denied'.
  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

  gtag('js', new Date());
  gtag('config', 'G-XXXXXX');
</script>

<!-- Update this section based on your business requirements. -->
<script>
  function consentGranted() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>

<body>
  ...
  <button onclick="consentGranted">Yes</button>
  ...
</body>

In this code, we see that data collection is initially denied by default, and then permission is granted for “ad_storage”.

According to the regulations, this is how it should work. If you skip the step of setting the default settings, the system will interpret this as granted permission, which is not correct according to the guidelines.

We’ve spent a lot of time studying the documentation to present this in a more understandable form. To confirm the logic behind our approach, we’ll show you a test on a popular website, using one of the plugins certified by Google.

Basic site visit without confirmation.

If no interaction is made, minimal data is loaded into the cookies, and more importantly, there is no unique Google Analytics client ID.

Базовое открытие сайта без подтверждения

Site visit with consent for statistics and marketing data.

Upon confirmation, Google Analytics data and other systems are loaded.

Открытие сайта с подтверждением

You will have a very logical question:

How to work then? How to advertise?

We initially thought that the solution would be end-to-end analytics via Measurement Protocol, but no! Since no consent means no Client ID or GCLID generation.

Thus, there are a few solution options:

  • Violate the law and proceed as before.
  • Fake consent confirmations, but that’ll only last until the first warning.
  • Use UTM tags, as Google recommends. Unfortunately, conversions won’t sync with Google Ads. You’ll see conversions in GA4, but Google Ads won’t be able to use this data.
  • If data transfer is prohibited, GCLID won’t be passed into cookies. It will simply exist in the URL without any data being transferred. Our tests confirm this in the screenshots.

  • Make the consent banner more obvious and detailed to encourage users to click what benefits you. Here’s a decent example from Facebook:
баннер согласия от Facebook
режим согласия от Facebook
баннер согласия cookie Facebook

And here’s an example from Google:

баннер согласия в Google

In the past, there was just a simple warning banner with a button, but now every click on such a banner triggers actions that change the data transfer algorithms between the website server and Google’s services.

If you’re building your consent window yourself, here are a few tricks:

👉 If the user consents, set the cookie lifespan to the maximum allowed time.

👉 If the user does not consent, set the cookie lifespan to the minimum time.

* You may already have a cookie consent block on your website, but in 99% of cases, it’s a dummy. Changes to data transfer algorithms should occur within the website when buttons are clicked, which is exactly what Google requires.

You can already check the implementation of consent mode through Tag Manager in the tab that was created recently:

consent mode check

Useful official sources:

Consent Modes and Ukraine

As of the time of writing, Ukraine is NOT part of the European Economic Area (EEA). Therefore, if your advertising is ONLY targeting Ukraine, you do not need to implement consent modes yet. This issue can be postponed until Ukraine joins the EU.

We hope this material has been useful and interesting for you. If there are any updates on this topic, we will be sure to supplement the article.

If you have any questions about our services, please write how to contact you and briefly describe your business.

* Your personal data is completely protected and will not be disclosed to third parties.

Please select the best way to contact you.

  • United States+1
  • United Kingdom+44
  • Afghanistan (‫افغانستان‬‎)+93
  • Albania (Shqipëri)+355
  • Algeria (‫الجزائر‬‎)+213
  • American Samoa+1
  • Andorra+376
  • Angola+244
  • Anguilla+1
  • Antigua and Barbuda+1
  • Argentina+54
  • Armenia (Հայաստան)+374
  • Aruba+297
  • Ascension Island+247
  • Australia+61
  • Austria (Österreich)+43
  • Azerbaijan (Azərbaycan)+994
  • Bahamas+1
  • Bahrain (‫البحرين‬‎)+973
  • Bangladesh (বাংলাদেশ)+880
  • Barbados+1
  • Belarus (Беларусь)+375
  • Belgium (België)+32
  • Belize+501
  • Benin (Bénin)+229
  • Bermuda+1
  • Bhutan (འབྲུག)+975
  • Bolivia+591
  • Bosnia and Herzegovina (Босна и Херцеговина)+387
  • Botswana+267
  • Brazil (Brasil)+55
  • British Indian Ocean Territory+246
  • British Virgin Islands+1
  • Brunei+673
  • Bulgaria (България)+359
  • Burkina Faso+226
  • Burundi (Uburundi)+257
  • Cambodia (កម្ពុជា)+855
  • Cameroon (Cameroun)+237
  • Canada+1
  • Cape Verde (Kabu Verdi)+238
  • Caribbean Netherlands+599
  • Cayman Islands+1
  • Central African Republic (République centrafricaine)+236
  • Chad (Tchad)+235
  • Chile+56
  • China (中国)+86
  • Christmas Island+61
  • Cocos (Keeling) Islands+61
  • Colombia+57
  • Comoros (‫جزر القمر‬‎)+269
  • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
  • Congo (Republic) (Congo-Brazzaville)+242
  • Cook Islands+682
  • Costa Rica+506
  • Côte d’Ivoire+225
  • Croatia (Hrvatska)+385
  • Cuba+53
  • Curaçao+599
  • Cyprus (Κύπρος)+357
  • Czech Republic (Česká republika)+420
  • Denmark (Danmark)+45
  • Djibouti+253
  • Dominica+1
  • Dominican Republic (República Dominicana)+1
  • Ecuador+593
  • Egypt (‫مصر‬‎)+20
  • El Salvador+503
  • Equatorial Guinea (Guinea Ecuatorial)+240
  • Eritrea+291
  • Estonia (Eesti)+372
  • Eswatini+268
  • Ethiopia+251
  • Falkland Islands (Islas Malvinas)+500
  • Faroe Islands (Føroyar)+298
  • Fiji+679
  • Finland (Suomi)+358
  • France+33
  • French Guiana (Guyane française)+594
  • French Polynesia (Polynésie française)+689
  • Gabon+241
  • Gambia+220
  • Georgia (საქართველო)+995
  • Germany (Deutschland)+49
  • Ghana (Gaana)+233
  • Gibraltar+350
  • Greece (Ελλάδα)+30
  • Greenland (Kalaallit Nunaat)+299
  • Grenada+1
  • Guadeloupe+590
  • Guam+1
  • Guatemala+502
  • Guernsey+44
  • Guinea (Guinée)+224
  • Guinea-Bissau (Guiné Bissau)+245
  • Guyana+592
  • Haiti+509
  • Honduras+504
  • Hong Kong (香港)+852
  • Hungary (Magyarország)+36
  • Iceland (Ísland)+354
  • India (भारत)+91
  • Indonesia+62
  • Iran (‫ایران‬‎)+98
  • Iraq (‫العراق‬‎)+964
  • Ireland+353
  • Isle of Man+44
  • Israel (‫ישראל‬‎)+972
  • Italy (Italia)+39
  • Jamaica+1
  • Japan (日本)+81
  • Jersey+44
  • Jordan (‫الأردن‬‎)+962
  • Kazakhstan (Казахстан)+7
  • Kenya+254
  • Kiribati+686
  • Kosovo+383
  • Kuwait (‫الكويت‬‎)+965
  • Kyrgyzstan (Кыргызстан)+996
  • Laos (ລາວ)+856
  • Latvia (Latvija)+371
  • Lebanon (‫لبنان‬‎)+961
  • Lesotho+266
  • Liberia+231
  • Libya (‫ليبيا‬‎)+218
  • Liechtenstein+423
  • Lithuania (Lietuva)+370
  • Luxembourg+352
  • Macau (澳門)+853
  • North Macedonia (Македонија)+389
  • Madagascar (Madagasikara)+261
  • Malawi+265
  • Malaysia+60
  • Maldives+960
  • Mali+223
  • Malta+356
  • Marshall Islands+692
  • Martinique+596
  • Mauritania (‫موريتانيا‬‎)+222
  • Mauritius (Moris)+230
  • Mayotte+262
  • Mexico (México)+52
  • Micronesia+691
  • Moldova (Republica Moldova)+373
  • Monaco+377
  • Mongolia (Монгол)+976
  • Montenegro (Crna Gora)+382
  • Montserrat+1
  • Morocco (‫المغرب‬‎)+212
  • Mozambique (Moçambique)+258
  • Myanmar (Burma) (မြန်မာ)+95
  • Namibia (Namibië)+264
  • Nauru+674
  • Nepal (नेपाल)+977
  • Netherlands (Nederland)+31
  • New Caledonia (Nouvelle-Calédonie)+687
  • New Zealand+64
  • Nicaragua+505
  • Niger (Nijar)+227
  • Nigeria+234
  • Niue+683
  • Norfolk Island+672
  • North Korea (조선 민주주의 인민 공화국)+850
  • Northern Mariana Islands+1
  • Norway (Norge)+47
  • Oman (‫عُمان‬‎)+968
  • Pakistan (‫پاکستان‬‎)+92
  • Palau+680
  • Palestine (‫فلسطين‬‎)+970
  • Panama (Panamá)+507
  • Papua New Guinea+675
  • Paraguay+595
  • Peru (Perú)+51
  • Philippines+63
  • Poland (Polska)+48
  • Portugal+351
  • Puerto Rico+1
  • Qatar (‫قطر‬‎)+974
  • Réunion (La Réunion)+262
  • Romania (România)+40
  • Russia (Россия)+7
  • Rwanda+250
  • Saint Barthélemy+590
  • Saint Helena+290
  • Saint Kitts and Nevis+1
  • Saint Lucia+1
  • Saint Martin (Saint-Martin (partie française))+590
  • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
  • Saint Vincent and the Grenadines+1
  • Samoa+685
  • San Marino+378
  • São Tomé and Príncipe (São Tomé e Príncipe)+239
  • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
  • Senegal (Sénégal)+221
  • Serbia (Србија)+381
  • Seychelles+248
  • Sierra Leone+232
  • Singapore+65
  • Sint Maarten+1
  • Slovakia (Slovensko)+421
  • Slovenia (Slovenija)+386
  • Solomon Islands+677
  • Somalia (Soomaaliya)+252
  • South Africa+27
  • South Korea (대한민국)+82
  • South Sudan (‫جنوب السودان‬‎)+211
  • Spain (España)+34
  • Sri Lanka (ශ්‍රී ලංකාව)+94
  • Sudan (‫السودان‬‎)+249
  • Suriname+597
  • Svalbard and Jan Mayen+47
  • Sweden (Sverige)+46
  • Switzerland (Schweiz)+41
  • Syria (‫سوريا‬‎)+963
  • Taiwan (台灣)+886
  • Tajikistan+992
  • Tanzania+255
  • Thailand (ไทย)+66
  • Timor-Leste+670
  • Togo+228
  • Tokelau+690
  • Tonga+676
  • Trinidad and Tobago+1
  • Tunisia (‫تونس‬‎)+216
  • Turkey (Türkiye)+90
  • Turkmenistan+993
  • Turks and Caicos Islands+1
  • Tuvalu+688
  • U.S. Virgin Islands+1
  • Uganda+256
  • Ukraine (Україна)+380
  • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
  • United Kingdom+44
  • United States+1
  • Uruguay+598
  • Uzbekistan (Oʻzbekiston)+998
  • Vanuatu+678
  • Vatican City (Città del Vaticano)+39
  • Venezuela+58
  • Vietnam (Việt Nam)+84
  • Wallis and Futuna (Wallis-et-Futuna)+681
  • Western Sahara (‫الصحراء الغربية‬‎)+212
  • Yemen (‫اليمن‬‎)+967
  • Zambia+260
  • Zimbabwe+263
  • Åland Islands+358
Thanks! Your message has been sent.
Sending failed. Please fix the errors and try again.