Опис
WP Consent API је додатак који уједначава преношење прихваћених категорија сагласности између додатака. Потребан му је додатак за банер колачића и бар још један додатак који подржава WP Consent API.
Са овим додатком сви подржани додаци могу да користе исти скуп метода за читање и регистровање тренутне категорије сагласности, што омогућава да додаци за управљање сагласношћу и други додаци раде заједно и побољшава усклађеност са законима о приватности.
УПОЗОРЕЊЕ: сам додатак неће управљати сагласношћу. Показаће вам колико имате додатака без подршке за Consent API и побољшаће усклађеност вашег сајта обезбеђивањем несметане комуникације између додатака за банер колачића и додатака који постављају колачиће или прате податке корисника.
Који проблем решава овај додатак?
Тренутно је могуће да додатак за управљање сагласношћу блокира услуге трећих страна као што су Facebook, Google Maps, Twitter итд. Али ако Вордпрес додатак постави PHP колачић, додатак за управљање сагласношћу то не може да спречи.
Друго, неки додаци уграђују кôд за праћење на страни клијента у JavaScript датотеке које, када се блокирају, кваре сајт.
Или, ако је JavaScript таквог додатка умањен, због чега URL постаје непрепознатљив и неће га открити скрипта за аутоматско блокирање.
На крају, приступ блокирања захтева списак свих врста URL-ова који прате податке. Општи API кога се додаци придржавају може знатно
да олакша администратору сајта да сајт учини усклађеним.
Да ли коришћење овог API-ја спречава услуге трећих страна да прате податке корисника?
Овај API је пре свега намењен усклађеним колачићима прве стране или праћењу од стране Вордпрес додатака. Ако такав додатак покреће, на пример, Facebook,
коришћење овог API-ја ће помоћи. Ако корисник угради Facebook iframe, потребна је алатка за блокирање која у почетку искључује iframe и/или скрипте.
Скрипте трећих страна морају бити блокиране функцијом блокирања у додатку за управљање сагласношћу. Радити то у основи било би превише наметљиво, а није ни применљиво на све кориснике: такву функцију захтевају само корисници са посетиоцима из opt-in региона као што је Европска унија. Таква функција такође носи ризик да нешто поквари. Осим тога, блокирање и приказивање лепог чувара места захтева још сложенији кôд, који по мом мишљењу, из истих разлога, не би требало да буде део основе Вордпреса.
Како ради?
Постоје два показатеља који заједно говоре да ли је дата сагласност за одређену категорију сагласности, нпр. „marketing“:
1) consent_type заснован на региону, који
може бити opt-in, opt-out или неки други могући consent_type;
2) и избор посетиоца: није постављен, allow или deny.
Функција consent_type обухвата филтер „wp_get_consent_type“. Ако не постоји додатак за управљање сагласношћу који би га поставио, вратиће false. То ће довести до тога да све категорије сагласности врате true, чиме се дозвољава постављање колачића у свим категоријама.
Ако је помоћу овог филтера постављен opt-in, категорија ће вратити true само ако је вредност избора посетиоца „allow“.
Ако је consent_type заснован на региону opt-out, вратиће true ако избор посетиоца није постављен или је „allow“.
На страни клијента, додатак за управљање сагласношћу може динамички да мења врсту сагласности и поставља више категорија колачића.
Додатак може да користи куку за ослушкивање промена или проверу вредности дате категорије.
Категорије и већина других ствари могу се проширити помоћу филтера.
Сагласност на нивоу услуге
Поред сагласности засноване на категоријама, API подржава управљање сагласношћу на нивоу услуге. То омогућава додацима за управљање сагласношћу да дају или одбију сагласност за одређене услуге (као што су ‘google-analytics’ или ‘facebook-pixel’) независно од њихове категорије. Приликом провере сагласности за услугу помоћу wp_has_service_consent(), API прво проверава да ли постоји изричита сагласност за ту услугу. Ако изричита сагласност није постављена, користи се стање сагласности категорије те услуге. Тако је могуће детаљно управљање: корисник може у начелу прихватити статистичке колачиће, али изричито одбити одређену аналитичку услугу.
Сагласност за услугу може се проверити и поставити и на серверу (PHP) и на клијенту (JavaScript):
PHP:
//check if a specific service has consent
if ( wp_has_service_consent( 'google-analytics' ) ) {
//activate google analytics
}
//check if a service is explicitly denied
if ( wp_is_service_denied( 'facebook-pixel' ) ) {
//service was explicitly denied by user
}
//set service consent
wp_set_service_consent( 'google-analytics', true ); //grant consent
wp_set_service_consent( 'facebook-pixel', false ); //deny consent
//listen for service consent changes
add_action( 'wp_consent_service_changed', function( $service, $consented ) {
error_log( "Service {$service} consent changed to: " . ( $consented ? 'granted' : 'denied' ) );
}, 10, 2 );
JavaScript:
//check service consent
if ( wp_has_service_consent( 'youtube' ) ) {
//activate tracking
}
//провера да ли је изричито одбијено
if ( wp_is_service_denied( 'facebook-pixel' ) ) {
//service denied
}
//постављање сагласности за услугу
wp_set_service_consent( 'youtube', true );
//ослушкивање промена сагласности за услугу
document.addEventListener( 'wp_consent_api_status_change_service', function( e ) {
console.log( 'Service: ' + e.detail.service + ', consented: ' + e.detail.value );
});
Постојеће интеграције
Разврстано по категоријама и поређано по абецеди
Пример додатка
- Пример додатка. Додатак се у суштини састоји од кратког кода са div елементом који приказује поруку о праћењу или непраћењу. Никакво стварно праћење се не обавља 🙂
Пружаоци услуге управљања сагласношћу
- Abconsent Sirdata CMP.
- Beautiful Cookie Consent Banner.
- Clickio Consent
- Cookie Consent CMP.
- Complianz GDPR/CCPA.
- Consent Studio.
- consentmanager.
- Conzent.
- Cookiebot.
- CookieFirst.
- CookieHub.
- CookieTractor.
- CookieYes – Cookie Banner for Cookie Consent.
- GDPR Cookie Compliance.
- GDPR Cookie Consent Plugin – CCPA Ready.
- GetTerms.
- iubenda | All-in-one Compliance.
- Lawwwing.
- Pressidium Cookie Consent.
- TrustArc Cookie Consent Manager
Додаци којима је потребна сагласност
- AddToAny.
- AFL UTM Tracker Plugin.
- Burst Statistics.
- Google Site Kit.
- Pixel Manager for WooCommerce.
- Woo.
- WP Statistics.
Сајт за приказ
wpconsentapi.org
Испод су наведени додаци коришћени за постављање сајта за приказ:
- Complianz
- Пример додатка
javascript, додатак за управљање сагласношћу
//set consent type
window.wp_consent_type = 'optin'
//dispatch event when consent type is defined. This is useful if the region is detected server side, so the consent type is defined later during the pageload
let event = new CustomEvent('wp_consent_type_defined');
document.dispatchEvent( event );
//consent management plugin sets cookie when consent category value changes
wp_set_consent('marketing', 'allow');
javascript, додатак за праћење
//listen to consent change event
document.addEventListener("wp_listen_for_consent_change", function (e) {
var changedConsentCategory = e.detail;
for (var key in changedConsentCategory) {
if (changedConsentCategory.hasOwnProperty(key)) {
if (key === 'marketing' && changedConsentCategory[key] === 'allow') {
console.log("just given consent, track user")
}
}
}
});
//basic implementation of consent check:
if (wp_has_consent('marketing')){
activateMarketing();
console.log("set marketing stuff now!");
} else {
console.log("No marketing stuff please!");
}
PHP
//declare compliance with consent level API
$plugin = plugin_basename( __FILE__ );
add_filter( "wp_consent_api_registered_{$plugin}", '__return_true' );
/**
* Example how a plugin can register cookies with the consent API
* These cookies can then be shown on the front-end, to the user, with wp_get_cookie_info()
*/
function my_wordpress_register_cookies(){
if ( function_exists( 'wp_add_cookie_info' ) ) {
wp_add_cookie_info( 'AMP_token', 'AMP', 'marketing', __( 'Session' ), __( 'Store a unique User ID.' ) );
}
}
add_action('plugins_loaded', 'my_wordpress_register_cookies');
if (wp_has_consent('marketing')){
//do marketing stuff
}
Имате предлоге за кôд? Налазимо се и на GitHub-у!
Постављање
Да бисте поставили овај додатак:
Преузмите додатак
Отпремите додатак у фасциклу wp-content/plugins,
Идите на „Додаци“ у Вордпрес администрацији, затим притисните „Укључи“.
ЧПП
-
Не, овај додатак пружа оквир преко кога додаци могу да сазнају да ли им је дозвољено да постављају колачиће или прате податке корисника.
За додатак су потребни и додатак за управљање сагласношћу и додатак који поштује ниво сагласности који се може прочитати из овог API-ја. -
Како да уградим свој додатак?
-
За сваку радњу која поставља колачиће или прати податке корисника треба размотрити о којој врсти праћења је реч. Постоји 5 категорија сагласности:
functional, statistics-anonymous, statistics, preferences, marketing. Објашњене су у наставку. Ваш кôд треба да провери да ли је дата сагласност за одговарајућу категорију. Ако ниједан додатак за банер колачића није укључен,
Consent API ће увек вратити сагласност (true).
Погледајте пример додатка и горње примере кода. -
Која је разлика између категорија сагласности?
-
Статистички:
Колачићи или било који други облик локалног складишта који се користе искључиво у статистичке сврхе (аналитички колачићи).Анонимно статистички:
Колачићи или било који други облик локалног складишта који се користе искључиво у анонимне статистичке сврхе (анонимни аналитички колачићи), који се постављају на домену прве стране и који не омогућавају препознавање одређених особа.Маркетиншки:
Колачићи или било који други облик локалног складишта потребни за стварање корисничких профила ради слања оглашавања или праћења корисника на веб сајту или на више веб сајтова у сличне маркетиншке сврхе.Функционални:
Колачић или било који други облик локалног складишта користи се искључиво у сврху преноса комуникације преко електронске комуникационе мреже;ИЛИ
Техничко складиштење или приступ је неопходан искључиво у легитимну сврху омогућавања коришћења одређене услуге коју је претплатник или корисник изричито затражио. Ако су колачићи искључени, тражена функција неће бити доступна. Због тога су то неопходни функционални колачићи.
Поставке:
Колачићи или било који други облик локалног складишта који се не може сматрати статистичким, анонимно статистичким, маркетиншким или функционалним, а где је техничко складиштење или приступ неопходан у легитимну сврху чувања поставки.
Рецензије
Сарадници и градитељи
„WP Consent API“ је софтвер отвореног кода. Следећи људи су допринели овом додатку.
Сарадници„WP Consent API“ је преведен на 22 језика. Хвала преводиоцима на њиховим доприносима.
Преведите „WP Consent API“ на свој језик.
Заинтересовани сте за развој?
Прегледајте кôд, погледајте SVN складиште или се претплатите на дневник развоја преко RSS-а.
Дневник измена
2.1.0
Измена: интерно некоришћена функција wp_set_cookie() уклоњена је у корист предстојеће функције wp_set_cookie() у основи Вордпреса.
2.0.1
Исправка: словна грешка у категорији ‘preferences’, због које је функција колачића за коментаре пратила сагласност за функционалну категорију, заслуге: @sjinks
2.0.0
- Ново: API сагласности на нивоу услуге – омогућава детаљно управљање сагласношћу по услузи, поред сагласности засноване на категоријама
- Ново: функција
wp_has_service_consent()за проверу да ли одређена услуга има сагласност - Ново: функција
wp_is_service_denied()за проверу да ли је одређена услуга изричито одбијена - Ново: функција
wp_set_service_consent()за постављање сагласности за одређену услугу - Ново: кука радње
wp_consent_service_changedпокреће се када се сагласност за услугу промени - Ново: JavaScript функције
wp_has_service_consent(),wp_is_service_denied()иwp_set_service_consent() - Ново: JavaScript догађај
wp_consent_api_status_change_serviceза промене сагласности за услугу - Побољшање: Додате ознаке типова у целом коду ради бољег квалитета кода и подршке за IDE
- Побољшање: Додат метод
init()за чистије покретање додатка - Безбедност: обезбеђено обавештење уписано у дневник у функцији _doing_it_wrong, заслуге: @mujuonly
1.0.8
- Ажурирано „Тестирано до“
- Уклоњено учитавање превода и учитавање plugin_data, ради спречавања обавештења о учитавању превода у Вордпресу 6.7, заслуге: @mujuonly
- Уклоњена застарела функција wp_has_cookie_info, заслуге: @szepeviktor
1.0.7
- Тестирано до
1.0.6
- Тестирано до
1.0.5
- тестирано до
1.0.4
- Побољшање: догађај промене се покреће само ако је откривена стварна промена сагласности.
1.0.3
- Исправка: функција wp_has_consent садржала је услов због кога је увек враћала true при провери opt-in сагласности на серверу.
1.0.2
- Исправљена документација за $collected_personal_data, јер је $is_personal_data застарео (заслуге: @jazzsequence, https://github.com/rlankhorst/wp-consent-level-api/issues/54)
- Исправљен docblock тако да одражава стварну враћену вредност (заслуге: @jazzsequence, https://github.com/rlankhorst/wp-consent-level-api/issues/52)
- Измене стила у здрављу сајта
- Измене у структури кода
- Уклоњено својство is_personal_data, јер је имплицитно садржано у својству personaldata
- Префикс колачића сада може да се филтрира, заслуге: @jazzsequence
1.0.1
- Cookiebot додат као постојећа интеграција
- Нека мања побољшања ради усклађивања са Вордпрес стиловима писања кода
1.0.0
- consent_api_setcookie промењено у consent_api_set_cookie ради доследности назива са методом getcookie
- додат префикс у JavaScript методе set и get, ради усаглашености са PHP колачићима, заслуге: @phpgeek
- уклоњена двострука категорија статистике, заслуге: @phpgeek
