Advanced 

Advanced tab of a Klaro service record with JavaScript callback fields

Service Configuration - Advanced Tab

Advanced Settings 

Callback 

callback

callback
type

string

Default

''

You can define an optional callback function that will be called each time the consent state for the given service changes. The consent value is passed as the first parameter (true means consented). The service config is passed as the second parameter. The content of this field is wrapped with callback: function(consent, service) { }. consent is a boolean that reflects the current state. service holds all information about the selected service.

onAccept callback function 

on_accept

on_accept
type

string

Default

''

JavaScript code that is called each time the service is accepted. The content of this field is wrapped with callback: function(handlerOpts) { }. The object handlerOpts contains config (the current Klaro configuration), service (the current service), and vars when values were defined in the vars field.

Example: Google Tag Manager
// we notify the tag manager about all services that were accepted. You can define
// a custom event in GTM to load the service if consent was given.
for(let k of Object.keys(handlerOpts.consents)){
    if (handlerOpts.consents[k]){
        let eventName = 'klaro-'+k+'-accepted'
        dataLayer.push({'event': eventName})
    }
}
Copied!
Example: Google Analytics
// we grant analytics storage
gtag('consent', 'update', {
    'analytics_storage': 'granted',
})
Copied!
Example: Google Ads
// we grant ad storage and personalization
gtag('consent', 'update', {
    'ad_storage': 'granted',
    'ad_user_data': 'granted',
    'ad_personalization': 'granted'
})
Copied!

onInit callback function 

on_init

on_init
type

string

Default

''

JavaScript code that is called once per page load. The content of this field is wrapped with callback: function(handlerOpts) { }. The object handlerOpts contains config (the current Klaro configuration), service (the current service), and vars when values were defined in the vars field.

Example: Google Tag Manager
// initialization code here (will be executed only once per page-load)
window.dataLayer = window.dataLayer || [];
window.gtag = function(){dataLayer.push(arguments)}
gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied'})
gtag('set', 'ads_data_redaction', true)
Copied!

onDecline callback function 

on_decline

on_decline
type

string

Default

''

JavaScript code that is called each time the service is declined. The content of this field is wrapped with callback: function(handlerOpts) { }. The object handlerOpts contains config (the current Klaro configuration), service (the current service), and vars when values were defined in the vars field.

Example: Google Analytics
// we deny analytics storage
gtag('consent', 'update', {
    'analytics_storage': 'denied',
})
Copied!
Example: Google Ads
// we decline ad storage and personalization
gtag('consent', 'update', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied'
})
Copied!

Variables 

vars

vars
type

string

Default

''

Variables that can be used in callback functions. The content of this field is enclosed in curly brackets and must be valid JavaScript object notation.