Собирайте согласие посетителей вашего сайта, чтобы защитить их конфиденциальность и при этом собирать ценную статистику. Рекомендуем использовать платформу для запросов согласия (CMP) или систему управления контентом (CMS), чтобы собирать согласие и отправлять его в Google.
Подробнее о том, как настроить баннер с запросом согласия с помощью соответствующей платформы или системы управления контентом…
Шаг 1. Настройте баннер с запросом согласия
- Если вы работаете с CCM Advanced (под управлением менеджера), то технический менеджер аккаунта настроит для вас баннер в соответствии с вашими требованиями и стилистическими рекомендациями.
- Если вы работаете с CCM Pro (CMP для самостоятельного использования), то TrustArc предоставит вам URL для входа на портал. Там вы сможете воспользоваться мастером с готовыми шаблонами баннеров.
- Баннер должен соответствовать правилам Google в отношении согласия пользователей из ЕС (EUUCP). Подробную информацию о баннерах TrustArc вы можете найти в разделе Начало работы нашего руководства для пользователей.
- Добавьте в код сайта элементы
<div>
, которые отвечают за обработку баннера, и ссылку на CMP. Можете также воспользоваться Google Менеджером тегов.
Шаг 2. Настройте режим согласия
Google Менеджер тегов
- Откройте Google Менеджер тегов и найдите контейнер.
- В разделе "Теги" нажмите "Новый" и введите название тега.
- Нажмите Конфигурация тега и выберите "В галерее общедоступных шаблонов вы сможете найти ещё больше типов тегов". В галерее выполните поиск по запросу TrustArc CMP (Consent Mode), а затем установите TrustArc CMP (Consent Mode) от TrustArc.
- Задайте подходящие вам настройки по умолчанию в разделе "Настройки режима согласия по умолчанию".
- Выберите вариант Deploy CMP Script using the template (Реализовать скрипт CMP с помощью шаблона).
- В поле CMP ID (Идентификатор CMP) укажите идентификатор экземпляра, полученный на шаге 4 на портале CCM Pro. Если вы работаете с CCM Advanced, эту информацию можно получить у технического менеджера аккаунта.
- В поле Additional parameters (Дополнительные параметры) укажите дополнительные настройки для экземпляра. Эта конфигурация будет переопределять серверные настройки, такие как язык, геолокация, политика конфиденциальности, ссылки и т. п.
- Настройте интеграцию, включив настройку Integrate CMP with Google Consent Mode (Интегрировать CMP с режимом согласия Google).
- Укажите данные о сопоставлении типов согласия и предпочтений пользователя в соответствии с вашими настройками. Для каждого типа согласия, который вы используете, задайте соответствующий идентификатор сегмента согласия на использование файлов cookie (обязательные, функциональные, рекламные). В поле Preferences Cookie (Файл cookie для предпочтений) укажите собственный файл cookie для cmapi_cookie_privacy. В поле Behavior Cookie (Файл cookie для поведения) укажите собственный файл cookie для notice_behavior.
- Нажмите Triggering > Consent Initialization - All Pages > Save (Триггеры > Инициализация согласия > Все страницы > Сохранить).
- Нажмите Предварительный просмотр в правом верхнем углу, чтобы протестировать контейнер. Инструкции по тестированию вы найдете ниже.
- Опубликуйте контейнер.
Другие платформы или редактирование кода на сайте
- Войдите на портал поддержки TrustArc, откройте руководство TrustArc Google Consent Mode Implementation Guide по этой ссылке и следуйте инструкциям в разделе Integrating the Consent Mode Using JavaScript (Интеграция режима согласия при помощи JavaScript).
- Если вы используете конструктор сайтов, ознакомьтесь с документацией к нему, чтобы узнать, как добавить код в тег <head> на каждой странице. В противном случае перейдите к шагу 3.
- Если вы работаете с CCM Advanced, выполните этот шаг. В противном случае перейдите к шагу 4. Вставьте код, скопированный на шаге 2 (если вы использовали конструктор сайтов), в самое начало раздела <head> на каждой странице. После него вставьте также скрипт CMP, полученный на шаге 1. Этот шаг необходим для правильной работы функций CMP.
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-YYYYYY');
// Типы согласия по умолчанию – denied в качестве плейсхолдера.
// Определите фактические значения с учетом ваших требований.
// Пропустите типы согласия, которые не используете.
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'functionality_storage': 'denied',
'personalization_storage': 'denied',
'security_storage': 'denied',
'wait_for_update': 500
});
gtag('set', 'ads_data_redaction', true);
gtag('set', 'developer_id.dNTIxZG', true);
</script>
<!--Вставьте скрипт баннера!-->
- Если вы работаете с CCM Pro, выполните этот шаг. Вставьте код, скопированный на шаге 2 (если вы использовали конструктор сайтов), в самое начало раздела <head> на каждой странице. После него вставьте также скрипт CMP, полученный на шаге 1. Этот шаг необходим для правильной работы функций CMP. Обязательно настройте связь между сегментами CMP и типами согласия.
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID');
gtag('set', 'developer_id.dNTIxZG', true);
// ДЕЙСТВИЕ: Можно изменить в соответствии с потребностями клиента и конфигурацией.
gtag('set', 'ads_data_redaction', true);
gtag('set', 'url_passthrough', true);
//Статус режима согласия.
const ConsentType = {
DENIED: 'denied',
GRANTED: 'granted',
};
const convertBooleanToGrantedOrDenied = (boolean) => boolean ? ConsentType.GRANTED : ConsentType.DENIED;
/*
ДЕЙСТВИЕ: Здесь вы можете настроить режим согласия Google, а также сопоставить категоризацию CMP и значения по умолчанию для инициализации согласия.
Рекомендуем прокомментировать типы согласия, которые вы не планируете использовать.
*/
const domain = 'your_domain.com'; // ДЕЙСТВИЕ: обновить
// Сопоставление сегментов.
const REQUIRED = 1;
const FUNCTIONAL = 2;
const ADVERTISING = 3;
const consentTypesMapped = {
'ad_storage': ADVERTISING,
'ad_user_data': ADVERTISING,
'ad_personalization': FUNCTIONAL,
'analytics_storage': FUNCTIONAL,
'functionality_storage': FUNCTIONAL,
'personalization_storage': FUNCTIONAL,
'security_storage': REQUIRED
}
const getConsentState = (prefCookie) => {
var consentStates = {};
var noticeBehavior = window.truste.util.readCookie("notice_behavior");
/*
ДЕЙСТВИЕ: Можно изменить в соответствии с потребностями клиента и конфигурацией.
*/
var impliedLocation = noticeBehavior && noticeBehavior.includes("na");
for (const consentType in consentTypesMapped) {
var id = consentTypesMapped[consentType];
if(prefCookie && !prefCookie.includes(0)) {
console.log("Existing consent..");
consentStates[consentType] = convertBooleanToGrantedOrDenied(prefCookie && prefCookie.includes(id));
} else {
console.log("Non Existing consent..");
consentStates[consentType] = convertBooleanToGrantedOrDenied(impliedLocation);
;}
;}
consentStates['wait_for_update'] = 500;
console.log(consentStates);
return consentStates;
};
/*
Вспомогательная функция для отправки события GCM на основе предпочтений пользователя в скрипте TrustArc.
Объект consent представляет собой массив значений [1, 2, 3, n], 1 означает, что пользователь согласился принимать обязательные файлы cookie, 2 – функциональные и т. д.
Эту функцию необходимо настроить в соответствии с требованиями клиента. Например, 'ad_storage': returnGrantedOrDenied(advertisingAccepted) сопоставляется с рекламными настройками. Если мы бы хотели сопоставить этот параметр с функциональными настройками, то нам нужно было бы изменить переменную сегмента, на которую ссылается параметр.
*/
var runOnceGCM = 0;
function handleConsentDecisionForGCM(consent) {
//Этот код инициализирует режим согласия.
const consentStates = getConsentState(consent.consentDecision);
var defaultOrUpdate;
if (runOnceGCM == 0) {
defaultOrUpdate = 'default';
runOnceGCM++;
} else {
console.log('consent is being updated');
defaultOrUpdate = 'update';
}
console.log(consentStates);
//Если статус согласия изменился, мы отправим обновленные данные.
gtag('consent', defaultOrUpdate, {
consentStates
});
}
// Этот код отвечает за прослушивание любых изменений согласия через экземпляр CCM TrustArc.
// Также этот код отвечает за передачу изменений согласия на уровень данных в соответствии с сопоставлением.
// Для первоначальной загрузки. Если пользователь предоставил согласие, отличающееся от данных по умолчанию, необходимо передать обновление на уровень данных.
// После загрузки CCM.
var interval = setInterval(() => {
if (window.truste) {
var consentDecision = truste.cma.callApi("getGDPRConsentDecision", domain);
handleConsentDecisionForGCM(consentDecision);
clearInterval(interval);
console.log("running once...");
}
}, 100);
// Начать прослушивание предпочтений пользователей.
window.addEventListener("message", (event) => {
let eventDataJson = null;
// На данный момент нас интересуют только события TrustArc. Такие события закодированы в JSON.
try {
eventDataJson = JSON.parse(event.data);
} catch {
// Другое событие, которого нет в JSON.
// TrustArc кодирует данные в формат JSON.
// console.log(event.data);
}
// Так мы гарантируем, что получаем события только от TrustArc.
if (eventDataJson && eventDataJson.source === "preference_manager") {
// Это означает, что пользователь сообщил о своих предпочтениях.
if (eventDataJson.message === "submit_preferences") {
console.log("Event Data: ", eventDataJson);
// Ждем полсекунды, чтобы убедиться, что предпочтения пользователя учтены.
setTimeout(() => {
var consentDecision = truste.cma.callApi("getGDPRConsentDecision", domain);
console.log("Consent Decision: ", consentDecision);
handleConsentDecisionForGCM(consentDecision);
}, 500);
}
}
}, false);
<!--Вставьте скрипт баннера!-->
Тестирование с помощью Tag Assistant
Подробнее о том, как использовать Google Менеджер тегов для устранения неполадок с режимом согласия…