-
Notifications
You must be signed in to change notification settings - Fork 3
/
iubenda-onPreferenceExpressedOrNotNeeded.js
77 lines (69 loc) · 1.96 KB
/
iubenda-onPreferenceExpressedOrNotNeeded.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
function (preference) {
/*
Web Site Advantage: Iubenda Google Consent Mode [v1.0]
Implements Google Consent Mode for use in the onPreferenceExpressedOrNotNeeded callback
https://bigcommerce.websiteadvantage.com.au/
Copyright (C) 2024 Web Site Advantage
*/
if (!preference) {
gtag("consent", "update", {
"ad_storage": "denied",
"ad_user_data": "denied",
"ad_personalization": "denied",
"analytics_storage": "denied",
"functionality_storage": "denied",
"personalization_storage": "denied",
"security_storage": "denied"
});
return;
};
if (preference.consent === true) {
gtag("consent", "update", {
"ad_storage": "granted",
"ad_user_data": "granted",
"ad_personalization": "granted",
"analytics_storage": "granted",
"functionality_storage": "granted",
"personalization_storage": "granted",
"security_storage": "granted"
});
return;
};
if (preference.consent === false) {
gtag("consent", "update", {
"ad_storage": "denied",
"ad_user_data": "denied",
"ad_personalization": "denied",
"analytics_storage": "denied",
"functionality_storage": "denied",
"personalization_storage": "denied",
"security_storage": "denied"
});
return;
}
if (preference.purposes) {
var update = {};
for (var purposeId in preference.purposes) {
var state = preference.purposes[purposeId] ? 'granted' : 'denied';
// settings are based on how the Iubenda GTM Template does it
switch (purposeId) {
case '2': // Functionality
update.functionality_storage = state;
update.security_storage = state;
break;
case '3': // Experience
update.personalization_storage = state;
break;
case '4': // Measurement = Analytics
update.analytics_storage = state;
break;
case '5': // Marketing = Ads
update.ad_storage = state;
update.ad_user_data = state;
update.ad_personalization = state;
break;
}
}
gtag("consent", "update", update);
}
}