Entwicklerleitfaden für die FLEDGE API

An wen richtet sich dieser Artikel?

Dieser Beitrag ist eine technische Referenz zur aktuellen Version der Protected Audience API-Testversion.

  • Die Protected Audience API ist eine weniger technische Übersicht über den Vorschlag und hat auch ein Glossar.

  • Die Protected Audience-Demo bietet eine Schritt-für-Schritt-Anleitung für eine grundlegende FLEDGE-Bereitstellung.

  • Im Protected Audience-Demovideo wird die Funktionsweise des Democodes erläutert. Außerdem wird gezeigt, wie Sie die Chrome-Entwicklertools für die Protected Audience-Fehlerbehebung verwenden.

Was ist Protected Audience?

Die Protected Audience API ist eine Privacy Sandbox-Lösung für Remarketing und benutzerdefinierte Zielgruppen. Sie wurde so konzipiert, dass sie von Drittanbietern nicht verwendet werden kann, um das Browserverhalten von Nutzern websiteübergreifend zu verfolgen. Die API ermöglicht On-Device-Auktionen im Browser, um relevante Anzeigen für Websites auszuwählen, die der Nutzer zuvor besucht hat.

Protected Audience ist der erste Test der TURTLEDOVE-Angebote in Chromium.

Das folgende Diagramm bietet einen Überblick über den FLEDGE-Lebenszyklus:

Abbildung mit einem Überblick über die einzelnen Phasen des FLEDGE-Lebenszyklus
FLEDGE-Lebenszyklus.

Wie kann ich Protected Audience ausprobieren?

Protected Audience – Demo

Eine Schritt-für-Schritt-Anleitung zum Bereitstellen von Protected Audience auf Websites von Werbetreibenden und Publishern finden Sie unter protection-audience-demo.web.app.

Im Demovideo wird die Funktionsweise des Democodes und die Verwendung der Chrome-Entwicklertools für die Protected Audience-Fehlerbehebung erläutert.

An einem Protected Audience-Ursprungstest teilnehmen

Ein Ursprungstest der Privacy Sandbox für Relevanz und Messung wurde in Chrome Beta 101.0.4951.26 und höher für die Protected Audience API, Topics und Attribution Reporting APIs auf Computern verfügbar gemacht.

Wenn Sie teilnehmen möchten, registrieren Sie sich für ein Token für einen Ursprungstest.

Nachdem Sie sich für den Test registriert haben, können Sie die Protected Audience JavaScript API auf Seiten testen, die ein gültiges Testtoken enthalten. So können Sie den Browser beispielsweise bitten, einer oder mehreren Interessengruppen beizutreten, und dann eine Anzeigenauktion durchführen, um eine Anzeige auszuwählen und einzublenden.

Die Protected Audience-Demo bietet ein einfaches Beispiel für eine End-to-End-Bereitstellung von Protected Audience.

Geben Sie ein Testtoken für jede Seite an, auf der Sie Protected Audience API-Code ausführen möchten:

  • Als Meta-Tag im <head>-Element:

    <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">

  • Als HTTP-Header:

    Origin-Trial: TOKEN_GOES_HERE

  • Wenn Sie ein Token programmatisch bereitstellen:

    const otMeta = document.createElement('meta');
    otMeta.httpEquiv = 'origin-trial';
    otMeta.content = 'TOKEN_GOES_HERE';
    document.head.append(otMeta);
    

Ein iFrame, in dem Protected Audience-Code ausgeführt wird, z. B. ein navigator.joinAdInterestGroup()-Aufruf durch einen Inhaber einer Interessengruppe, muss ein Token bereitstellen, das mit seinem Ursprung übereinstimmt.

Details zum ersten Protected Audience Origin-Test enthalten weitere Details zu den Zielen des ersten Tests und eine Erläuterung, welche Funktionen unterstützt werden.

Mit chrome://flags oder Funktions-Flags testen

Sie können Protected Audience für einen einzelnen Nutzer in Chrome Beta 101.0.4951.26 und höher auf Computern testen:

  • Durch Aktivieren von chrome://flags/#privacy-sandbox-ads-apis.
  • Durch Festlegen von Flags über die Befehlszeile.

Anzeigen in iFrames oder Fence Frames rendern

Anzeigen können in einem <iframe>- oder <fencedframe> gerendert werden, je nachdem, welche Flags festgelegt sind.

So verwenden Sie <fencedframe> zum Rendern von Anzeigen:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames

So verwenden Sie <iframe> zum Rendern von Anzeigen:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames

Fügen Sie das Flag BiddingAndScoringDebugReportingAPI ein, um die Methoden zum Debuggen von Verlusten/Gewinnen vorübergehend zu aktivieren.

Unter Chromium mit Flags ausführen wird erläutert, wie Flags festgelegt werden, wenn Chrome und andere Chromium-basierte Browser über die Befehlszeile ausgeführt werden. Eine vollständige Liste der Protected Audience-Meldungen finden Sie in der Chromium Code Search.

Welche Funktionen werden in der neuesten Version von Chrome unterstützt?

Protected Audience wird in Chromium hinter Funktions-Flags zur Verfügung gestellt. Dies ist ein erster Test zum Testen der folgenden Funktionen des Protected Audience-Vorschlags:

  • Interessengruppen: werden vom Browser zusammen mit zugehörigen Metadaten gespeichert, um Anzeigengebote und Rendering zu konfigurieren.
  • On-Device-Gebote von Käufern (DSP oder Werbetreibender): basieren auf gespeicherten Interessengruppen und Signalen vom Verkäufer.
  • Anzeigenauswahl auf dem Gerät durch den Verkäufer (SSP oder Publisher): basierend auf Auktionsgeboten und Metadaten der Käufer
  • Anzeigen-Rendering in einer vorübergehend gelockerten Version von Fenced Frames mit Netzwerkzugriff und Protokollierung für das Anzeigen-Rendering

In der API-Erklärung finden Sie weitere Informationen zur Funktionsunterstützung und zu Einschränkungen.

Berechtigungen für Interessengruppen

Die aktuelle Implementierung von Protected Audience ermöglicht den Aufruf von joinAdInterestGroup() von überall auf einer Seite, auch von domainübergreifenden iFrames. Wenn Websiteinhaber in Zukunft ihre Berechtigungsrichtlinien für domainübergreifende iFrames anpassen konnten, sollen Aufrufe von domainübergreifenden iFrames nicht mehr zulässig sein (siehe Erläuterung).

Schlüssel/Wert-Dienst

Im Rahmen einer Protected Audience-Anzeigenauktion kann der Browser auf einen Schlüssel/Wert-Dienst zugreifen, der einfache Schlüssel/Wert-Paare zurückgibt, um einem Anzeigenkäufer Informationen wie das verbleibende Kampagnenbudget bereitzustellen. Das Protected Audience-Angebot schreibt vor, dass dieser Server „kein Logging auf Ereignisebene durchführt und keine weiteren Nebenwirkungen aufgrund dieser Anfragen hat“.

Der Dienstcode für den „Protected Audience Key/Value“-Dienst ist jetzt in einem GitHub-Repository für die Privacy Sandbox verfügbar. Dieser Dienst kann von Chrome- und Android-Entwicklern verwendet werden. Den aktuellen Status finden Sie im Blogpost zu Ankündigungen. Weitere Informationen zum Protected Audience-Dienst für Schlüssel/Wert-Paare finden Sie in der API-Erklärung und in der Erklärung zum Vertrauensmodell.

Für erste Tests wird das Modell Bring Your Own Server (Eigene Server verwenden) verwendet. Langfristig müssen AdTech-Unternehmen die Open-Source-Dienste für Schlüssel/Wert-Paare der Protected Audience API verwenden, die in vertrauenswürdigen Ausführungsumgebungen ausgeführt werden, um Echtzeitdaten abzurufen.

Um sicherzustellen, dass das System genügend Zeit für Tests hat, gehen wir davon aus, dass wir die Open-Source-Schlüssel/Wert-Dienste oder TEEs erst später nach der Einstellung von Drittanbieter-Cookies benötigen. Wir informieren Entwickler rechtzeitig, damit sie mit den Tests und der Einführung beginnen können, bevor diese Umstellung in Kraft tritt.

Erkennung von Featureunterstützung

Bevor Sie die API verwenden, prüfen Sie, ob sie vom Browser unterstützt wird und im Dokument verfügbar ist:

'joinAdInterestGroup' in navigator &&
  document.featurePolicy.allowsFeature('join-ad-interest-group') &&
  document.featurePolicy.allowsFeature('run-ad-auction') ?
  console.log('navigator.joinAdInterestGroup() is supported on this page') :
  console.log('navigator.joinAdInterestGroup() is not supported on this page');

Wie kann ich die Protected Audience API deaktivieren?

Sie können den Zugriff auf die Protected Audience API entweder als Websiteinhaber oder als einzelner Nutzer blockieren.

Wie können Websites den Zugriff steuern?

Letztendlich müssen Websites eine Berechtigungsrichtlinie festlegen, damit die Protected Audience-Funktion verfügbar ist. Dadurch wird verhindert, dass beliebige Dritte die API ohne das Wissen der Website verwenden können. Um Tests während des ersten Ursprungstests zu erleichtern, ist diese Anforderung standardmäßig nicht erforderlich. Websites, die die Protected Audience-Funktion während der Testphase explizit deaktivieren möchten, können den Zugriff anhand der entsprechenden Berechtigungsrichtlinie blockieren.

Es gibt zwei Richtlinien für Protected Audience-Berechtigungen, die unabhängig voneinander festgelegt werden können:

  • join-ad-interest-group aktiviert bzw. deaktiviert die Funktion zum Hinzufügen eines Browsers zu Interessengruppen
  • run-ad-auction aktiviert/deaktiviert die Funktion zum Ausführen einer On-Device-Auktion

Der Zugriff auf Protected Audience APIs kann in eigenen Kontexten vollständig deaktiviert werden. Geben Sie dazu die folgende Berechtigungsrichtlinie in einem HTTP-Antwortheader an:

Permissions-Policy: join-ad-interest-group=(), run-ad-auction=()

Sie können die Nutzung der APIs in einem iFrame deaktivieren, indem Sie einem iFrame-Element das folgende allow-Attribut hinzufügen:

<iframe src="https://example.com" allow="join-ad-interest-group 'none'; run-ad-auction 'none'"></iframe>

Weitere Informationen finden Sie im Abschnitt Vorgeschlagene Richtlinie zu Berechtigungen für den ersten Protected Audience Origin-Test.

Nutzerwiderruf

Mit einer der folgenden Methoden können Nutzer den Zugriff auf die Protected Audience API und andere Funktionen der Privacy Sandbox blockieren:

  • Deaktivieren Sie die Privacy Sandbox-Tests in den Chrome-Einstellungen: Einstellungen > Sicherheit und Datenschutz > Privacy Sandbox. Du kannst auch unter chrome://settings/adPrivacy darauf zugreifen.
  • Deaktivieren Sie Cookies von Drittanbietern in den Chrome-Einstellungen: Einstellungen > Sicherheit und Datenschutz.
  • Setzen Sie Cookies und andere Websitedaten in chrome://settings/cookies entweder auf „Drittanbieter-Cookies blockieren“ oder „Alle Cookies blockieren“.
  • Verwenden Sie den Inkognitomodus.

In der Erläuterung der Protected Audience API finden Sie weitere Details zu API-Designelementen. Außerdem wird beschrieben, wie mit der API Datenschutzziele erreicht werden.

Fehler in Protected Audience-Worklets beheben

Ab Chrome Canary 98.0.4718.0 ist es möglich, Fehler in Protected Audience-Worklets in den Chrome-Entwicklertools zu beheben.

Der erste Schritt besteht darin, Haltepunkte über eine neue Kategorie im Bereich Ereignis-Listener-Haltepunkte im Bereich Quellen festzulegen.

Screenshot der Entwicklertools in Chrome Canary, im Bereich „Quellen“ ist der Bereich „Event Listener Breakpoints“ (Ereignis-Listener-Haltepunkte) markiert.
   Der Beginn der Gebotsphase des Bieters ist unter „Anzeigenauktions-Worklet“ ausgewählt.

Wenn ein Haltepunkt ausgelöst wird, wird die Ausführung vor der ersten Anweisung auf oberster Ebene des Worklet-Skripts pausiert. Sie können regelmäßige Haltepunkte oder Schrittbefehle verwenden, um zur Gebots-/Bewertungs-/Berichtsfunktion selbst zu gelangen.

Live-Worklet-Skripts werden ebenfalls im Thread-Bereich angezeigt.

Screenshot der Entwicklertools in Chrome Canary, im Bereich „Quellen“ ist der Bereich „Threads“ markiert, in dem das aktuell pausierte Workload-Script zu sehen ist.

Da einige Worklets parallel ausgeführt werden können, können mehrere Threads dort am Ende im Status „pausiert“ werden. Sie können die Threadliste verwenden, um zwischen Threads zu wechseln und sie bei Bedarf fortzusetzen oder genauer zu untersuchen.

Protected Audience-Ereignisse beobachten

Im Steuerfeld „Anwendung“ in den Chrome-Entwicklertools können Sie die Protected Audience-Interessengruppe und Auktionsereignisse beobachten.

Wenn Sie die Protected Audience-Demo-Shopping-Website in einem Browser aufrufen, während Protected Audience aktiviert ist, werden in den Entwicklertools Informationen zum Ereignis join angezeigt.

Der Bereich „DevTools-Anwendung“ in Chrome Canary mit Informationen zu einem Beitritt zu einer Protected Audience-Interessengruppe.

Wenn Sie jetzt die Protected Audience-Demo-Publisher-Website in einem Browser aufrufen, in dem Protected Audience aktiviert ist, werden in den Entwicklertools Informationen zu den Ereignissen bid und win angezeigt.

Der Bereich „DevTools-Anwendung“ in Chrome Canary mit Informationen zum Protected Audience-Auktionsgebot und Gewinnereignissen.

Wie funktioniert die Protected Audience API?

In diesem Beispiel surft ein Nutzer auf der Website eines Fahrradherstellers, besucht später eine Nachrichtenwebsite und sieht dort eine Anzeige für ein neues Fahrrad des Fahrradherstellers.

1. Ein Nutzer besucht die Website eines Werbetreibenden.

Abbildung einer Person, die in einem Browser auf ihrem Laptop die Website eines Herstellers von individuellen Fahrrädern besucht.

Angenommen, ein Nutzer besucht die Website eines Herstellers von Fahrrädern (in diesem Beispiel Werbetreibender) und verbringt einige Zeit auf der Produktseite für ein handgefertigtes Fahrrad aus Stahl. Dadurch erhält der Fahrradhersteller eine Remarketing-Möglichkeit.

2. Der Browser des Nutzers wird aufgefordert, eine Interessengruppe hinzuzufügen.

Abbildung einer Person, die sich eine Website in einem Browser auf ihrem Laptop ansieht. Im Browser wird der JavaScript-Code „joinAdInterestGroup()“ ausgeführt.

Erläuterung:Interessengruppen in Browsern aufzeichnen

Die Demand-Side-Plattform (DSP) des Werbetreibenden (oder der Werbetreibende selbst) ruft navigator.joinAdInterestGroup() auf, um den Browser aufzufordern, der Liste der Gruppen, zu denen der Browser gehört, eine Interessengruppe hinzuzufügen. In diesem Beispiel heißt die Gruppe custom-bikes und der Inhaber ist dsp.example. Der Inhaber der Interessengruppe (in diesem Fall die DSP) ist ein Käufer in der Anzeigenauktion, wie in Schritt 4 beschrieben. Die Mitgliedschaft in einer Interessengruppe wird vom Browser auf dem Gerät des Nutzers gespeichert und weder an den Browseranbieter noch an Dritte weitergegeben.

joinAdInterestGroup() benötigt eine Berechtigung von:

  • Die besuchte Website
  • Inhaber der Interessengruppe

Beispiel: Ohne die Berechtigung von dsp.example darf es nicht möglich sein, dass malicious.example joinAdInterestGroup() mit dsp.example als Inhaber aufruft.

Berechtigung von der besuchten Website

Gleicher Ursprung: Standardmäßig wird die Berechtigung für joinAdInterestGroup()-Aufrufe implizit gewährt, die vom selben Ursprung wie die besuchte Website stammen, d.h. vom selben Ursprung wie der Frame auf oberster Ebene der aktuellen Seite. Websites können den Header der Richtlinie für Berechtigungen join-ad-interest-group der Protected Audience API verwenden, um joinAdInterestGroup()-Aufrufe zu deaktivieren.

Ursprungsübergreifend: Der Aufruf von joinAdInterestGroup() von Ursprüngen, die von der aktuellen Seite abweichen, kann nur erfolgreich sein, wenn für die besuchte Website eine Berechtigungsrichtlinie festgelegt wurde, die Aufrufe von joinAdInterestGroup() über ursprungsübergreifende iFrames zulässt.

Berechtigung vom Inhaber der Interessengruppe

Die Berechtigung als Inhaber einer Interessengruppe wird implizit gewährt, indem joinAdInterestGroup() über einen iFrame aufgerufen wird, der denselben Ursprung hat wie der Inhaber der Interessengruppe. Ein dsp.example-iFrame kann beispielsweise joinAdInterestGroup() für Interessengruppen aufrufen, die zu dsp.example gehören.

Der Vorschlag sieht vor, dass joinAdInterestGroup() auf einer Seite oder einem iFrame in der Domain des Inhabers ausgeführt oder an andere Domains delegiert werden kann, die mithilfe einer Liste unter einer .well-known-URL bereitgestellt werden.

navigator.joinAdInterestGroup() verwenden

Hier ist ein Beispiel für die Verwendung der API:

const interestGroup = {
  owner: 'https://dsp.example',
  name: 'custom-bikes',
  biddingLogicUrl: ...,
  biddingWasmHelperUrl: ...,
  dailyUpdateUrl: ...,
  trustedBiddingSignalsUrl: ...,
  trustedBiddingSignalsKeys: ['key1', 'key2'],
  userBiddingSignals: {...},
  ads: [bikeAd1, bikeAd2, bikeAd3],
  adComponents: [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2],
};

navigator.joinAdInterestGroup(interestGroup, 7 * kSecsPerDay);

Das an die Funktion übergebene Objekt interestGroup darf nicht größer als 50 KiB sein. Andernfalls schlägt der Aufruf fehl. Der zweite Parameter gibt die Dauer der Interessengruppe an, begrenzt auf 30 Tage. Aufeinanderfolgende Aufrufe überschreiben zuvor gespeicherte Werte.

Eigenschaften von Interessengruppen

Attribut Erforderlich Beispiel Rolle
owner Erforderlich 'https://dsp.example' Ursprung des Inhabers der Interessengruppe
name Erforderlich 'custom-bikes' Name der Interessengruppe.
biddingLogicUrl** Optional* 'https://dsp.example/bid/custom-bikes/bid.js' URL für Gebote für JavaScript, das im Worklet ausgeführt wird.
biddingWasmHelperUrl** Optional* 'https://dsp.example/bid/custom-bikes/bid.wasm' URL für WebAssembly-Code, der von biddingLogicUrl generiert wurde.
dailyUpdateUrl** Optional 'https://dsp.example/bid/custom-bikes/update' URL, die JSON zum Aktualisieren von Interessengruppenattributen zurückgibt. Weitere Informationen finden Sie unter Interessengruppe aktualisieren.
trustedBiddingSignalsUrl** Optional 'https://dsp.example/trusted/bidding-signals' Basis-URL für Schlüssel/Wert-Anfragen an den vertrauenswürdigen Server des Bieters.
trustedBiddingSignalsKeys Optional ['key1', 'key2' ...] Schlüssel für Anfragen an den vertrauenswürdigen Server für Schlüssel/Wert-Paare.
userBiddingSignals Optional {...} Zusätzliche Metadaten, die der Inhaber bei der Gebotsabgabe verwenden kann.
ads Optional* [bikeAd1, bikeAd2, bikeAd3] Das sind Anzeigen, die für diese Interessengruppe gerendert werden können.
adComponents Optional [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2] Komponenten für mehrteilige Anzeigen

* Alle Attribute mit Ausnahme von owner und name sind optional. Die Properties biddingLogicUrl und ads sind optional, aber für die Teilnahme an einer Auktion erforderlich. Es kann Anwendungsfälle für das Erstellen einer Interessengruppe ohne diese Properties geben. Beispielsweise kann ein Inhaber einer Interessengruppe einen Browser zu einer Interessengruppe für eine Kampagne hinzufügen, die noch nicht läuft, oder für eine andere zukünftige Verwendung oder das Werbebudget ist vorübergehend aufgebraucht.

** Die URLs biddingLogicUrl, biddingWasmHelperUrl, dailyUpdateUrl und trustedBiddingSignalsUrl müssen denselben Ursprung wie der Inhaber haben. Für die URLs ads und adComponents gibt es keine solche Beschränkung.

Attribute für Interessengruppen aktualisieren

dailyUpdateUrl gibt einen Webserver an, der JSON-Daten zurückgibt, mit denen Interessengruppeneigenschaften definiert werden. Dies entspricht dem Interessengruppenobjekt, das an navigator.joinAdInterestGroup() übergeben wurde. Dadurch kann der Inhaber der Gruppe die Attribute der Interessengruppe regelmäßig aktualisieren. In der aktuellen Implementierung können die folgenden Attribute geändert werden:

  • biddingLogicUrl
  • biddingWasmHelperUrl
  • trustedBiddingSignalsUrl
  • trustedBiddingSignalsKeys
  • ads
  • priority

Felder, die nicht in der JSON-Datei angegeben sind, werden nicht überschrieben. Es werden nur Felder aktualisiert, die in der JSON-Datei angegeben sind. Wenn navigator.joinAdInterestGroup() aufgerufen wird, werden alle vorhandenen Interessengruppen überschrieben.

Updates erfolgen auf Best-Effort-Basis und können unter den folgenden Bedingungen fehlschlagen:

  • Zeitlimit für Netzwerkanfragen (derzeit 30 Sekunden).
  • Anderer Netzwerkfehler.
  • JSON-Parsing-Fehler.

Aktualisierungen können auch abgebrochen werden, wenn zu viel Zeit für die Aktualisierung aufgewendet wurde. Dies hat jedoch keine Ratenbegrenzung für abgebrochene (verbleibende) Aktualisierungen. Die Aktualisierungsrate ist auf maximal ein Update pro Tag begrenzt. Aktualisierungen, die aufgrund von Netzwerkfehlern fehlschlagen, werden nach einer Stunde noch einmal versucht. Updates, die aufgrund einer unterbrochenen Internetverbindung nicht ausgeführt werden, werden sofort nach erneuter Verbindung wiederholt.

Manuelle Updates

Aktualisierungen von Interessengruppen, die zum Ursprung des aktuellen Frames gehören, können manuell über navigator.updateAdInterestGroups() ausgelöst werden. Durch die Ratenbegrenzung wird verhindert, dass Aktualisierungen zu häufig durchgeführt werden: Wiederholte Aufrufe von navigator.updateAdInterestGroups() bewirken erst nach Ablauf des Zeitraums für die Ratenbegrenzung (derzeit ein Tag). Das Ratenlimit wird zurückgesetzt, wenn navigator.joinAdInterestGroup() noch einmal für dieselbe Interessengruppe owner und name aufgerufen wird.

Automatische Updates

Alle für eine Auktion geladenen Interessengruppen werden nach Abschluss einer Auktion automatisch aktualisiert. Dabei gelten die gleichen Ratenbegrenzungen wie bei manuellen Aktualisierungen. Für jeden Inhaber mit mindestens einer Interessengruppe, die an einer Auktion teilnimmt, ist es so, als würde navigator.updateAdInterestGroups() von einem iFrame aufgerufen, dessen Ursprung mit diesem Inhaber übereinstimmt.

Anzeigen für eine Interessengruppe angeben

Die Objekte ads und adComponents enthalten eine URL für ein Anzeigen-Creative und optional beliebige Metadaten, die zum Zeitpunkt der Gebotsabgabe verwendet werden können. Beispiel:

{
  renderUrl: 'https://cdn.example/.../bikeAd1.html',
  metadata: bikeAd1metadata // optional
}

Wie geben Käufer Gebote ab?

Das von einem Inhaber einer Interessengruppe bereitgestellte Skript unter biddingLogicUrl muss eine generateBid()-Funktion enthalten. Wenn ein Verkäufer einer Werbefläche navigator.runAdAuction() aufruft, wird die generatedBid()-Funktion einmal für jede Interessengruppe aufgerufen, zu der der Browser gehört, wenn der Inhaber der Interessengruppe zum Gebot eingeladen wird. Mit anderen Worten: generateBid() wird für jede mögliche Anzeige einmal aufgerufen. Der Verkäufer stellt die Property decisionLogicUrl für den Auktionskonfigurationsparameter bereit, der an navigator.runAdAuction() übergeben wird. Der Code unter dieser URL muss die Funktion scoreAd() enthalten, die für jeden Bieter in der Auktion ausgeführt wird, um jedes der von generateBid() zurückgegebenen Gebote zu bewerten.

Das Skript unter biddingLogicUrl, das von einem Käufer einer Werbefläche bereitgestellt wird, muss die Funktion generateBid() enthalten. Diese Funktion wird für jede mögliche Anzeige einmal aufgerufen. runAdAuction() prüft jede Anzeige zusammen mit dem zugehörigen Gebot und den zugehörigen Metadaten einzeln und weist der Anzeige dann eine numerische Erwünschtheitswert zu.

generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  ...
  return {
    ad: adObject,
    bid: bidValue,
    render: renderUrl,
    adComponents: [adComponentRenderUrl1, ...]
   };
}

generateBid() verwendet die folgenden Argumente:

  • interestGroup
    Das Objekt, das vom Käufer an joinAdInterestGroup() übergeben wurde. Die Interessengruppe kann über dailyUpdateUrl aktualisiert werden.

  • auctionSignals
    Eine Property des Arguments Auktionskonfiguration, das vom Werbetreibenden an navigator.runAdAuction() übergeben wird. So erhalten Sie Informationen zum Seitenkontext (z. B. Anzeigengröße und Publisher-ID), zum Typ der Auktion (Erst- oder Zweitpreisauktion) und andere Metadaten.

  • perBuyerSignals
    Wie bei auctionSignals wird eine Property des Arguments für die Auktionskonfiguration vom Verkäufer an navigator.runAdAuction() übergeben. So können kontextbezogene Signale zur Seite vom Käuferserver bereitgestellt werden, wenn der Verkäufer eine SSP ist, die einen Aufruf für Echtzeitgebote an die Server des Käufers sendet und die Antwort zurücksendet, oder wenn die Publisher-Seite direkt den Server des Käufers kontaktiert. In diesem Fall sollte der Käufer zum Schutz vor Manipulationen eine kryptografische Signatur dieser Signale innerhalb von „generateBid()“ überprüfen.

  • trustedBiddingSignals
    Ein Objekt, dessen Schlüssel die trustedBiddingSignalsKeys für die Interessengruppe sind und dessen Werte in der trustedBiddingSignals-Anfrage zurückgegeben werden.

  • browserSignals
    Ein vom Browser erstelltes Objekt, das Informationen zum Seitenkontext (z. B. hostname der aktuellen Seite, die der Verkäufer andernfalls fälschen könnte) und Daten für die Interessengruppe selbst (z. B. eine Aufzeichnung, wann die Gruppe zuvor eine Auktion gewonnen hat) enthalten kann, um Frequency Capping auf dem Gerät zu ermöglichen.

Das browserSignals-Objekt hat die folgenden Eigenschaften:

{
  topWindowHostname: 'publisher.example',
  seller: 'https://ssp.example',
  joinCount: 3,
  bidCount: 17,
  prevWins: [[time1,ad1],[time2,ad2],...],
  wasmHelper: ... /* WebAssembly.Module object based on interest group's biddingWasmHelperUrl. */
  dataVersion: 1, /* Data-Version value from the buyer's Key/Value service response(s). */
}

Zur Berechnung eines bid-Werts kann der Code in generateBid() die Attribute der Funktionsparameter verwenden. Beispiel:

function generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  return {
    ...
    bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
    ...
  }
}

generateBid() gibt ein Objekt mit vier Eigenschaften zurück:

  • ad
    Beliebige Metadaten zur Anzeige, z. B. Informationen, die der Verkäufer voraussichtlich über das Gebot oder das Anzeigen-Creative herausfinden möchte. Der Verkäufer](/privacy-sandbox/resources/Glossar#ssp) nutzt diese Informationen in seinem Auktions- und Entscheidungsanzeigen-Creative. Der Verkäufer nutzt diese Informationen in seiner Auktions- und Entscheidungslogik.

  • bid
    Ein numerisches Gebot, das an der Auktion teilnimmt. Der Verkäufer muss in der Lage sein, Gebote von verschiedenen Käufern zu vergleichen. Daher müssen Gebote in einer vom Verkäufer ausgewählten Einheit angegeben werden (z. B. „USD pro 1.000 $“). Wenn das Gebot null oder negativ ist, nimmt diese Interessengruppe nicht an der Auktion des Verkäufers teil. Mit diesem Mechanismus kann der Käufer beliebige Regeln für Werbetreibende implementieren, um festzulegen, wo seine Anzeigen erscheinen dürfen oder nicht.

  • render
    Eine URL oder eine Liste von URLs, die zum Rendern des Creatives verwendet wird, falls dieses Gebot die Auktion gewinnt. Weitere Informationen finden Sie in der API-Erklärung unter Aus mehreren Teilen bestehende Anzeigen. Der Wert muss mit dem renderUrl einer der für die Interessengruppe definierten Anzeigen übereinstimmen.

  • adComponents
    Eine optionale Liste mit bis zu 20 Komponenten für Anzeigen, die aus mehreren Teilen bestehen. Sie wird aus der adComponents-Eigenschaft des Interessengruppenarguments übernommen und an navigator.joinAdInterestGroup() übergeben.

Einen Browser bitten, eine Interessengruppe zu verlassen

Der Inhaber der Interessengruppe kann beantragen, dass ein Browser aus einer Interessengruppe entfernt wird. Das heißt, der Browser wird aufgefordert, die Interessengruppe aus der Liste der Gruppen zu entfernen, zu denen er gehört.

navigator.leaveAdInterestGroup({
  owner: 'https://dsp.example',
  name: 'custom-bikes'
});

Wenn ein Nutzer zu der Website zurückkehrt, auf der der Browser um das Hinzufügen einer Interessengruppe gebeten wurde, kann der Inhaber der Interessengruppe die Funktion navigator.leaveAdInterestGroup() aufrufen, um den Browser aufzufordern, die Interessengruppe zu entfernen. Mit dem Code für eine Anzeige kann diese Funktion auch für die zugehörige Interessengruppe aufgerufen werden.

3. Der Nutzer besucht eine Website, auf der Werbefläche verkauft wird.

Abbildung einer Person, die in einem Browser auf ihrem Laptop eine Nachrichtenwebsite besucht. Die Anzeigenfläche auf der Website ist leer.

Später besucht der Nutzer eine Website, auf der Werbeflächen verkauft werden, in diesem Beispiel eine Nachrichtenwebsite. Auf der Website gibt es Anzeigeninventar, das programmatisch über Echtzeitgebote verkauft wird.

4. Eine Anzeigenauktion wird im Browser ausgeführt.

Abbildung einer Person, die sich eine Nachrichtenwebsite in einem Browser auf ihrem Laptop ansieht. Es findet eine Anzeigenauktion mit der Protected Audience API statt.

Erklärungsbereich: Verkäufer führen On-Device-Auktionen durch

Die Anzeigenauktion wird wahrscheinlich von der SSP des Publishers oder vom Publisher selbst durchgeführt. Der Zweck der Auktion besteht darin, die am besten geeignete Anzeige für eine einzelne verfügbare Anzeigenfläche auf der aktuellen Seite auszuwählen. Bei der Auktion werden die Interessengruppen des Browsers sowie Daten von Käufern von Werbeflächen und von Verkäufern aus den Schlüssel/Wert-Diensten berücksichtigt.

Der Verkäufer der Anzeigenfläche sendet durch Aufrufen von navigator.runAdAuction() eine Anfrage an den Browser des Nutzers, eine Anzeigenauktion zu starten.

Beispiel:

const auctionConfig = {
  seller: 'https://ssp.example',
  decisionLogicUrl: ...,
  trustedScoringSignalsUrl: ...,
  interestGroupBuyers: ['https://dsp.example', 'https://buyer2.example', ...],
  auctionSignals: {...},
  sellerSignals: {...},
  sellerTimeout: 100,
  perBuyerSignals: {
    'https://dsp.example': {...},
    'https://another-buyer.example': {...},
    ...
  },
  perBuyerTimeouts: {
    'https://dsp.example': 50,
    'https://another-buyer.example': 200,
    '*': 150,
    ...
  },
  componentAuctions: [
    {
      'seller': 'https://some-other-ssp.example',
      'decisionLogicUrl': ...,
      ...
    },
    ...
  ]
};

const auctionResultPromise = navigator.runAdAuction(auctionConfig);

runAdAuction() gibt ein Promise zurück, das zu einer URN (urn:uuid:<something>) aufgelöst wird, die das Ergebnis der Anzeigenauktion darstellt. Es kann vom Browser nur decodiert werden, wenn es zum Rendern an einen Fenced Frame übergeben wird. Die Publisher-Seite kann die erfolgreiche Anzeige nicht untersuchen.

Das Skript decisionLogicUrl betrachtet jede einzelne Anzeige zusammen mit dem zugehörigen Gebot und den zugehörigen Metadaten nacheinander und weist ihr dann einen numerischen Erwünschtheitswert zu.

auctionConfig Unterkünfte

Attribut Erforderlich Beispiel Rolle
seller Erforderlich 'https://ssp.example' Der Ursprung des Verkäufers.
decisionLogicUrl Erforderlich 'https://ssp.example/auction-decision-logic.js' URL des Auktions-Worklet-JavaScripts.
trustedScoringSignalsUrl Optional 'https://ssp.example/scoring-signals' URL des vertrauenswürdigen Servers des Verkäufers.
interestGroupBuyers* Erforderlich ['https://dsp.example', 'https://buyer2.example', ...] Ursprünge aller Inhaber einer Interessengruppe, die in der Auktion Gebote abgeben möchten
auctionSignals Optional {...} Informationen zum Verkäufer, z. B. Seitenkontext oder Auktionstyp
sellerSignals Optional {...} Informationen basierend auf Publisher-Einstellungen, Erstellen einer kontextbezogenen Anzeigenanfrage usw.
sellerTimeout Optional 100 Maximale Laufzeit (ms) des scoreAd()-Skripts des Verkäufers.
perBuyerSignals Optional {'https://dsp.example': {...},
  'https://another-buyer.example': {...},
...}
Kontextsignale zur Seite für jeden einzelnen Käufer von deren Server.
perBuyerTimeouts Optional 50 Maximale Laufzeit (ms) des generateBid()-Skripts eines bestimmten Käufers
componentAuctions Optional [{'seller': 'https://www.some-other-ssp.com',
  'decisionLogicUrl': ..., ...},
  ...]
Zusätzliche Konfigurationen für Auktionen für Komponenten

* Der Verkäufer kann interestGroupBuyers: '*' angeben, damit alle Interessengruppen Gebote abgeben können. Die Anzeigen werden dann basierend auf anderen Kriterien als der Aufnahme des Inhabers der Interessengruppe akzeptiert oder abgelehnt. Beispielsweise kann der Verkäufer Creatives überprüfen, um sicherzustellen, dass seine Richtlinien eingehalten werden.

** additionalBids wird in der aktuellen Implementierung von Protected Audience nicht unterstützt. Weitere Informationen finden Sie in der Erläuterung zu Protected Audience im Abschnitt Auktionsteilnehmer.

Wie werden Anzeigen ausgewählt?

Der Code unter decisionLogicUrl (eine Eigenschaft des Auktionskonfigurationsobjekts, das an runAdAuction() übergeben wird) muss eine scoreAd()-Funktion enthalten. Sie wird einmal für jede Anzeige ausgeführt, um ihre Werbewirksamkeit zu bestimmen.

scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
  ...
  return desirabilityScoreForThisAd;
}

scoreAd() verwendet die folgenden Argumente:

  • adMetadata
    Beliebige Metadaten vom Käufer
  • bid
    Ein numerischer Gebotswert
  • auctionConfig
    Das an navigator.runAdAuction() übergebene Konfigurationsobjekt für die Auktion.
  • trustedScoringSignals
    Werte, die zum Zeitpunkt der Auktion vom vertrauenswürdigen Server des Verkäufers abgerufen werden und die Meinung des Verkäufers zur Anzeige darstellen.
  • browserSignals
    Ein vom Browser erstelltes Objekt mit Informationen, die dem Browser bekannt sind und die das Auktionsskript des Verkäufers überprüfen möchte:
{
  topWindowHostname: 'publisher.example',
  interestGroupOwner: 'https://dsp.example',
  renderUrl: 'https://cdn.example/render',
  adComponents: ['https://cdn.com/ad-component-1', ...],
  biddingDurationMsec: 12,
  dataVersion: 1 /* Data-Version value from the seller's Key/Value service response. */
}

Vor Beginn der Auktion findet der Verkäufer die beste kontextbezogene Anzeige für die verfügbare Anzeigenfläche. Eine scoreAd()-Logik besteht darin, alle Anzeigen abzulehnen, die den kontextbezogenen Gewinner nicht übertreffen können.

5. Der Verkäufer und die teilnehmenden Käufer erhalten Echtzeitdaten vom Schlüssel/Wert-Dienst.

Abbildung einer Person, die sich eine Nachrichtenwebsite in einem Browser auf ihrem Laptop ansieht. Es findet eine Anzeigenauktion mit der Protected Audience API statt. Dabei erhält ein Teilnehmer Daten aus dem Schlüssel/Wert-Dienst.

Erläuterung:Echtzeitdaten aus dem Schlüssel/Wert-Dienst für geschützte Zielgruppe abrufen

Während einer Anzeigenauktion kann der Verkäufer der Anzeigenfläche Echtzeitdaten zu bestimmten Anzeigen-Creatives erhalten, indem er eine Anfrage an einen Schlüssel/Wert-Dienst sendet. Dazu verwendet er die Eigenschaft trustedScoringSignalsUrl des Arguments Auktionskonfiguration zusammen mit den Schlüsseln aus den renderUrl-Eigenschaften aller Einträge in den Feldern ads und adComponents aller Interessengruppen der Auktion.navigator.runAdAuction()

Ebenso kann ein Käufer von Werbeflächen vom Schlüssel/Wert-Dienst Echtzeitdaten anfordern. Dazu werden die Eigenschaften trustedBiddingSignalsUrl und trustedBiddingSignalsKeys des Interessengruppenarguments verwendet, das an navigator.joinAdInterestGroup() übergeben wurde.

Wenn runAdAuction() aufgerufen wird, sendet der Browser eine Anfrage an den vertrauenswürdigen Server jedes Anzeigenkäufers. Die URL für die Anfrage könnte so aussehen:

https://kv-service.example/getvalues?hostname=publisher.example&keys=key1,key2
  • Die Basis-URL stammt von trustedBiddingSignalsUrl.
  • hostname wird vom Browser bereitgestellt.
  • Der Wert keys wird aus trustedBiddingSignalsKeys übernommen.

Die Antwort auf diese Anfrage ist ein JSON-Objekt, das Werte für jeden der Schlüssel bereitstellt.

6. Die erfolgreiche Anzeige wird ausgeliefert.

Abbildung einer Person, die sich eine Nachrichtenwebsite in einem Browser auf ihrem Laptop ansieht. Es wird eine Anzeige für ein Fahrrad (20% Rabatt) eingeblendet. Oben ist ein Schloss zu sehen, das darauf hinweist, dass die Anzeige in einem umzäunten Rahmen präsentiert wird.

Erläuterung:Browser rendern die erfolgreiche Anzeige

Wie bereits beschrieben: Das von runAdAuction() zurückgegebene Versprechen wird in eine URN aufgelöst, die zum Rendern an einen Fenced Frame übergeben wird, und auf der Website wird die Gewinneranzeige eingeblendet.

7. Das Auktionsergebnis wird erfasst

Erläuterungen im Abschnitt:Berichte auf Ereignisebene (vorerst)

Ergebnis der Verkäuferberichte

Erläuterungsabschnitt:Verkäuferberichte zum Rendering

Das unter decisionLogicUrl bereitgestellte JavaScript, das auch scoreAd() bereitstellt, kann eine reportResult()-Funktion enthalten, um das Auktionsergebnis zu melden.

reportResult(auctionConfig, browserSignals) {
  ...
  return signalsForWinner;
}

Folgende Argumente werden an diese Funktion übergeben:

  • auctionConfig
    Das an navigator.runAdAuction() übergebene Konfigurationsobjekt für die Auktion.

  • browserSignals
    Ein vom Browser erstelltes Objekt, das Informationen zur Auktion liefert. Beispiel:

    {
      'topWindowHostname': 'publisher.example',
      'interestGroupOwner': 'https://dsp.example',
      'renderUrl': 'https://cdn.example/url-of-winning-creative.wbn',
      'bid:' <bidValue>,
      'desirability': <winningAdScore>
    }
    

Der Rückgabewert dieser Funktion wird als sellerSignals-Argument für die reportWin()-Funktion des erfolgreichen Bieters verwendet.

Ergebnis der Berichte des erfolgreichen Bieters

Erläuterungen:Käuferberichte zu Rendering- und Anzeigenereignissen

Der JavaScript-Code des erfolgreichen Bieters, der auch generateBid() bereitstellt, kann die Funktion reportWin() enthalten, um das Ergebnis der Auktion zu melden.

reportWin(auctionSignals, perBuyerSignals, sellerSignals, browserSignals) {
  ...
}

Folgende Argumente werden an diese Funktion übergeben:

  • auctionSignals und perBuyerSignals
    Dieselben Werte, die für den erfolgreichen Bieter an generateBid() übergeben werden.
  • sellerSignals
    Der Rückgabewert von reportResult(), mit dem der Verkäufer die Informationen an den Käufer weitergeben kann.
  • browserSignals
    Ein vom Browser erstelltes Objekt, das Informationen zur Auktion liefert. Beispiel:

    {
      'topWindowHostname': 'publisher.example',
      'seller': 'https://ssp.example',
      'interestGroupOwner': 'https://dsp.example',
      'interestGroupName': 'custom-bikes',
      'renderUrl': 'https://cdn.example/winning-creative.wbn',
      'bid:' <bidValue>
    }
    

Berichte zu vorübergehenden Verlusten/Gewinnen implementieren

In Chrome stehen Ihnen vorübergehend zwei Methoden für Auktionsberichte zur Verfügung:

  • forDebuggingOnly.reportAdAuctionLoss()
  • forDebuggingOnly.reportAdAuctionWin()

Für diese Methoden ist jeweils ein Argument erforderlich: eine URL, die nach Abschluss der Auktion abgerufen wird. Sie können sowohl in scoreAd() als auch in generateBid() mehrmals mit unterschiedlichen URL-Argumenten aufgerufen werden.

Chrome sendet nur dann Berichte zu Verlusten und Gewinnen der Fehlerbehebung, wenn eine Auktion vollständig ausgeführt wurde. Wenn eine Auktion abgebrochen wird, z. B. aufgrund einer neuen Navigation, werden keine Berichte generiert.

Diese Methoden sind standardmäßig in Chrome verfügbar, wenn chrome://flags/#privacy-sandbox-ads-apis aktiviert ist. Wenn Sie Chrome jedoch mit Befehlszeilen-Flags ausführen, um Protected Audience zu aktivieren, müssen Sie die Methoden explizit aktivieren, indem Sie das Flag BiddingAndScoringDebugReportingAPI einfügen. Wenn das Flag nicht aktiviert ist, sind die Methoden weiterhin verfügbar, führen jedoch nichts aus.

8. Ein Anzeigenklick wird erfasst.

Abbildung einer Person, die auf eine Anzeige für ein Fahrrad klickt, in einem umzäunten Frame, auf einer Nachrichtenwebsite. Die Berichtsdaten werden an Verkäufer und Käufer gesendet.

Ein Klick auf eine Anzeige, die in einem Fenced Frame gerendert wurde, wird erfasst. Weitere Informationen dazu finden Sie unter Berichte zu Anzeigen mit Fenced Frames.



Im folgenden Diagramm werden die einzelnen Phasen einer Protected Audience-Anzeigenauktion dargestellt:

Abbildung mit einem Überblick über die einzelnen Phasen einer Protected Audience-Anzeigenauktion


Was ist der Unterschied zwischen Protected Audience und TURTLEDOVE?

Protected Audience ist der erste Test, der in Chromium im Rahmen der TURTLEDOVE-Angebote implementiert wird.

Protected Audience entspricht den allgemeinen Prinzipien von TURTLEDOVE. Ein Teil der Onlinewerbung basiert auf der Auslieferung einer Anzeige für potenziell interessierte Nutzer, die bereits mit dem Werbetreibenden oder dem Werbenetzwerk interagiert haben. In der Vergangenheit hat dies dem Werbetreibenden damit geholfen, eine bestimmte Person beim Surfen durch Websites zu identifizieren, was ein zentrales Anliegen des Datenschutzes im heutigen Web ist.

Bei TURTLEDOVE geht es darum, eine neue API für diesen Anwendungsfall anzubieten und gleichzeitig einige wichtige Verbesserungen im Hinblick auf den Datenschutz zu bieten:

  • Die Informationen darüber, was der Werbetreibende denkt, dass eine Person interessiert ist, ist der Browser, nicht der Werbetreibende.
  • Werbetreibende können Anzeigen auf Grundlage von Interessen schalten, aber diese Interessen nicht mit anderen Informationen über eine Person kombinieren, insbesondere darüber, wer sie sind oder welche Seite sie besucht.

Protected Audience entstand aus TURTLEDOVE und einer Reihe ähnlicher Änderungsvorschläge für Entwickler, die die API nutzen würden:

  • In SPARROW hat Criteo das Hinzufügen eines „Gatekeeper“-Dienstmodells vorgeschlagen, das in einer Trusted Execution Environment (TEE) ausgeführt wird. Protected Audience verwendet eine eingeschränktere Nutzung von TEEs, um Daten in Echtzeit abzurufen und aggregierte Berichte zu erstellen.
  • In den PARRROT-Angeboten von NextRoll wurden TERN und Magnite beschrieben, die die verschiedenen Rollen von Käufern und Verkäufern bei der On-Device-Auktion hatten. Der Ablauf der Gebotsabgabe/Bewertung bei Anzeigen von Protected Audience basiert auf dieser Arbeit.
  • Durch die TURTLEDOVE-Änderungen auf Ergebnis- und Produktebene von RTB House wurden das Anonymitätsmodell und die Personalisierungsfunktionen der On-Device-Auktion verbessert.
  • PARAKEET ist ein Vorschlag von Microsoft für einen TURTLEDOVE-ähnlichen Anzeigendienst, der einen Proxyserver verwendet, der in einem TEE zwischen dem Browser und den AdTech-Anbietern ausgeführt wird, um Anzeigenanfragen zu anonymisieren und Datenschutzeigenschaften zu erzwingen. Protected Audience hat dieses Proxying-Modell nicht übernommen. Wir bringen die JavaScript APIs für PARAKEET und Protected Audience aufeinander ab, um die besten Funktionen beider Vorschläge weiter zu kombinieren.

Die Protected Audience API verhindert noch nicht, dass das Werbenetzwerk einer Website erfährt, welche Anzeigen ein Nutzer sieht. Wir gehen davon aus, dass wir die API im Laufe der Zeit an den Datenschutz anpassen werden.

Welche Browserkonfiguration ist verfügbar?

Nutzer können ihre Teilnahme an Privacy Sandbox-Tests in Chrome anpassen, indem sie die Einstellung der obersten Ebene unter chrome://settings/adPrivacy aktivieren oder deaktivieren. Während der ersten Tests können Nutzer Protected Audience mit dieser allgemeinen Privacy Sandbox-Einstellung deaktivieren. In Chrome ist geplant, Nutzern zu ermöglichen, die Liste der Interessengruppen, denen sie auf den von ihnen besuchten Websites hinzugefügt wurden, aufzurufen und zu verwalten. Wie bei den Privacy Sandbox-Technologien selbst können sich die Nutzereinstellungen mit dem Feedback von Nutzern, Aufsichtsbehörden und anderen ändern.

Im Laufe des Protected Audience-Vorschlags werden wir die verfügbaren Einstellungen in Chrome basierend auf Tests und Feedback weiter aktualisieren. Für die Zukunft planen wir, detailliertere Einstellungen zur Verwaltung von Protected Audience und zugehörigen Daten anzubieten.

API-Aufrufer können nicht auf die Gruppenmitgliedschaft zugreifen, wenn Nutzer im Inkognitomodus surfen. Die Mitgliedschaft wird entfernt, wenn Nutzer ihre Websitedaten löschen.



Reagieren und Feedback geben

Support kontaktieren

Wenn Sie Fragen zu Ihrer Implementierung, zur Demo oder zur Dokumentation haben:

Bei Fehlern und Problemen bei der Implementierung der Protected Audience API in Chrome: * Vorhandene Probleme ansehen, die für die API gemeldet wurden. * Melden Sie ein neues Problem unter crbug.com/new.

Immer auf dem neuesten Stand bleiben

  • Tragen Sie sich in die Mailingliste für Entwickler ein, um über Statusänderungen in der API informiert zu werden.
  • Wenn Sie alle aktuellen Diskussionen zur API genau verfolgen möchten, klicken Sie auf der Angebotsseite in GitHub auf die Schaltfläche Ansehen. Hierfür ist ein GitHub-Konto erforderlich oder Sie müssen ein GitHub-Konto erstellen.
  • Wenn Sie allgemeine Updates zur Privacy Sandbox erhalten möchten, abonnieren Sie den RSS-Feed [Fortschritt in der Privacy Sandbox].

Weitere Informationen


Foto von Ray Hennessy bei Unsplash.