Tag integration V2

Live Targeting API (new API)

Tag
Tag Response
Tag

Should you want to use our API for user data and/or contextual with Prebid, please consider using our official Prebid Real Time Data Submodule

Add this tag to you header or directly to the ad placement where you would like to access user segments cookies & consent based user-centric segments, cookieless and/or contextual categories.

THIS TAG WILL NOT DROP OR ACCESS TO ANY COOKIE. PRIVACY CHECKS WILL BE PERFORMED BY SIRDATA, AND THE CALL MAY BE REDIRECTED TO OUR COOKIE-BASED API WHEN RELEVANT.

In UE, the UK, Iceland, Liechtenstein and Norway, unless specifically and by written authorized not to, do call this tag ONLY on websites working with a TCF compliant CMP.

The tag will automatically perform relevant checks, but you can perform these tests on your own and earn precious milliseconds : call the tag when a valid consent CHOICE for Purposes 1 & 3 and Vendor IDs 53 (cookie-based) and/or 916 (cookieless) has been made by the user, with the mandatory gdpr=[gdpr_applies]&gdpr_consent=[tc_string] parameters in the URL.

Use this script to get user-centric segments and contextual categories and use them in the callback function :

function sddanCallback(result){
//Do stuff here e.g. load adserver/ssp with key/value data in result
console.log(result);
console.log(JSON.stringify(result.segments));
console.log(JSON.stringify(result.contextual_categories));
console.log(JSON.stringify(result.shared_taxonomy));
}
var sddanPid = 1; //USE 1 FOR TESTS, GET YOUR OWN ID
var sddanKeyId = 1; //USE 1 FOR TESTS, GET YOUR OWN ID
var sddanTag = document.createElement('script');
var sddanUrl;
try { sddanUrl = '&url='+encodeURIComponent(window.top.location.href); } catch (e) {}
sddanTag.src = 'https://kvt.cookieless-data.com/api/v1/public/p/'+sddanPid+'/d/'+sddanKeyId+'/s?callback=sddanCallback'+sddanUrl;
sddanTag.async = true;
sddanTag.setAttribute('referrerpolicy','unsafe-url');
document.getElementsByTagName('body')[0].appendChild(sddanTag);

gdpr and gdpr_consent are collected automatically, but you can earn precious milliseconds by sending them directly on the relevant endpoint like that :

<script>
var sddanPid = 1; //USE 1 FOR TESTS, GET YOUR OWN ID
var sddanKeyId = 1; //USE 1 FOR TESTS, GET YOUR OWN ID
var sddanWaitUserChoice = true; //True if you want to wait user choice or false if not
var sddanSegments = new Object;
function sddanCallback(result){
//Do stuff here e.g. load adserver/ssp with key/value data in result
console.log(result);
console.log(JSON.stringify(result.segments));
console.log(JSON.stringify(result.contextual_categories));
console.log(JSON.stringify(result.shared_taxonomy));
}
function getSddanTargeting(tcData,isCookiebased) {
var sddanTag = document.createElement('script');
var sddanHost = (isCookiebased===true?'sddan.com':'cookieless-data.com');
var sddanTcString = (tcData?'&gdpr='+tcData.gdprApplies+'&gdpr_consent='+(tcData.tcString?tcData.tcString:''):'');
var sddanUrl;
try { sddanUrl = '&url='+encodeURIComponent(window.top.location.href); } catch (e) {}
sddanTag.src = 'https://kvt.'+sddanHost+'/api/v1/public/p/'+sddanPid+'/d/'+sddanKeyId+'/s?callback=sddanCallback'+sddanUrl+sddanTcString;
sddanTag.async = true;
sddanTag.setAttribute('referrerpolicy','unsafe-url');
document.getElementsByTagName('body')[0].appendChild(sddanTag);
}
(function () {
if (typeof window.__tcfapi === 'function') {
window.__tcfapi('addEventListener', 2, function (tcData, success) {
if (!success || (!tcData.eventStatus && tcData.gdprApplies)) {
return
}
if (!tcData.gdprApplies || (tcData.tcString && tcData.vendor.consents[53] && tcData.purpose.consents[1] && tcData.purpose.consents[4])) {
getSddanTargeting(tcData,true);
__tcfapi('removeEventListener', 2, function () {}, tcData.listenerId);
}
else if (tcData.eventStatus === "tcloaded" || tcData.eventStatus === "useractioncomplete" || sddanWaitUserChoice !== true) {
getSddanTargeting(tcData,false);
__tcfapi('removeEventListener', 2, function () {}, tcData.listenerId);
}
});
}
else {
getSddanTargeting(null,null);
}
})();
</script>

Parameter

Value

[PARTNER_ID]

numerical value - is given by your contact at Sirdata during the API Access process (e.g. sddanPid in the example above) (mandatory)

[KEY_ID]

numerical value - is given by your contact at Sirdata during the API Access process (e.g. sddanKeyId in the example above) (mandatory)

gdpr

TCF V2 gdpr_applies parameter (mandatory for EEA/UK users)

gdpr_consent

TCF V2 TC String (mandatory for EEA/UK users)

callback

callback function name can be change (mandatory)

Tag Response

Tag response will call your function name set in the resquest (e.g. ...?callback=sddanCallback&...)

sddanCallback({
"segments": [111111, 222222],
"contextual_categories": {
"333333": 100
},
"shared_taxonomy": {
"27446": {
"segments": [444444, 555555],
"contextual_categories": {
"666666": 100
}
}
}
})

Name

Value

segments

User-based segments IDs. Please refer to your dedicated taxonomy with private segment IDs

contextual_categories

Context-based category IDs with relevancy score (0-100 scale from lower to higher quality).

Please refer to your dedicated taxonomy with private segment IDs

shared_taxonomy

User-centric segments and Context-centric categories dedicated to a given partner when you request us to share data with him on your website.

Useless for you, the partner has his own private taxonomy.

PLEASE REMBER TO HAVE YOUR DOMAIN(S) WHITELISTED WHEN REQUESTED PRODUCTION PARTNER ID AND KEY ID, OTHERWIZE THE TAG WILL GET NOW ANSWER