Usercentrics CMP Web SDK (alpha)
Please visit our official [https://usercentrics.com/docs/web/implementation/sdk/][docs] (alpha version, not to be used in production).
Installation
npm install @usercentrics/cmp-web-sdk
yarn install @usercentrics/cmp-web-sdk
Usage
Initialisation
import CmpWebSdk from '@usercentrics/cmp-web-sdk';
(async () => {
const cmpWebSdk = new CmpWebSdk();
const cmpController = await cmpWebSdk.initBySetting('YOUR_SETTINGS_ID');
})();
Applying Consent
Generic Consent Methods
await cmpWebSdk.acceptAllConsents();
await cmpWebSdk.denyAllConsents();
await cmpWebSdk.updateServicesConsent({
id: 'SERVICE_ID',
consent: true,
});
await cmpWebSdk.updateCategoryConsent([{
id: 'CATEGORY_ID',
consent: true,
}]);
await cmpWebSdk.saveConsents();
Getting Data
Generic Data
await cmpWebSdk.getServices();
await cmpWebSdk.getCategories();
await cmpWebSdk.getLanguages();
Useful methods
await cmpWebSdk.changeLanguage('en');
await cmpWebSdk.areAllConsentsAccepted();
await cmpWebSdk.areAllConsentsDenied();
await cmpWebSdk.getIsConsentRequired();
Skeleton Examples
GDPR
import { GdprWebSdk, GdprCmpController, UiView } from '@usercentrics/cmp-web-sdk';
class CmpView {
private cmpController: GdprCmpController;
private cmpElement: HTMLDivElement;
constructor(cmpController: GdprCmpController) {
this.cmpController = cmpController;
}
public async init() {
const cmpElement = document.createElement('div');
cmpElement.id = 'cmp';
if (typeof cmpElement.attachShadow === 'function') {
cmpElement.attachShadow({ mode: 'open' });
}
this.cmpElement = (cmpElement.shadowRoot as HTMLDivElement) || cmpElement;
this.setView(this.cmpController.ui.initialView || 'none');
return new Promise((resolve) => {
if (document.body) {
document.body.appendChild(cmpElement);
resolve();
}
document.addEventListener('DOMContentLoaded', () => {
document.body.append(cmpElement);
resolve();
});
});
}
public setView(view: UiView) {
const consents = JSON.stringify(this.cmpController.dps.getServicesConsents());
switch (view) {
case 'none':
this.cmpElement.innerHTML = '';
break;
case 'button':
this.cmpElement.innerHTML = 'custom button view';
break;
case 'first':
this.cmpElement.innerHTML = `custom first layer view: ${consents}`;
break;
case 'second':
this.cmpElement.innerHTML = `custom second layer view ${consents}`;
break;
}
}
}
(async () => {
const gdprWebSdk = new GdprWebSdk();
const gdprCmpController = await gdprWebSdk.initBySetting('YOUR_GDPR_SETTINGS_ID');
const cmpView = new CmpView(gdprCmpController);
await cmpView.init();
})();
US (CCPA)
Same as GDPR but use UsWebSdk;
TCF
Same as GDPR but use TcfWebSdk;