openunic
展示 UniConsent CMP 给用户。
__unicapi('openunic')
agreeAll
用户同意了所有同意选项。您可以在用户点击程序化第一层 UI 上的 "同意全部" 按钮时实现您的程序化 CMP 的第一层,并触发 agreeAll
事件。
__unicapi('agreeAll')
openOptions
打开第二层 UI。如果您希望自定义第一层并以程序化方式打开同意管理器,可以使用此选项。
__unicapi('openOptions')
openVendorList
打开供应商列表 UI。如果您希望自定义第一层并以程序化方式打开同意管理器,可以使用此选项。
__unicapi('openVendorList')
getUConsent
获取您自定义供应商的同意信号。
__unicapi(
'getUConsent',
2,
(uConsent, success) => {
if (success) {
// do something with tcData
} else {
// do something else
}
},
[1, 2, 3]
) // vendors Ids
getUCData
获取您自定义供应商的同意信号数据。
__unicapi(
'getUCData',
2,
(ucData, success) => {
if (success) {
// do something with tcData
} else {
// do something else
}
},
[1, 2, 3]
) // vendors Ids
IAB TCF V2
同意管理平台 API
getTCData
__tcfapi(
'getTCData',
2,
(tcData, success) => {
if (success) {
// do something with tcData
} else {
// do something else
}
},
[1, 2, 3]
) // vendors Ids
ping
__tcfapi('ping', 2, (pingReturn) => {
// 处理 pingReturn 的操作
})
addEventListener
const callback = (tcData, success) => {
if (success && tcData.eventStatus === 'tcloaded') {
// do something with tcData.tcString
// remove the ourself to not get called more than once
__tcfapi(
'removeEventListener',
2,
(success) => {
if (success) {
// oh good...
}
},
tcData.listenerId
)
} else {
// do something else
}
}
__tcfapi('addEventListener', 2, callback)
getVendorList
__tcfapi(
'getVendorList',
2,
(gvl, success) => {
if (success) {
// do something with gvl
} else {
// do something else
}
},
'LATEST'
)
您可以在这里找到所有 API:IAB TCF 文档。
美国隐私用户信号机制 "USP API"(CCPA 合规机制)
示例:
__uspapi('getUSPData', 1, (uspData, success) => {
if (success) {
// do something with uspData
} else {
// do something else
}
})
响应 uspData:
{
"version": 1, /* number indicating the U.S. Privacy spec version */
"uspString": "1YN" /* string; not applicable: "1--" */ /* number; 1 applies, 0 doesn't apply, -1 not set */
}
推迟广告加载直到给出或已经给出 TCF 同意
确保在启动之前从用户那里获取同意。
示例:
__tcfapi('addEventListener', 2, function (tcData, success) {
if (success && tcData.unicLoad === true) {
if (!window._initAds) {
window._initAds = true
// your code to kick off the ads
console.log('_initAds started.')
}
}
})
unic_data
;(function waitCMP() {
var readyCMP
if (!readyCMP && window['dataLayer']) {
window['dataLayer'].forEach(function (event) {
if (event['event'] === 'unic_data') {
readyCMP = 1
console.log(event)
// your other codes;
}
})
}
if (!readyCMP) {
setTimeout(waitCMP, 100)
}
})()