JavaScript-API

UniConsent CMP v2 API

  • openunic

Die openunic-API wird verwendet, um die Benutzeroberfläche der UniConsent Consent Management Platform (CMP) anzuzeigen. Diese Funktion sollte aufgerufen werden, wenn Sie dem Benutzer die CMP-Oberfläche präsentieren möchten, damit er seine Einwilligungseinstellungen überprüfen und ändern kann.

__unicapi('openunic')
  • agreeAll

Die agreeAll-API wird verwendet, um anzuzeigen, dass der Benutzer allen Einwilligungsoptionen zugestimmt hat. Diese Funktion sollte in Ihrer benutzerdefinierten CMP-Oberfläche programmatisch ausgelöst werden, sobald der Benutzer auf die Schaltfläche „Allen zustimmen" in Ihrer ersten Benutzeroberflächen-Ebene klickt. Diese Aktion signalisiert, dass der Benutzer allen Kategorien der Datenverarbeitung zustimmt.

__unicapi('agreeAll')
  • rejectAll

Die rejectAll-API wird verwendet, um anzuzeigen, dass der Benutzer alle Einwilligungsoptionen abgelehnt hat. Diese Funktion sollte in Ihrer benutzerdefinierten CMP-Oberfläche programmatisch ausgelöst werden, sobald der Benutzer auf die Schaltfläche „Alle ablehnen" in Ihrer ersten Benutzeroberflächen-Ebene klickt. Diese Aktion signalisiert, dass der Benutzer keiner Kategorie der Datenverarbeitung zustimmt.

__unicapi('rejectAll')
  • openOptions

Die openOptions-API wird verwendet, um die zweite Ebene der Benutzeroberfläche der UniConsent Consent Management Platform (CMP) zu öffnen. Diese zweite Ebene bietet Benutzern detailliertere Einwilligungsoptionen und Einstellungen.

__unicapi('openOptions')
  • openVendorList

Die openVendorList-API wird verwendet, um die Anbieterlisten-Oberfläche innerhalb der UniConsent CMP anzuzeigen. Diese Oberfläche bietet Benutzern detaillierte Informationen über Drittanbieter, die ihre Daten verarbeiten könnten.

__unicapi('openVendorList')
  • getUConsent

Abrufen des Einwilligungssignals Ihrer benutzerdefinierten Anbieter.

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

Abrufen der Einwilligungssignaldaten Ihrer benutzerdefinierten Anbieter.

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

Abrufen des Einwilligungsstatus Ihrer benutzerdefinierten Zwecke.

__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

Programmatisches Setzen des Einwilligungsstatus Ihrer benutzerdefinierten Zwecke. Die angegebenen Werte werden mit dem bestehenden Einwilligungsstatus zusammengeführt und im localStorage gespeichert.

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

Abrufen der Audit-Einwilligungs-ID für den Einwilligungsstatus des Benutzers.

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

// or

UnicI.getConsentId();

Die Audit-Einwilligungs-ID kann auch aus dem lokalen Speicher des Benutzers abgerufen werden: __unic -> __unid.

  • getTCData (veraltet, verwenden Sie 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'
)

Die vollständige API-Dokumentation finden Sie unter: IAB TCF Document.

U.S. Privacy User Signal Mechanism „USP API" (CCPA-Compliance-Mechanismus)

  • getUSPData

Abrufen der aktuellen USP-Einwilligungsdaten.

__uspapi('getUSPData', 1, (uspData, success) => {
  if (success) {
    // do something with uspData
  } else {
    // do something else
  }
})

Antwort 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

Registrieren Sie eine Callback-Funktion, die aufgerufen wird, wenn ein Benutzer auf die Schaltfläche „Meine Daten löschen" in der CCPA/USP-Einwilligungsoberfläche klickt. Dies ermöglicht es Publishern, Datenlöschungsanfragen von Benutzern gemäß dem California Consumer Privacy Act (CCPA) zu bearbeiten.

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

Wenn der Benutzer auf „Meine Daten löschen" klickt, werden die folgenden Aktionen nacheinander ausgeführt:

  1. Der registrierte Lösch-Callback wird aufgerufen, damit der Publisher die tatsächliche Datenlöschung durchführen kann.
  2. Die USP-Einwilligung des Benutzers wird auf Opt-out (1YY) gesetzt, was bedeutet, dass der Benutzer dem Verkauf personenbezogener Daten nicht zustimmt.
  3. Der USP-Einwilligungsstring wird im us_privacy-Cookie gespeichert.
  4. Die Einwilligungsoberfläche wird geschlossen.
  • performDeletion

Programmatisches Auslösen des Datenlöschungsvorgangs. Dies ruft den zuvor über registerDeletion registrierten Callback auf und kann zum Erstellen einer benutzerdefinierten Löschoberfläche verwendet werden.

__uspapi('performDeletion', 1, null, param)

### Verzögerung des Anzeigenladens bis die TCF-Einwilligung erteilt wurde oder bereits vorliegt

Stellen Sie sicher, dass Ihr Anzeigen-Stack die Einwilligung der Benutzer erhält, bevor er startet.

Beispiel:

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

Warten auf und Empfangen der Einwilligungsdaten unic_data mit reinem JavaScript

Beispiel:

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

Sie können die folgende JavaScript-API verwenden, um auf die Google Consent Mode-Daten zuzugreifen:

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

So laden Sie Ihre Webseiten mit UniConsent CMP in einem iFrame

Um Cookies mit SameSite=None; Partitioned; zu synchronisieren, was erforderlich sein kann, wenn Ihre Seite in einem iFrame geladen wird (z. B. in Discord), können Sie den folgenden Code unterhalb Ihres CMP-Tags einfügen.

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

Noch Fragen?

Kontaktieren Sie uns: support@uniconsent.com