Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.
Si instalo UniConsent con la etiqueta unica (https://cmp.uniconsent.com/v2/cmp.js), dos funciones estan disponibles en cuanto se ejecuta la etiqueta:
unicReady(callback) se dispara una vez, cuando el estado del consentimiento es definitivo.unicUpdate(callback) se dispara al mismo tiempo que unicReady, y de nuevo tras cada cambio de consentimiento.unicReady(function (status) {
if (status.UNIC_P_1) {
loadAnalytics();
}
});
unicUpdate(function (status) {
applyConsent(status);
});
Consulte la referencia completa, incluido el objeto de estado, los eventos DOM y la proteccion de cola asincrona, en API Consent Ready.
La API openunic se utiliza para mostrar la interfaz de usuario (UI) de la plataforma de gestión de consentimiento (CMP) de UniConsent a los usuarios. Esta función debe llamarse cuando necesite presentar la interfaz del CMP al usuario, permitiéndole revisar y modificar sus preferencias de consentimiento.
__unicapi('openunic')
La API agreeAll se utiliza para indicar que el usuario ha aceptado todas las opciones de consentimiento. Esta función debe activarse programáticamente en la interfaz personalizada de su plataforma de gestión de consentimiento (CMP) cuando el usuario haga clic en el botón "Aceptar todo" en la primera capa de la interfaz de usuario (UI). Esta acción indica que el usuario consiente todas las categorías de procesamiento de datos.
__unicapi('agreeAll')
La API rejectAll se utiliza para indicar que el usuario ha rechazado todas las opciones de consentimiento. Esta función debe activarse programáticamente en la interfaz personalizada de su plataforma de gestión de consentimiento (CMP) cuando el usuario haga clic en el botón "Rechazar todo" en la primera capa de la interfaz de usuario (UI). Esta acción indica que el usuario no consiente ninguna categoría de procesamiento de datos.
__unicapi('rejectAll')
La API openOptions se utiliza para abrir la segunda capa de la interfaz de usuario (UI) de la plataforma de gestión de consentimiento (CMP) de UniConsent. Esta segunda capa proporciona a los usuarios opciones de consentimiento y configuraciones más detalladas.
__unicapi('openOptions')
La API openVendorList se utiliza para mostrar la interfaz de usuario (UI) de la lista de proveedores dentro del CMP de UniConsent. Esta UI proporciona a los usuarios información detallada sobre los proveedores de terceros que pueden procesar sus datos.
__unicapi('openVendorList')
La API openCookiesList se utiliza para mostrar la interfaz de usuario (UI) de la lista de cookies dentro del CMP de UniConsent. Esta UI proporciona a los usuarios información detallada sobre las cookies utilizadas en el sitio web.
__unicapi('openCookiesList')
Ejemplo de enlace HTML:
<a class="font-bold underline cursor-pointer" href="javascript:void(0);" onclick="__unicapi('openCookiesList');">Cookies List</a>
Obtenga el consentimiento de sus proveedores personalizados, como ID de proveedor a true o false. Devuelve false cuando los proveedores personalizados no están activados.
__unicapi('getUConsent', 2, (uConsent, success) => {
if (success && uConsent && uConsent['1']) {
// custom vendor 1 is allowed
}
})
Obtenga los datos de consentimiento de sus proveedores personalizados, con el consentimiento de cada proveedor en vendor.consents.
__unicapi('getUCData', 2, (ucData, success) => {
if (success && ucData.vendor) {
console.log(ucData.vendor.consents)
}
})
En los banners de categorías de consentimiento, obtenga las categorías que permite el visitante, como ID de categoría (1 a 4) a true, por ejemplo {"1": true, "2": true}. No sigue las elecciones de IAB TCF: para un valor definido en todas las regiones, use UNIC_EP_1 a UNIC_EP_4 de unicReady y unicUpdate.
__unicapi('getEConsent', 2, (eConsent, success) => {
if (success && eConsent && eConsent['2']) {
// category 2 (Performance / Analytics) is allowed
}
})
Obtenga el estado de consentimiento de sus finalidades personalizadas.
__unicapi('getCustomConsent', 2, (data, success) => {
if (success) {
console.log(data);
// Example: { "custom_analytics": true, "ab_testing": false }
if (data['custom_analytics']) {
// custom analytics consent is granted
}
}
});
Defina por programación el estado de consentimiento de sus finalidades personalizadas. Los valores indicados se combinan con el estado existente y se guardan con las demás elecciones del visitante.
__unicapi('setCustomConsent', 2, { "custom_analytics": true, "ab_testing": false });
Obtenga el ID de consentimiento de auditoría del estado de consentimiento del usuario.
__unicapi('getConsentId', 2, (consentId) => {
console.log(consentId);
});
__tcfapi(
'getTCData',
2,
(tcData, success) => {
if (success) {
// do something with tcData
} else {
// do something else
}
},
[1, 2, 3]
) // vendors Ids
__tcfapi('ping', 2, (pingReturn) => {
// do something with pingReturn
})
const callback = (tcData, success) => {
if (success && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete')) {
// 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)
__tcfapi(
'getVendorList',
2,
(gvl, success) => {
if (success) {
// do something with gvl
} else {
// do something else
}
},
'LATEST'
)
Puede encontrar toda la API en: IAB TCF Document.
Obtiene los datos de consentimiento USP actuales.
__uspapi('getUSPData', 1, (uspData, success) => {
if (success) {
// do something with uspData
} else {
// do something else
}
})
Respuesta uspData:
{
"version": 1, /* number indicating the U.S. Privacy spec version */
"uspString": "1YNN" /* string; not applicable: "1---" */
}
Registra una función de callback que se invocará cuando un usuario haga clic en el botón "Delete My Data" en la interfaz de consentimiento CCPA/USP. Esto permite a los editores gestionar las solicitudes de eliminación de datos del usuario según lo requerido por la California Consumer Privacy Act (CCPA).
__uspapi('registerDeletion', 1, (param) => {
// Handle user data deletion request
// For example: call your backend API to delete user data
console.log('User requested data deletion');
// Example: send a deletion request to your server
fetch('/api/delete-user-data', {
method: 'POST',
body: JSON.stringify({ action: 'delete' })
});
})
Cuando el usuario hace clic en "Delete My Data", se ejecutan las siguientes acciones en secuencia:
1YY), indicando que el usuario no consiente la venta de datos personales.usprivacy.Activa programáticamente el flujo de eliminación de datos. Esto llama al callback previamente registrado mediante registerDeletion y puede usarse para construir una interfaz de eliminación personalizada.
__uspapi('performDeletion', 1, null, param)
tcData.unicLoad es true en cuanto se conoce la elección de IAB TCF del visitante: una elección guardada al cargar la página, o la elección recién hecha, de aceptación o rechazo. Su pila publicitaria lee entonces la elección de la cadena TC. Donde no se aplica IAB TCF, siempre es true.
__tcfapi('addEventListener', 2, function (tcData, success) {
if (success && tcData.unicLoad === true) {
if (!window._initAds) {
window._initAds = true
// your code to start the ads
}
}
})
El evento unic_data de la capa de datos incluye estas variables, que puede leer en Google Tag Manager como variables de la capa de datos. Se envía al cargar la página y de nuevo tras cada elección o cambio de consentimiento. En el código de la página, unicReady y unicUpdate dan los mismos valores de consentimiento: consulte Consent Ready API.
| Variable | Significado |
|---|---|
UNIC_IS_LOAD | Donde se aplica IAB TCF, solo es true cuando el visitante permite el almacenamiento o algún proveedor personalizado: false antes de una elección y tras un rechazo. Siempre true donde no se aplica IAB TCF |
GEO | Región cuyas reglas se aplican, por ejemplo EU, CA, USCA o USTX |
LOC | Ubicación detectada |
GEO_IS_EU, GEO_IS_US, GEO_IS_USCA, GEO_IS_CA, GEO_IS_BR, GEO_IS_CN, GEO_IS_ZA, GEO_IS_APAC, GEO_IS_LATAM, GEO_IS_OTHER | True para la ubicación del visitante |
US_STATE | Código de dos letras del estado de EE. UU. del visitante, vacío fuera de EE. UU. |
GEO_IS_MSPA | True en un estado cubierto por US State Privacy |
TC_STRING | Cadena IAB TCF |
GPP_STRING | Cadena IAB GPP |
uspData | Cadena US Privacy |
MSPA_STRING | Cadena US State Privacy (sección IAB GPP US National) |
GPC | True cuando el navegador envía Global Privacy Control |
UNIC_P_1 … UNIC_P_10, UNIC_SF_1, UNIC_SF_2 | Finalidades y funciones especiales IAB TCF |
UNIC_EP_1 … UNIC_EP_4 | Categorías de consentimiento 1 a 4 |
UNIC_CP_{id} | Sus finalidades personalizadas, por ID de finalidad |
customVendors | Consentimiento de sus proveedores personalizados, por ID de proveedor |
CONSENT_MODE | Valores de Google Consent Mode |
unic_data se envía a la capa de datos antes de que se ejecute unicUpdate, así que en una función de unicUpdate el último evento unic_data tiene los valores actuales de Google Consent Mode (cuando Google Consent Mode está activado):
unicUpdate(function () {
var events = (window.dataLayer || []).filter(function (e) { return e && e.event === 'unic_data'; });
var latest = events[events.length - 1];
if (latest) {
console.log(latest.CONSENT_MODE);
}
});
Para sincronizar cookies con SameSite=None; Partitioned;, lo cual puede ser necesario cuando su página se carga en un iFrame (como en Discord), puede agregar el siguiente código debajo de su etiqueta CMP.
const callback = (tcData, success) => {
if (success && tcData.eventStatus === "useractioncomplete") {
__tcfapi(
'removeEventListener',
2,
(success) => {
if (success) {
const date = new Date();
date.setTime(date.getTime() + (300 * 24 * 60 * 60 * 1000));
const expires = `expires=${date.toUTCString()}`;
document.cookie = `euconsent-v2=${tcData.tcString}; ${expires}; path=/; Secure; SameSite=None; Partitioned`;
}
},
tcData.listenerId
)
}
}
__tcfapi('addEventListener', 2, callback);
Contáctenos: support@uniconsent.com