JavaScript API

API de UniConsent CMP v2

  • openunic

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')
  • agreeAll

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')
  • rejectAll

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')
  • openOptions

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')
  • openVendorList

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')
  • getUConsent

Obtiene la señal de consentimiento de sus proveedores personalizados.

__unicapi(
  'getUConsent',
  2,
  (uConsent, success) => {
    if (success) {
      // do something with tcData
    } else {
      // do something else
    }
  },
  [1, 2, 3]
) // vendors Ids
  • getUCData

Obtiene los datos de señal de consentimiento de sus proveedores personalizados.

__unicapi(
  'getUCData',
  2,
  (ucData, success) => {
    if (success) {
      // do something with tcData
    } else {
      // do something else
    }
  },
  [1, 2, 3]
) // vendors Ids
  • getCustomConsent

Obtiene el estado de consentimiento de sus Custom Purposes.

__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
    }
  }
});
  • setCustomConsent

Establece programáticamente el estado de consentimiento de sus Custom Purposes. Los valores proporcionados se fusionan con el estado de consentimiento existente y se persisten en localStorage.

__unicapi('setCustomConsent', 2, { "custom_analytics": true, "ab_testing": false });
  • getConsentId

Obtiene el ID de consentimiento de auditoría para el estado de consentimiento del usuario.

__unicapi('getConsentId', 2, (consentId) => {
  console.log(consentId);
});

// or

UnicI.getConsentId();

El ID de consentimiento de auditoría también se puede obtener del almacenamiento local del usuario __unic -> __unid.

API de la plataforma de gestión de consentimiento IAB TCF V2

  • getTCData (obsoleto, use addEventListener)
__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) => {
  // do something with 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'
)

Puede encontrar toda la API en: IAB TCF Document.

Mecanismo de señal de privacidad del usuario de EE. UU. "USP API" (Mecanismo de cumplimiento CCPA)

  • getUSPData

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": "1YN" /* string; not applicable: "1--" */ /* number; 1 applies, 0 doesn't apply, -1 not set */
}
  • registerDeletion

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:

  1. Se invoca el callback de eliminación registrado, permitiendo al editor realizar la eliminación real de los datos.
  2. El consentimiento USP del usuario se establece como opt-out (1YY), indicando que el usuario no consiente la venta de datos personales.
  3. La cadena de consentimiento USP se guarda en la cookie us_privacy.
  4. La interfaz de consentimiento se cierra.
  • performDeletion

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)

### Retrasar la carga de anuncios hasta que se otorgue el consentimiento TCF

Asegúrese de que su pila de anuncios obtenga el consentimiento de los usuarios antes de iniciarse.

Ejemplo:

```javascript
__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.')
    }
  }
})

Escuchar y esperar los datos de consentimiento unic_data con JavaScript puro

Ejemplo:

;(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)
  }
})()

Puede utilizar la siguiente API de Javascript para acceder a los datos de Google Consent Mode:

(function waitCMP() {
  var readyCMP
  if (!readyCMP && window['dataLayer']) {
    window['dataLayer'].forEach(function (event) {
      if (event['event'] === 'unic_data') {
        readyCMP = 1
        console.log(event['CONSENT_MODE'])
      }
    })
  }
  if (!readyCMP) {
    setTimeout(waitCMP, 100)
  }
})()

Cómo cargar sus páginas web con UniConsent CMP en un iFrame

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);

¿Aún tiene preguntas?

Contáctenos: support@uniconsent.com