Entwicklerleitfaden für die FLEDGE API

An wen richtet sich dieser Artikel?

Dieser Beitrag ist eine technische Referenz für die aktuelle Version der experimentellen Protected Audience API.

  • Die Protected Audience API bietet einen weniger technischen Überblick über das Angebot und verfügt außerdem über ein Glossar.

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

  • Im Demovideo zu Protected Audience wird die Funktionsweise des Democodes erläutert. Außerdem wird gezeigt, wie Sie die Chrome-Entwicklertools zum Debugging von Protected Audience verwenden können.

Was ist Protected Audience?

Die Protected Audience API ist eine Privacy Sandbox-Lösung für Remarketing und benutzerdefinierte Zielgruppen. Sie wurde so entwickelt, dass Drittanbieter sie nicht verwenden können, um das Surfverhalten von Nutzern über Websites hinweg 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 in Chromium innerhalb der Vorschlagsfamilie TURTLEDOVE implementiert wird.

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

Darstellung der einzelnen Phasen des FLEDGE-Lebenszyklus
FLEDGE-Lebenszyklus.

Wie kann ich Protected Audience ausprobieren?

Protected Audience-Demo

Eine Anleitung für die grundlegende Bereitstellung von Protected Audience auf Websites von Werbetreibenden und Publishern finden Sie unter Protected-audience-demo.web.app.

Im Demovideo wird erläutert, wie der Democode funktioniert und wie Sie die Chrome-Entwicklertools für die Fehlerbehebung in Protected Audience verwenden.

An einem Protected Audience-Ursprungstest teilnehmen

Für die Protected Audience API, die Topics API und die Attribution Reporting API ist ab Chrome Beta 101.0.4951.26 auf Computern ein Ursprungstest für Relevanz und Messung der Privacy Sandbox für Relevanz und Messung verfügbar.

Wenn Sie teilnehmen möchten, registrieren Sie sich für ein Ursprungstesttoken.

Nachdem Sie sich für den Test angemeldet haben, können Sie die Protected Audience JavaScript API auf Seiten testen, die ein gültiges Testtoken enthalten. So kann der Browser beispielsweise aufgefordert werden, einer oder mehreren Interessengruppen beizutreten, und anschließend eine Anzeigenauktion durchzuführen, um eine Anzeige auszuwählen und auszuliefern.

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

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

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

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

  • Als HTTP-Header:

    Origin-Trial: TOKEN_GOES_HERE

  • Wenn Sie ein Token programmatisch bereitstellen, geschieht Folgendes:

    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 – wie ein navigator.joinAdInterestGroup()-Aufruf durch einen Interessengruppeninhaber – muss ein Token bereitstellen, das mit seinem Ursprung übereinstimmt.

Details zu vorgeschlagenen ersten Protected Audience-Ursprungstests enthalten weitere Informationen zu den Zielen des ersten Tests und erläutern, welche Funktionen unterstützt werden.

Diese API testen

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

  • Durch Aktivieren aller APIs zum Datenschutz bei Werbung unter chrome://settings/adPrivacy
  • Durch Festlegen von Flags über die Befehlszeile

Anzeigen in iFrames oder Fenced Frames rendern

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

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 zur temporären Fehlerbehebung für Verluste/Gewinne 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. Die vollständige Liste der Protected Audience-Flags finden Sie in der Chromium-Codesuche.

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

Im Rahmen eines ersten Tests werden die folgenden Funktionen des Protected Audience-Vorschlags in Chromium getestet:

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

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

Berechtigungen für Interessengruppen

In der aktuellen Implementierung von Protected Audience ist es standardmäßig erlaubt, joinAdInterestGroup() von überall auf einer Seite aus aufzurufen, auch von domainübergreifenden iFrames aus. Wenn Websiteinhaber ihre Richtlinien für domainübergreifende iFrames anpassen konnten, sollen Aufrufe über domainübergreifende iFrames künftig verhindert werden, wie in der Erläuterung beschrieben.

Dienst für Schlüssel/Wert-Paare

Im Rahmen einer Protected Audience-Anzeigenauktion kann der Browser auf einen Schlüssel/Wert-Paar-Dienst zugreifen, der einfache Schlüssel/Wert-Paare zurückgibt, um dem Käufer Informationen wie das verbleibende Kampagnenbudget zur Verfügung zu stellen. Das Protected Audience-Angebot schreibt vor, dass dieser Server „kein Logging auf Ereignisebene durchführt und keine anderen Auswirkungen auf diese Anfragen hat“.

Der Dienstcode für Protected Audience-Schlüssel/Wert-Paare ist jetzt in einem GitHub-Repository für die Privacy Sandbox verfügbar. Dieser Dienst kann von Chrome- und Android-Entwicklern verwendet werden. Das Statusupdate finden Sie in diesem Blogpost. Weitere Informationen zum Protected Audience-Schlüssel/Wert-Dienst finden Sie in der Erklärung zur API und der Erklärung zum Vertrauensmodell.

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

Um sicherzustellen, dass das System über genügend Zeit für Tests verfügt, gehen wir davon aus, dass die Nutzung der Open-Source-Schlüssel/Wert-Dienste oder TEEs erst irgendwann nach der Einstellung von Drittanbieter-Cookies erforderlich ist. Vor der Umstellung werden wir die Entwickler rechtzeitig darüber informieren, dass sie mit den Tests und der Einführung beginnen können.

Funktionsunterstützung erkennen

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 Protected Audience 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?

Websites müssen eine Berechtigungsrichtlinie festlegen, damit Protected Audience-Funktionen zur Verfügung stehen. So wird sichergestellt, dass beliebige Dritte die API nicht ohne Wissen der Website verwenden können. Um das Testen während des ersten Ursprungstests jedoch zu vereinfachen, entfällt diese Anforderung. Websites, die Protected Audience-Funktionen während des Testzeitraums explizit deaktivieren möchten, können die entsprechende Berechtigungsrichtlinie zum Blockieren des Zugriffs verwenden.

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

  • join-ad-interest-group aktiviert bzw. deaktiviert Funktionen zum Hinzufügen eines Browsers zu Interessengruppen.
  • run-ad-auction aktiviert bzw. deaktiviert Funktionen zur Durchführung einer On-Device-Auktion

Der Zugriff auf Protected Audience APIs kann in eigenen Kontexten vollständig deaktiviert werden. Dazu geben Sie 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 Attribut allow 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 Berechtigungsrichtlinie für den Test der ersten Protected Audience-Quelle.

Nutzerwiderspruch

Nutzer können den Zugriff auf die Protected Audience API und andere Privacy Sandbox-Funktionen mit einem der folgenden Mechanismen blockieren:

  • Deaktivieren Sie die Privacy Sandbox-Tests in den Chrome-Einstellungen: Einstellungen > Sicherheit und Datenschutz > Privacy Sandbox. Sie können auch unter chrome://settings/adPrivacy darauf zugreifen.
  • Deaktivieren Sie Cookies von Drittanbietern in den Chrome-Einstellungen: Einstellungen > Sicherheit und Datenschutz.
  • Wähle unter Cookies und andere Websitedaten entweder „Drittanbieter-Cookies blockieren“ oder „Alle Cookies blockieren“ von chrome://settings/cookies aus.
  • Verwenden Sie den Inkognitomodus.

In der Erläuterung zu Protected Audience finden Sie weitere Details zu den API-Designelementen und erfahren, wie die API dazu dient, Datenschutzziele zu erreichen.

Fehler in Protected Audience-Worklets beheben

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

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

Screenshot der Entwicklertools in Chrome Canary; im Bereich „Quellen“ ist der Bereich „Event Listener Breakpoints“ markiert.
   Der Beginn der Gebotsphase des Bieters ist unter dem Auktions-Worklet ausgewählt.

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

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

Screenshot der Entwicklertools in Chrome Canary. Im Bereich „Quellen“ ist der Bereich „Threads“ markiert. Das aktuelle pausierte Worklet-Script wird angezeigt.

Da einige Worklets parallel ausgeführt werden können, können sich mehrere Threads dort im Status „pausiert“ befinden. Mithilfe der Thread-Liste können Sie zwischen Threads wechseln und sie bei Bedarf fortsetzen oder genauer untersuchen.

Protected Audience-Ereignisse beobachten

Im Bereich „Anwendung“ in den Chrome-Entwicklertools können Sie sich Protected Audience-Interessengruppen und ‐Auktionsereignisse ansehen.

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

Der Bereich „Entwicklertools“ in Chrome Canary mit Informationen zu einem Beitrittsereignis einer Protected Audience-Interessengruppe.

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

Der Anwendungsbereich der Entwicklertools in Chrome Canary mit Informationen zu Gebotsgeboten für Protected Audience-Auktionen und zu Gewinnereignissen.

Wie funktioniert die Protected Audience API?

In diesem Beispiel besucht ein Nutzer die Website eines Fahrradherstellers, besucht später eine Nachrichtenwebsite und sieht 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 Fahrradherstellers besucht.

Stellen Sie sich vor, ein Nutzer besucht die Website eines Herstellers von maßgefertigten Fahrrädern (in diesem Beispiel des Werbetreibenden) und verbringt einige Zeit auf der Produktseite eines handgefertigten Stahlrads. 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 Der JavaScript-Code „joinAdInterestGroup()“ wird im Browser ausgeführt.

Erklärungsbereich:Interessengruppen für Browsereinträge

Die Demand-Side-Plattform (DSP) des Werbetreibenden (oder der Werbetreibende selbst) ruft navigator.joinAdInterestGroup() auf, um den Browser aufzufordern, der Liste der Gruppen, in denen der Browser Mitglied ist, 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 in Schritt 4 beschriebenen Anzeigenauktion. Die Interessengruppenmitgliedschaft wird vom Browser auf dem Gerät des Nutzers gespeichert und nicht an den Browseranbieter oder andere Personen weitergegeben.

joinAdInterestGroup() benötigt die Berechtigung von:

  • Die besuchte Website
  • Inhaber der Interessengruppe

Beispiel: Es darf malicious.example nicht möglich sein, joinAdInterestGroup() mit dsp.example als Inhaber ohne die Berechtigung von dsp.example aufzurufen.

Berechtigung der besuchten Website

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

Cross-Origin: Das Aufrufen von joinAdInterestGroup() von Ursprüngen, die von der aktuellen Seite abweichen, ist nur erfolgreich, wenn für die besuchte Website eine Berechtigungsrichtlinie festgelegt ist, die Aufrufe von joinAdInterestGroup() aus ursprungsübergreifenden iFrames zulässt.

Erlaubnis des Inhabers der Interessengruppe

Die Inhaberberechtigung für eine Interessengruppe wird implizit erteilt, indem joinAdInterestGroup() über einen iFrame aufgerufen wird, dessen Ursprung mit dem des Inhabers der Interessengruppe identisch ist. Mit einem dsp.example-iFrame kann beispielsweise joinAdInterestGroup() für Interessengruppen aufgerufen werden, die zu dsp.example gehören.

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

navigator.joinAdInterestGroup() verwenden

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 für Interessengruppen

Attribut Erforderlich Beispiel Rolle
owner Erforderlich 'https://dsp.example' Der Ursprung des Interessengruppeninhabers.
name Erforderlich 'custom-bikes' Name der Interessengruppe.
biddingLogicUrl** Optional* 'https://dsp.example/bid/custom-bikes/bid.js' URL für das Bidding-JavaScript, das im Worklet ausgeführt wird.
biddingWasmHelperUrl** Optional* 'https://dsp.example/bid/custom-bikes/bid.wasm' URL für WebAssembly-Code, gesteuert von biddingLogicUrl.
dailyUpdateUrl** Optional 'https://dsp.example/bid/custom-bikes/update' URL, die JSON zurückgibt, um Interessengruppenattribute zu aktualisieren. Weitere Informationen finden Sie unter Interessengruppe aktualisieren.
trustedBiddingSignalsUrl** Optional 'https://dsp.example/trusted/bidding-signals' Basis-URL für Anfragen mit Schlüssel/Wert-Paaren an den vertrauenswürdigen Server des Bieters.
trustedBiddingSignalsKeys Optional ['key1', 'key2' ...] Schlüssel für Anfragen an einen vertrauenswürdigen Server mit Schlüssel/Wert-Paaren.
userBiddingSignals Optional {...} Zusätzliche Metadaten, die der Inhaber bei der Gebotsabgabe verwenden kann.
ads Optional* [bikeAd1, bikeAd2, bikeAd3] Anzeigen, die für diese Interessengruppe gerendert werden könnten.
adComponents Optional [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2] Komponenten für Anzeigen, die aus mehreren Teilen bestehen

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

** Die URLs biddingLogicUrl, biddingWasmHelperUrl, dailyUpdateUrl und trustedBiddingSignalsUrl müssen denselben Ursprung haben wie der Inhaber. Bei den URLs ads und adComponents besteht keine solche Einschränkung.

Interessengruppenattribute aktualisieren

dailyUpdateUrl gibt einen Webserver an, der im JSON-Format die Eigenschaften der Interessengruppe zurückgibt, die dem an navigator.joinAdInterestGroup() übergebenen Interessengruppenobjekt entsprechen. Dadurch kann der Gruppeninhaber 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. Nur in der JSON-Datei angegebene Felder werden aktualisiert. Beim Aufrufen von navigator.joinAdInterestGroup() werden dagegen vorhandene Interessengruppen überschrieben.

Updates erfolgen bestmöglich und können unter den folgenden Bedingungen fehlschlagen:

  • Zeitüberschreitung bei Netzwerkanfrage (derzeit 30 Sekunden).
  • Anderer Netzwerkfehler.
  • JSON-Parsing fehlgeschlagen.

Aktualisierungen können auch abgebrochen werden, wenn zu viel zusammenhängende Zeit für Aktualisierungen aufgewendet wurde. Dies erzwingt jedoch keine Ratenbegrenzung für abgebrochene (verbleibende) Aktualisierungen. Aktualisierungen sind auf maximal ein Update pro Tag begrenzt. Updates, die aufgrund von Netzwerkfehlern fehlschlagen, werden nach einer Stunde wiederholt. Updates, die aufgrund einer Unterbrechung vom Internet fehlgeschlagen sind, werden sofort nach der erneuten Verbindung versucht.

Manuelle Updates

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

Automatische Updates

Alle für eine Auktion geladenen Interessengruppen werden nach Abschluss einer Auktion automatisch aktualisiert. Dabei gelten dieselben Ratenbegrenzungen wie für manuelle 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 aus aufgerufen, dessen Ursprung mit diesem Inhaber übereinstimmt.

Anzeigen für eine Interessengruppe festlegen

ads- und adComponents-Objekte enthalten eine URL für ein Anzeigen-Creative und optional beliebige Metadaten, die bei 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 Interessengruppeninhaber bereitgestellte Skript unter biddingLogicUrl muss eine generateBid()-Funktion enthalten. Wenn ein Werbeflächenverkäufer navigator.runAdAuction() aufruft, wird die generatedBid()-Funktion für jede Interessengruppe, zu der der Browser gehört, einmal aufgerufen, wenn der Inhaber der Interessengruppe zur Gebotsabgabe eingeladen wurde. Mit anderen Worten: generateBid() wird für jede mögliche Anzeige einmal aufgerufen. Der Verkäufer stellt die Eigenschaft 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 von einem Käufer der Werbeflächen bereitgestellte Skript unter biddingLogicUrl muss eine generateBid()-Funktion 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 und weist der Anzeige dann einen numerischen 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 Anzeigenkäufer an joinAdInterestGroup() übergeben wurde Die Interessengruppe kann über dailyUpdateUrl aktualisiert werden.

  • auctionSignals
    Eine Property des Arguments auction config, das vom Verkäufer an navigator.runAdAuction() übergeben wurde. Sie enthalten Informationen zum Seitenkontext (z. B. Anzeigengröße und Publisher-ID), zur Art der Auktion (Erst- oder Zweitpreis) und zu anderen Metadaten.

  • perBuyerSignals
    Genau wie bei auctionSignals eine Eigenschaft des Arguments Auktionskonfiguration, die vom Verkäufer an navigator.runAdAuction() übergeben wurde. So können Kontextsignale vom Käuferserver bezüglich der Seite bereitgestellt werden, wenn der Verkäufer ein SSP ist, der einen Echtzeitgebotsaufruf an die Käuferserver durchführt und die Antwort zurücksendet, oder wenn die Publisher-Seite direkt den Server des Käufers kontaktiert. In diesem Fall kann der Käufer eine kryptografische Signatur dieser Signale ingenerateBid() als Schutz vor Manipulation prüfen.

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

  • browserSignals
    Ein vom Browser erstelltes Objekt, das Informationen zum Seitenkontext (z. B. das hostname der aktuellen Seite, das der Verkäufer ansonsten fälschen könnte) und Daten für die Interessengruppe selbst (z. B. eine Aufzeichnung, wann die Gruppe zuvor eine Auktion gewonnen hat, für das On-Device-Frequency Capping) enthalten kann.

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). */
}

Zum Berechnen eines bid-Werts kann Code in generateBid() die Attribute der Parameter der Funktion 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 dieses Gebot oder die Anzeige erfahren möchte Der Verkäufer](/privacy-sandbox/resources/glossary#ssp) verwendet diese Informationen in seiner Anzeige für Auktionen und Entscheidungen. Der Verkäufer verwendet 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 verschiedener Käufer zu vergleichen. Daher müssen Gebote in einer vom Verkäufer gewählten Einheit (z. B. „USD pro 1.000“) angegeben werden. 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 Werbetreibendenregeln implementieren, mit denen festgelegt wird, wo seine Anzeigen erscheinen und wo nicht.

  • render
    Eine URL oder eine Liste von URLs, die zum Rendern des Creatives verwendet wird, wenn 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 aus mehreren Teilen bestehende Anzeigen, die der Eigenschaft adComponents des Interessengruppenarguments entnommen wird, das an navigator.joinAdInterestGroup() übergeben wurde.

Einen Browser bitten, eine Interessengruppe zu verlassen

Der Inhaber der Interessengruppe kann beantragen, dass ein Browser aus einer Interessengruppe entfernt wird. Der Browser wird also aufgefordert, die Interessengruppe aus der Liste der Mitglieder zu entfernen.

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

Wenn ein Nutzer zu der Website zurückkehrt, auf der der Browser aufgefordert wird, eine Interessengruppe hinzuzufügen, kann der Inhaber der Interessengruppe die Funktion navigator.leaveAdInterestGroup() aufrufen, um den Browser aufzufordern, die Interessengruppe zu entfernen. Code für eine Anzeige kann diese Funktion auch für ihre Interessengruppe aufrufen.

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

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

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 über Echtzeitgebote programmatisch verkauft wird.

4. Eine Anzeigenauktion wird im Browser ausgeführt.

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

Erklärungsbereich:Verkäufer führen Auktionen auf dem Gerät 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, denen der Browser angehört, sowie Daten von Werbeflächenkäufern und Verkäufern der Schlüssel/Wert-Dienste berücksichtigt.

Der Verkäufer der Werbefläche sendet eine Anfrage an den Browser des Nutzers, um eine Anzeigenauktion zu starten. Dazu ruft er navigator.runAdAuction() auf.

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 Versprechen zurück, das in eine URN (urn:uuid:<something>) aufgelöst wird, die das Ergebnis der Anzeigenauktion darstellt. Dieser Code kann vom Browser nur decodiert werden, wenn er zum Rendern an einen Fencing Frame übergeben wird. Die Publisher-Seite kann also die erfolgreiche Anzeige nicht prüfen.

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' Herkunft des Verkäufers.
decisionLogicUrl Erforderlich 'https://ssp.example/auction-decision-logic.js' URL für JavaScript des Auktions-Worklets.
trustedScoringSignalsUrl Optional 'https://ssp.example/scoring-signals' URL des vertrauenswürdigen Servers des Verkäufers.
interestGroupBuyers* Erforderlich ['https://dsp.example', 'https://buyer2.example', ...] Herkunft aller Interessengruppeninhaber, die in der Auktion ein Gebot abgeben möchten
auctionSignals Optional {...} Verkäuferinformationen zum Seitenkontext, zur Art der Auktion usw.
sellerSignals Optional {...} Informationen, die auf den Publisher-Einstellungen, einer kontextbezogenen Anzeigenanfrage usw. basieren
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 vom jeweiligen Server
perBuyerTimeouts Optional 50 Maximale Laufzeit (ms) der generateBid()-Skripts eines bestimmten Käufers
componentAuctions Optional [{'seller': 'https://www.some-other-ssp.com',
  'decisionLogicUrl': ..., ...},
  ...]
Zusätzliche Konfigurationen für Komponentenauktionen

* Der Verkäufer kann interestGroupBuyers: '*' angeben, damit alle Interessengruppen Gebote abgeben dürfen. Die Anzeigen werden dann basierend auf anderen Kriterien als der Einbeziehung des Interessengruppeninhabers angenommen oder abgelehnt. Verkäufer haben beispielsweise die Möglichkeit, ihre Creatives auf die Einhaltung der Richtlinien zu überprüfen.

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

Wie werden Anzeigen ausgewählt?

Der Code unter decisionLogicUrl (eine Property des Auktionskonfigurationsobjekts, das an runAdAuction() übergeben wird) muss eine scoreAd()-Funktion enthalten. Dies wird für jede Anzeige einmal ausgeführt, um ihre Erwünschtheit zu ermitteln.

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

scoreAd() verwendet die folgenden Argumente:

  • adMetadata
    Beliebige Metadaten, die vom Käufer bereitgestellt werden.
  • bid
    Ein numerischer Gebotswert.
  • auctionConfig
    Das an navigator.runAdAuction() übergebene Auktionskonfigurationsobjekt.
  • trustedScoringSignals
    Werte, die zum Zeitpunkt der Auktion vom vertrauenswürdigen Server des Verkäufers abgerufen werden und die Meinung des Verkäufers zur Anzeige widerspiegeln.
  • browserSignals
    Ein vom Browser erstelltes Objekt mit Informationen, die dem Browser bekannt sind und die das Auktionsskript des Verkäufers möglicherweise ü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 einer Auktion sucht der Verkäufer die am besten geeignete kontextbezogene Anzeige für die verfügbare Anzeigenfläche. Ein Teil der scoreAd()-Logik besteht darin, jede Anzeige abzulehnen, die den kontextbezogenen Gewinner nicht schlagen kann.

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

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

Erklärungsbereich:Echtzeitdaten aus dem Protected Audience-Schlüssel/Wert-Dienst abrufen.

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

Ebenso kann ein Käufer einer Werbefläche Echtzeitdaten vom Schlüssel/Wert-Dienst anfordern. Dazu werden die Eigenschaften trustedBiddingSignalsUrl und trustedBiddingSignalsKeys des an navigator.joinAdInterestGroup() übergebenen Interessengruppenarguments verwendet.

Wenn runAdAuction() aufgerufen wird, sendet der Browser eine Anfrage an den vertrauenswürdigen Server jedes Kä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 von 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 auf ihrem Laptop in einem Browser eine Nachrichtenwebsite aufruft Es wird eine Werbeanzeige für ein Fahrrad (20% Rabatt) eingeblendet. Oben ist ein Schloss zu sehen, das darauf hinweist, dass die Anzeige in einem eingezäunten Rahmen präsentiert wird.

Erläuterung:Browser rendern die erfolgreiche Anzeige

Wie bereits beschrieben, wird das von runAdAuction() zurückgegebene Promise in eine URN aufgelöst, die zum Rendern an einen Fencing Frame übergeben wird. Auf der Website wird dann die erfolgreiche Anzeige dargestellt.

7. Das Auktionsergebnis wird im Bericht

Erläuterung:Berichte auf Ereignisebene (derzeit)

Ergebnis der Verkäuferberichte

Erklärungsbereich: Verkäuferberichte zum Rendering

Das unter decisionLogicUrl bereitgestellte JavaScript-Code des Verkäufers, der auch scoreAd() bereitgestellt hat, 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 Auktionskonfigurationsobjekt.

  • browserSignals
    Ein Objekt, das vom Browser erstellt wird und 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

Erklärungsbereich: Käuferberichte zu Rendering und Anzeigenereignissen

Der JavaScript-Code des erfolgreichen Bieters, der auch generateBid() bereitgestellt hat, kann eine reportWin()-Funktion enthalten, um das Auktionsergebnis zu melden.

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

Folgende Argumente werden an diese Funktion übergeben:

  • auctionSignals und perBuyerSignals
    Dieselben Werte werden für den erfolgreichen Bieter an generateBid() übergeben.
  • sellerSignals
    Der Rückgabewert von reportResult(), der dem Verkäufer die Möglichkeit gibt, Informationen an den Käufer zu senden.
  • browserSignals
    Ein Objekt, das vom Browser erstellt wird und 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>
    }
    

Implementierung von Berichten zu vorübergehenden Verlusten und Gewinnen

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

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

Diese Methoden verwenden jeweils ein einzelnes Argument: 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 zur Fehlerbehebung, wenn eine Auktion abgeschlossen ist. Wenn eine Auktion abgebrochen wird, z. B. aufgrund einer neuen Navigation, werden keine Berichte generiert.

Diese Methoden sind in Chrome standardmäßig verfügbar. Wenn Sie die Methoden testen möchten, müssen Sie unter chrome://settings/adPrivacy alle APIs zum Datenschutz bei Werbung aktivieren. Wenn Sie Chrome mit Befehlszeilen-Flags zum Aktivieren von Protected Audience ausführen, müssen Sie die Methoden explizit aktivieren, indem Sie das Flag BiddingAndScoringDebugReportingAPI einfügen. Wenn das Flag nicht aktiviert ist, sind die Methoden zwar verfügbar, führen aber nichts aus.

8. Ein Anzeigenklick wird erfasst

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

Es wird ein Klick auf eine Anzeige erfasst, die in einem abgegrenzten Frame gerendert wird. Weitere Informationen zur Funktionsweise finden Sie unter Berichte zu Fenced Frames-Anzeigen.



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 das erste Experiment, das in Chromium innerhalb der TURTLEDOVE-Angebotsfamilie implementiert wird.

Protected Audience folgt den allgemeinen Prinzipien von TURTLEDOVE. Einige Online-Werbung basiert darauf, dass eine Anzeige einer potenziell interessierten Person gezeigt wurde, die zuvor mit dem Werbetreibenden oder dem Werbenetzwerk interagiert hat. In der Vergangenheit hat der Werbetreibende damit eine bestimmte Person beim Surfen auf Websites erkannt. Dies ist ein grundlegendes Anliegen im Hinblick auf den Datenschutz im Internet.

Bei TURTLEDOVE geht es darum, eine neue API für diesen Anwendungsfall anzubieten und gleichzeitig einige wichtige datenschutzbezogene Fortschritte anzubieten:

  • Die Informationen zu den Interessen der Nutzer nach Ansicht des Werbetreibenden werden im Browser und nicht im Werbetreibenden gespeichert.
  • Werbetreibende können Anzeigen auf der Grundlage von Interessen schalten, diese Interessen jedoch nicht mit anderen Informationen über eine Person kombinieren, insbesondere nicht darüber, wer sie sind oder welche Seite sie besuchen.

Protected Audience entstand aus TURTLEDOVE und einer Sammlung zugehöriger Änderungsvorschläge für Entwickler, die die API verwenden würden:

  • In SPARROW: Criteo schlug die Hinzufügung eines Dienstmodells ("Gatekeeper") vor, das in einer vertrauenswürdigen Ausführungsumgebung (Trusted Execution Environment, TEE) ausgeführt wird. Protected Audience umfasst eine eingeschränktere Nutzung von TEEs für die Echtzeitdatensuche und aggregierte Berichterstellung.
  • In den Angeboten von TERN und Magnite PARRROT von NextRoll wurden die verschiedenen Rollen beschrieben, die Käufer und Verkäufer in der On-Device-Auktion einnehmen. Der Ablauf für Gebote und die Bewertung von Anzeigen in Protected Audience basiert auf dieser Arbeit.
  • Die TURTLEDOVE-Änderungen auf ergebnisbasierter und produktbezogener RTB House verbesserten das Anonymitätsmodell und die Personalisierungsfunktionen der On-Device-Auktion.
  • PARAKEET ist der Vorschlag von Microsoft für einen TURTLEDOVE-ähnlichen Anzeigendienst. Dieser basiert auf einem Proxyserver, der in einem TEE zwischen dem Browser und den Anzeigentechnologie-Anbietern ausgeführt wird, um Anzeigenanfragen zu anonymisieren und Datenschutzeigenschaften durchzusetzen. Protected Audience hat dieses Proxying-Modell nicht verwendet. Wir passen die JavaScript APIs für PARAKEET und Protected Audience an, um zukünftige Arbeitsschritte zu ermöglichen und die besten Funktionen beider Angebote weiter zu kombinieren.

Protected Audience verhindert noch nicht, dass das Werbenetzwerk einer Website lernt, welche Anzeigen einem Nutzer präsentiert werden. Wir gehen davon aus, dass die API im Laufe der Zeit angepasst wird, um sie sicherer zu machen.

Welche Browserkonfiguration ist verfügbar?

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

Wir aktualisieren die verfügbaren Einstellungen in Chrome auf der Grundlage von Tests und Feedback im Verlauf des Protected Audience-Vorschlags. Für die Zukunft planen wir, detailliertere Einstellungen zur Verwaltung der Protected Audience API und der 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.



Interagieren und Feedback geben

Support kontaktieren

Wenn Sie eine Frage zu Ihrer Implementierung, zur Demo oder zur Dokumentation stellen möchten:

Bei Programmfehlern und Problemen bei der Implementierung der Protected Audience API in Chrome: * Sehen Sie sich die für die API gemeldeten vorhandenen Probleme an. * Melden Sie ein neues Problem unter crbug.com/new.

Immer auf dem neuesten Stand bleiben

  • Wenn du über Statusänderungen in der API informiert werden möchtest, trete der Mailingliste für Entwickler bei.
  • Wenn Sie alle laufenden Diskussionen zur API genau verfolgen möchten, klicken Sie auf der Angebotsseite auf GitHub auf die Schaltfläche Ansehen. Dazu müssen Sie ein GitHub-Konto haben oder erstellen.
  • Abonnieren Sie den RSS-Feed [Progress in the Privacy Sandbox], um allgemeine Updates zur Privacy Sandbox zu erhalten.

Weitere Informationen


Foto von Ray Hennessy auf Unsplash.