Gravito SDK V1
Using SDK V1
Version 1.0.10 added support for custom functions to call before initializing CMP and call back when backend data is available. This is useful for any type of integration with backend API that can store the consents (and perhaps other profile information). Example deployment, defining custom backend sync interval (60 secs), default is 1800 secs (30 mins):
window.gravitoCMPConfig = gravitoCMPConfig;
gravitoCMPConfig.core.syncAfter=60;
function getCmpData() {
//data fetching logic here
var date = new Date("06/30/2022")
var domain = window.location.hostname
var value = null
var xhr = new XMLHttpRequest();
xhr.open("POST", 'https://gto.gravito.net/api/firstparty', true);
xhr.withCredentials = true;
xhr.onreadystatechange = function (response) {
if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
console.log("1P response : " + response.target.response);
var result = JSON.parse(response.target.response)
if (result.events) {
var gdata = result.events.gravitoData ? JSON.parse(result.events.gravitoData) : null
value = gdata ? gdata.TCString : null
if (value) {
document.cookie =
"TcString" +
"=" +
value +
"; expires=" +
date.toGMTString() +
"; path=/; domain=" +
domain;
}
if (gdata) {
document.cookie =
"gravitoData" +
"=" +
JSON.stringify(gdata) +
"; expires=" +
date.toGMTString() +
"; path=/; domain=" +
domain;
}
}
var obj = {
senderId: "gravitoCMPSuperWrapper",
status: "ready",
};
window.postMessage(obj, "*");
}
}
xhr.send();
}
function postCmpData(data) {
console.log("data", data)
var gravitoData = JSON.stringify(data)
var xhr = new XMLHttpRequest();
xhr.open("POST", 'https://gto.gravito.net/api/firstparty?gravitoData=' + gravitoData, true);
xhr.withCredentials = true;
xhr.onreadystatechange = function (response) {
if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
console.log("1P response : " + response.target.response);
}
}
xhr.send();
}
var gravitoSdkTag = document.createElement("script");
gravitoSdkTag.src = "https://cdn.gravito.net/sdk/gravitoSDK_latest.js";
gravitoSdkTag.onload = function () {
window.gravito.ready(function () {
gravito.initTCFCMPWithCustomBackend(getCmpData, function () {
gravito.initTCFCMP(
"https://cdn.gravito.net/tcf-v2",
"https://cdn.gravito.net/cmpbuilds",
"bundle_latest_2"
);
}, postCmpData)
});
};
document.body.appendChild(gravitoSdkTag);