Using the Topics API
Warnung: Dieses Feature wird derzeit von zwei Browserherstellern abgelehnt. Siehe den Abschnitt Standardpositionen unten für Details zur Ablehnung.
Hinweis: Ein Registrierungsprozess ist erforderlich, um die Topics-API in Ihren Anwendungen zu verwenden. Siehe den Abschnitt Registrierung für Details, welche Unterfunktionen durch die Registrierung beschränkt sind.
Diese Seite erklärt, wie die Topics-API funktioniert und wie sie verwendet werden kann, um eine Lösung für interessenbasierte Werbung (IBA) zu erstellen.
Überblick auf hoher Ebene
Angenommen, wir haben eine Werbetechnologieplattform, ad-tech1.example
, die Anzeigen über <iframe>
s auf den folgenden Publisher-Websites einbettet:
yoga.example
knitting.example
football.example
Wenn der <iframe>
-Inhalt von ad-tech1.example
ein Feature, das die Topics-API aktiviert, implementiert, wird der Browser beim Laden jeder dieser Seiten:
-
Interessenthemen aus der Site-URL ableiten. Die Themen werden aus einer Standard-Taxonomie übernommen; für die obigen URL-Beispiele wären das "Fitness", "Faser- & Textilkunst" und "Fußball".
-
Die Themen als beobachtet markieren, was das Aufzeichnen eines Themenverlaufseintrags für jedes in einem privaten Themenverlaufs-Speicher bedeutet. Jeder Themenverlaufseintrag enthält folgende Informationen:
- Eine Dokument-ID (d.h. ein Bezeichner für die aktuelle Seite).
- Eingabedaten für die Themenberechnung (d.h. den Hostnamen der Seite).
- Die Zeit (seit dem Unix-Epoch), als die Seite erstmals beobachtet wurde.
- Die Domain(s), auf denen das Thema beobachtet wurde (bekannt als Themenanruferdomains).
Auswahl von Interessenthemen, um die Anzeigenauswahl zu beeinflussen
Hinweis: Unterschiedliche Browserimplementierungen können Themen auf unterschiedliche Weise auswählen. Der untenstehende Text basiert darauf, wie Chrome derzeit Themen auswählt, zu Demonstrationszwecken.
Der Browser wird fortlaufend:
-
Verfolgen, wie oft der Benutzer jedes Thema während jeder neuen Epoche beobachtet. Eine Epoche ist standardmäßig eine Woche lang, kann aber zu Testzwecken geändert werden (siehe Testhinweise).
Chrome verteilt jedes der 22 Wurzeltopics (ohne Vorfahren) aus der Taxonomie auf einen von zwei Eimern, die höhere oder Standardnutzen für das gesamte Werbetechnologie-Ökosystem anzeigen. Alle Nachkommen der Wurzeltopics erben die gleiche Eimerzuordnung von ihrem Elternteil. Die Zuordnung der Wurzeltopics zu Eimern basiert auf Eingaben über den Nutzen, die Google von Unternehmen im gesamten Ökosystem erhalten hat.
-
Zum Ende jeder Epoche die Top-Themen für jeden Benutzer auswählen:
- Chrome wandelt die Hostnamen der Anruferdomain aus dem Browserverlauf des Benutzers in Themen um.
- Diese Themen werden zuerst nach Eimer und dann nach Frequenz sortiert (wie oft sie in einem Hostnamen übereinstimmten). Das heißt, wenn zwei Themen im selben Eimer sind, aber unterschiedliche Frequenzen haben, wird das Thema mit der höheren Frequenz höher sortiert.
- Chrome wählt die fünf Top-Themen als die Top-Themen des Benutzers für diese Epoche aus, die mit Anrufern geteilt werden können.
-
Die Top-Themen werden nur dann an
ad-tech1.example
zurückgegeben, wennad-tech1.example
in der Liste der Anruferdomains für jedes Thema erscheint, wie in den Themenverlaufseinträgen gespeichert.Hinweis: Anfangs werden keine Themen zurückgegeben, sodass das
<iframe>
wahrscheinlich eine Standardanzeige ohne Zielgruppe anzeigt. Sobald jedoch das Ende der ersten Epoche erreicht ist, wird die API beginnen, Themen zurückzugeben, undad-tech1.example
kann beginnen, relevantere Anzeigen basierend auf den beobachteten Themen für den aktuellen Benutzer anzuzeigen.
ad-tech1.example
wählt dann eine relevante Anzeige aus, die dem Benutzer basierend auf den zurückgegebenen Themen serviert wird.
Welche API-Funktionen aktivieren die Topics-API?
Die folgenden Funktionen erfüllen einen doppelten Zweck — sie geben die Top-Themen des Benutzers an den Anrufer zurück und veranlassen den Browser, den aktuellen Seitenbesuch als vom Anrufer beobachtet zu protokollieren, sodass der Hostname der Seite später in der Themenberechnung verwendet werden kann. Dazu müssen sie in einem aufrufenden Werbetechnologie-<iframe>
enthalten sein; das <iframe>
muss dann auf den Seiten eingebettet werden, auf denen Sie Themen beobachten möchten.
-
Sie können eine
browsingTopics: true
-Option im Optionsobjekt einesfetch()
-Aufrufs an die Werbetechnologie-Plattform angeben. -
Sie könnten auch
browsingTopics: true
in das Optionsobjekt einesRequest()
-Konstruktoraufrufs übergeben und das resultierendeRequest
-Objekt in denfetch()
-Aufruf übergeben. -
Sie können ein
browsingtopics
-Attribut auf dem<iframe>
zur gleichen Zeit oder bevor Sie dassrc
-Attribut setzen, um die Quelle zu laden. Dies könnte durchgeführt werden:- Deklarativ im HTML:
html<iframe browsingtopics src="ad-tech1.example"> ... </iframe>
- Programmgesteuert, indem Sie die entsprechende
HTMLIFrameElement.browsingTopics
-Eigenschaft auftrue
setzen:
jsconst iframeElem = document.querySelector("iframe"); iframeElem.browsingTopics = true;
Wenn die Anfrage, die mit einer der obigen Funktionen verbunden ist, gesendet wird:
-
Ein
Sec-Browsing-Topics
-Header wird zusammen mit der Anfrage gesendet, der die Top-Thema(en) für den aktuellen Benutzer enthält. -
Der Werbetechnologie-Server wählt eine relevante Anzeige zur Anzeige im
<iframe>
basierend auf diesen Themen und sendet die erforderlichen Daten, um sie in der Antwort anzuzeigen. -
Ein
Observe-Browsing-Topics
-Header sollte in der Antwort auf die Anfrage gesetzt werden — dies bewirkt, dass der Browser den aktuellen Seitenbesuch als von dem aufrufenden Werbetechnologie-Anbieter beobachtet aufzeichnet, sodass das/die zugeordnete(n) Thema(en) in einem Themenverlaufseintrag gespeichert und anschließend bei der Themenauswahl verwendet werden.Hinweis: Es ist wichtig, klarzustellen, dass dies nicht die im
Sec-Browsing-Topics
-Header gesendeten Top-Themen als beobachtet aufzeichnet. Es zeichnet die von der aufrufenden Site-URL abgeleiteten Themen (d.h. die Site, auf der das Werbetechnologie-<iframe>
eingebettet ist) als beobachtet auf.
Die browsingTopics()
-Methode
Alternativ kann das eingebettete <iframe>
Document.browsingTopics()
aufrufen, um die aktuellen Top-Themen eines Benutzers zurückzugeben, die dann in einer nachfolgenden Fetch-Anfrage an die Werbetechnologie-Plattform zurückgegeben werden können. Dies hängt nicht von den HTTP-Headern ab, ist jedoch etwas weniger performant. Es wird empfohlen, eine der oben aufgeführten HTTP-Header-Methoden zu verwenden und browsingTopics()
nur in Situationen zu verwenden, in denen die Header nicht geändert werden können.
Hinweis:
Da die browsingTopics()
-Methode nicht von den HTTP-Headern abhängt, wird der Observe-Browsing-Topics
-Header nicht verwendet, um die Themen als beobachtet zu setzen oder Themenverlaufs-Einträge zu aktualisieren; der Browser erledigt dies automatisch, wenn die Methode aufgerufen wird.
Private Themensätze
Ein Anrufer kann nur auf Themen zugreifen, die sie selbst für einen Benutzer beobachtet haben — und nicht auf Themen, die von anderen Anrufern beobachtet wurden. Zum Beispiel:
- Wenn die
ad-tech1.example
-Plattform ein<iframe>
auftennis.example
eingebettet hat, das eine Topics-API-Funktion beinhaltet, würden sie Themen wie "Sport" und "Tennis" für einen Benutzer beobachten, der diese Seite besucht. - Wenn eine andere Werbetechnologie-Plattform,
ad-tech2.example
, ein Topics-API-<iframe>
aufgardening.example
eingebettet hat, würden sie das Thema "Gartenarbeit" beobachten.
Diese Werbetechnologie-Plattformen erhalten nur Themen für einen Benutzer, die sie selbst beobachtet haben. In diesem Beispiel wird ad-tech1.example
nicht "Gartenarbeit" erhalten und ad-tech2.example
nicht "Tennis".
Mit anderen Worten, Anrufer wie Werbetechnologie-Plattformen erhalten nur Themen für Seiten, auf denen sie präsent sind. Wichtiger ist, dass die aufgezeichneten Interessenthemen die einzigen Informationen sind, auf die über diese API zugegriffen werden kann — im Gegensatz zu Tracking-Cookies kann keine andere Information durchsickern.
Beispiele
Verwendung von Document.browsingTopics()
// Get an array of topics for this user
const topics = await document.browsingTopics();
// Request an ad creative
const response = await fetch("https://ads.example/get-creative", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(topics),
});
// Get the JSON from the response
const creative = await response.json();
// Display ad
Weitergabe der browsingTopics
-Option in fetch()
// Request an ad creative
const response = await fetch("https://ads.example/get-creative", {
browsingTopics: true,
});
// Get the JSON from the response
const creative = await response.json();
// Display ad
Einbeziehung des browsingtopics
-Attributs in ein <iframe>
<iframe browsingtopics src="ad-tech1.example"> ... </iframe>
Vollständige Beispiele
- Topics API-Demo: Demonstriert, wie
document.browsingTopics()
-Aufrufe verwendet werden können, um Themen zu beobachten und dann darauf zuzugreifen (Quellcode ansehen). - Topics API-Header-Demo: Demonstriert, wie eine
fetch()
-Anfrage mit einemSec-Browsing-Topics
-Header verwendet werden kann, um Themen zu beobachten und dann darauf zuzugreifen (Quellcode ansehen).
Testhinweise
Chrome
Die Standardlänge einer Epoche zum Beobachten von Themen beträgt eine Woche, was viel zu lang ist, um Code zu testen, der die Topics-API verwendet. Um dies zu Testzwecken zu verkürzen, können Sie in Chrome den Browser mit einem Feature-Flag wie dem folgenden öffnen:
BrowsingTopicsParameters:time_period_per_epoch/15s/max_epoch_introduction_delay/3s
Weitere Informationen dazu finden Sie unter Chromium mit Befehlszeilen-Schaltern ausführen.
Sie können Ihren Topics-API-Code auch lokal ohne Registrierung testen, indem Sie das folgende Chrome-Entwickler-Flag aktivieren:
chrome://flags/#privacy-sandbox-enrollment-overrides
Siehe auch
- Topics API auf privacysandbox.google.com (2023)