Topics API für Mobilgeräte – Übersicht

Feedback geben

Die Topics API

Bei mobiler Werbung möchten Werbetreibende relevante Anzeigen schalten, die sich auf die Interessen der Nutzer beziehen. Wenn sich ein Nutzer beispielsweise für Informationen zum Kochen interessiert, sind Anzeigen zum Thema Kochen möglicherweise relevanter für ihn als Anzeigen, die nichts mit seinen Interessen zu tun haben.

Kontextbezogene Werbung basiert ausschließlich auf den Interessen, die sich aus den aktuellen Inhalten ergeben, die wiedergegeben werden und für die geworben wird. Einer der Vorteile der Topics API besteht darin, dass Apps, die für den Nutzer nützlich sind, aber möglicherweise nicht ohne Weiteres mit kontextbezogener Werbung monetarisiert werden können, Nutzern relevantere Anzeigen präsentieren als sonst. Dadurch werden die Apps finanziert, die der Nutzer verwendet.

Die Topics API leitet aus der App-Nutzung eines Nutzers grobe Signale zu seinen Interessen auf dem Gerät ab. Diese Signale, die als Themen bezeichnet werden, werden mit Werbetreibenden geteilt, um kontextabhängige und andere selbst erhobene Signale zu unterstützen, ohne dass einzelne Nutzer appübergreifend erfasst werden müssen.

Die Topics API wurde zur Unterstützung von Werbe-SDKs von Drittanbietern entwickelt, die normalerweise in mehreren Apps funktionieren. Diese Unterstützung besteht darin, dass einige App-übergreifende Interessen aufgezeigt werden, die diese SDKs normalerweise berücksichtigen würden. App-Entwickler erhalten keine zusätzlichen Informationen über ihre Nutzer.

Wichtige Konzepte

  • Ein Thema ist ein menschenlesbares Thema, das für diesen Nutzer von Interesse ist und Teil der Topics-Taxonomie ist.
  • Ein Thema wird von einem Aufrufer (einer App oder einem in der App verwendeten Drittanbieter-SDK) beobachtet, wenn der Aufrufer in den letzten drei Epochen eine Topics API-Anfrage von einer mit diesem Thema verknüpften App gestellt hat.
  • Eine Epoche ist ein Zeitraum der Themenberechnung, z. B. eine Woche.

Funktionsweise

Mit diesem Angebot möchte die Topics API Aufrufern grob formulierte Werbethemen bieten, die auf der App-Nutzung des Nutzers basieren. Diese Themen können als Ergänzung zu Kontextinformationen zu der App dienen, in der eine Anzeige ausgeliefert werden soll, und sie lassen sich kombinieren, um dem Nutzer die passende Werbung zu präsentieren.

Im Entwicklerleitfaden zur Topics API finden Sie Codebeispiele, die zeigen, wie Sie die Möglichkeit zum Abrufen von Themen für interessenbezogene Werbung einrichten. Hinweis: Die APIs sind noch nicht endgültig festgelegt.

Die Themen werden aus einer vordefinierten Open-Source-Taxonomie ausgewählt.

Die Plattform verwendet ein Klassifizierungsmodell, um Themen abzuleiten. Die Implementierung der Topics API und ihre Verwendung des Klassifikators werden Teil des Android Open Source-Projekts sein und werden im Laufe der Zeit immer besser.

Im folgenden Codebeispiel wird zur Veranschaulichung die Verwendung von Themen zum Abrufen einer interessenbezogenen Anzeige veranschaulicht. Die hier verwendeten APIs sind nicht endgültig.

// Initialize the Topics API.
…
topicsFuture = AdvertisingTopicsClient.getTopics();

// Retrieve Topics and use them in Ad request.
Futures.addCallback(
    topicsFuture,
    new FutureCallback<AdvertisingTopicsInfo>() {
        @Override
        public void onSuccess(@Nullable AdvertisingTopicsInfo topicsInfo) {
            // Sanitize Topics result.
            ...
            // Initialize ad request with Topics obtained.
            AdRequest adRequest = AdRequest.initialize(topicsInfo);
        }

        @Override
        public void onFailure(Throwable t) {
            // Handle error.
            ...
        }
});

Für ein besseres Verständnis der Funktionsweise des Klassifikatormodells können Sie mit dem Android Topics Classifier Colab testen, wie verschiedene App-Daten im System reagieren.

Zugriff auf Topics APIs erhalten

AdTech-Plattformen müssen sich für den Zugriff auf die Topics API registrieren. Weitere Informationen finden Sie unter Für Privacy Sandbox-Konto registrieren.

Details

  • Einmal pro Epoche (z.B. einmal pro Woche) werden die fünf Top-Themen des Nutzers anhand von On-Device-Informationen berechnet.

    • Wenn die Topics API aufgerufen wird, prüft die Plattform, ob der Anwendung, die die API aufruft, ein Thema zugewiesen ist. Wenn keine zugewiesenen Themen vorhanden sind, wird eines wie unten beschrieben ausgewählt und das ausgewählte Thema wird dieser Anwendung für den Rest dieser Epoche zugewiesen.
      • Mit einer Wahrscheinlichkeit von 95% wird ein Thema nach dem Zufallsprinzip aus der Liste der 5 wichtigsten Themen ausgewählt, die für diese Epoche berechnet wurden.
      • Mit einer Wahrscheinlichkeit von 5% wird ein Thema nach dem Zufallsprinzip aus der Taxonomie ausgewählt.
      • Ein Aufrufer kann angeben, dass er Themen abrufen möchte, ohne den Status zu ändern, indem er getTopics mit dem Parameter shouldRecordObservation = false aufruft. Das bedeutet, dass Themen zurückgegeben werden können, der Aufruf jedoch nicht in die wöchentliche Berechnung der Epoche einbezogen wird und die Liste der für den Aufrufer beobachteten Themen nicht aktualisiert wird.
    • Der Grund dafür, dass jede App eines von mehreren Themen erhält, besteht darin, dass den Apps unterschiedliche Themen zugeordnet werden. Dadurch ist es für Apps schwieriger, denselben Nutzer übergreifend zu korrelieren.
      • Beispiel: Anwendung A sieht Thema T1 für den Nutzer, Anwendung B jedoch Thema T2. Dadurch ist es für die beiden Apps schwieriger zu erkennen, ob diese Informationen demselben Nutzer zugeordnet sind.
  • Die Topics API gibt eine Liste mit bis zu drei Themen zurück, eines für jede der letzten drei Epochen.

    • Wenn du bis zu drei Themen angibst, haben selten genutzte Apps genügend Themen, um relevante Werbung zu finden, während häufig verwendete Apps maximal ein neues Thema pro Woche lernen.
    • Die zurückgegebenen Themeninformationen umfassen eine Themen-ID (int), die einem Eintrag in der Taxonomie entspricht, sowie eine Taxonomieversion und die Version eines Klassifikatormodells.
    • Nur Aufrufer, die beobachtet haben, dass der Nutzer in den letzten drei Epochen eine mit dem betreffenden Thema verknüpfte App verwendet hat, können das Thema empfangen.
    • Alle zurückgegebenen Themen entsprechen den Interessen des Nutzers. Sie können eines oder alle dieser Themen für personalisierte Werbung in Ihrer Anzeigenanfrage auswählen.
  • Nachdem der Anwendung, die die Topics API aufruft, ein Thema zugewiesen wurde, ermittelt die Plattform, ob der Aufrufer dieses Thema empfangen kann.

    • Nur Aufrufer, die die Nutzerinteraktionen einer mit dem betreffenden Thema verknüpften App in den letzten drei Epochen beobachtet haben, können das Thema empfangen.
    • Wenn der Aufrufer die API in der Vergangenheit für diesen Nutzer nicht in einer App zu diesem Thema aufgerufen hat, wird das Thema nicht in die Liste aufgenommen, die von der API zurückgegeben wird.
    • Wenn der Aufrufer in den letzten drei Epochen keine Themen erhalten hat, gibt die Topics API eine leere Liste zurück.

    Angenommen, der Nutzer hat sieben Apps auf dem Gerät installiert: A, B, C, D, E, F und G. Angenommen, die Themenklassifizierung für die App und die AdTech-SDKs in diesen Apps lautet wie folgt:

    App-Kampagnen Klassifizierung von Themen AdTech-SDK
    A T1, T5 ad-sdk1, ad-sdk2
    B T2 Anzeige-SDK2
    C T3, T6 ad-sdk3, ad-sdk4
    D T1, T4 Anzeige-SDK1
    E T5 ad-sdk4, ad-sdk5
    F T6 ad-sdk2, ad-sdk3, ad-sdk4
    G T7 Anzeige-SDK2
    • Ende von Woche 1: Die Topics API generiert die fünf Topthemen des Nutzers für diese Epoche.
    Top-Thema Anrufer, die mehr über das Thema erfahren können
    T1 ad-sdk1, ad-sdk2
    T2 Anzeige-SDK2
    T3 ad-sdk3, ad-sdk4
    T4 Anzeige-SDK1
    T5 ad-sdk1, ad-sdk2, ad-sdk4, ad-sdk5
    • Wenn in Woche 2 ein Aufrufer in einer App die API aufruft, enthält die zurückgegebene Themenliste nur Themen, zu denen sich der Aufrufer in der Spalte „Caller, die etwas über das Thema erfahren können“ für dieses Thema für diese Epoche befindet.
    • Das Verlaufsfenster, das bei der Berechnung der für jeden Aufrufer verfügbaren Themen berücksichtigt wird, umfasst 3 Epochen (oder 3 Wochen).
    • Es werden nur Themen verwendet, die mit Apps verknüpft sind, in denen die Topics API über Anzeigen-SDKs aufgerufen wird. Wenn also eine App keine Anzeigen-SDKs enthält, die die Topics API aufrufen, tragen die mit der App verknüpften Themen nicht zum Pool der Themen bei, auf die Anzeigen-SDKs zugreifen können.
    • Eine App kann die Topics API auch über neue Manifest- und XML-Elemente deklarativ deaktivieren, damit Anzeigen-SDKs die API für diese App nicht verwenden können. Themen, die mit deaktivierten Apps verknüpft sind, werden nicht zur wöchentlichen Themenberechnung berücksichtigt. Dieses Dokument wird aktualisiert, um zugehörige Implementierungsdetails zu enthalten.
  • Wenn nicht genügend App-Nutzung vorhanden ist, um fünf Themen abzuleiten, kann die Plattform Optionen wie das zufällige Generieren von verbleibenden Themen in Betracht ziehen.

Taxonomie

  • Im aktuellen Vorschlag umfasst die ursprüngliche Taxonomie zwischen einigen hundert und einigen Tausend Themen. Der erste Taxonomievorschlag wird in einer zukünftigen Aktualisierung dieses Dokuments veröffentlicht.
  • Diese Taxonomie wird von Menschen zusammengestellt, sodass sensible Themen nicht Teil der Taxonomie sind.
  • Diese Taxonomie wird auf die Kategorien von Anzeigen zugeschnitten, die in mobilen Apps unter Android ausgeliefert werden können.
  • Diese Taxonomie ist öffentlich verfügbar und kann sich ändern. Über die Schaltfläche „Feedback“ oben auf dieser Seite kannst du Vorschläge machen.

Themenklassifikator

Themen von Interesse werden aus einem Klassifikatormodell abgeleitet, das mit öffentlich verfügbaren App-Informationen (z. B. App-Name, Beschreibung und Paketname) trainiert wurde.

  • Wenn das Klassifikatormodell für die Inferenz zur Berechnung der Themen für eine bestimmte Epoche verwendet wird, verbleiben die verwendeten Signale auf dem Gerät. Zu diesen Signalen können installierte oder vor Kurzem verwendete Apps gehören. Sie kann später um weitere Signale erweitert werden.
  • Die ersten Modelle werden von Google trainiert. Die Trainingsdaten enthalten von Menschen zusammengestellte Labels für öffentlich verfügbare App-Informationen. Das Modell steht Apps kostenlos zur Verfügung, um zu prüfen, welchen Themen ihre App zugeordnet wird.
  • Die ersten Modelle werden mit öffentlich verfügbaren Informationen von Apps aus einer begrenzten Anzahl von App-Shops wie dem Google Play Store trainiert.
  • Es ist möglich, dass eine Anwendung mehr als einem Thema oder gar keinen Themen zugeordnet ist oder dass sie dem Themenverlauf des Nutzers nichts hinzufügt. Falls eine Anwendung mehr als einem Thema in der Taxonomie zugeordnet ist, wird die Anzahl der für diese Anwendung ausgewählten Themen auf die Top 3 beschränkt.

Nutzersteuerung

  • Das Design soll Nutzern die Möglichkeit geben, die Themen aufzurufen und zu entfernen, die mit ihrer App-Nutzung verbunden sind. Die Implementierung dieser Nutzersteuerungsfunktion ist noch in der Entwicklung und wird in einem zukünftigen Update enthalten sein.
  • Wenn der Nutzer eine App deinstalliert, die in den letzten drei Epochen zur Auswahl eines abgeleiteten Themas beigetragen hat, wird dieses Thema nicht aus der Liste der Themen entfernt, die für die letzten drei Epochen zurückgegeben wurden, damit keine Informationen zur Deinstallation offengelegt werden.

Um das Testen der Endnutzererfahrung zu erleichtern, können Sie auch einen In-App-Intent starten. So können Sie die UI mit den Einstellungen für Topics so aufrufen, wie sie einem Endnutzer angezeigt wird. Hier ein Beispiel für diesen Aufruf:

//Button that launches settings UI
private Button mSettingsAppButton;
private static final String RB_SETTING_APP_INTENT = "android.adservices.ui.SETTINGS";


//Does setup for button on screen that will launch settings UI to observe Topics
private void registerLaunchSettingsAppButton() {
    mSettingsAppButton.setOnClickListener(
        new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Context context = getApplicationContext();
                Intent activity2Intent = new Intent(RB_SETTING_APP_INTENT);
                activity2Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(activity2Intent);
            }
        });
}

AdTech-Plattform registrieren

Für den Zugriff auf die Topics API müssen alle Anzeigentechnologie-Plattformen (einschließlich der von Google) einen Registrierungsprozess durchlaufen.

App-Entwickler können festlegen, welche AdTech-Entwickler auf die Topics APIs zugreifen können, indem sie die Registrierungs-ID des AdTech-Entwicklers in das App-Manifest einfügen.

Verschlüsselung zurückgegebener Themen

Registrierte Anzeigentechnologie-Plattformen, die die Topics API aufrufen, müssen außerdem Verschlüsselungsschlüssel bereitstellen, damit die zurückgegebenen Themen nur für den Aufrufer lesbar sind.

Die Privacy Sandbox ruft diese Schlüssel vom bereitgestellten Endpunkt für Anzeigentechnologie ab. Als Best Practice empfehlen wir, die Schlüssel häufig, jedoch spätestens alle sechs Monate zu aktualisieren.

Bei der Privacy Sandbox werden Anzeigentechnologie-Anbieter aufgefordert, die Verfügbarkeit des von der Anzeigentechnologie angegebenen Endpunkts bei der Registrierung zu bestätigen. Weitere Informationen zu den Maßnahmen, die für aktuelle und neu registrierte AdTech-Unternehmen erforderlich sind, finden Sie im Entwicklerleitfaden für die Registrierung.

Verschlüsselungsdetails

Mit der Einführung der Verschlüsselung generieren Aufrufe von „GetTopics()“ jetzt eine Antwort mit einer Liste von „EncryptedTopic“-Objekten. Das Entschlüsseln dieser Ergebnisse führt zu einem Objekt mit demselben JSON-Format wie im vorherigen Topic-Objekt.

Die Topics API unterstützt die One Shot-Implementierung von HPKE (Hybrid Public Key Encryption). Wir gehen davon aus, dass der registrierte Aufrufer einen öffentlichen 32-Bit-Schlüssel auf dem öffentlichen Verschlüsselungs-URL-Endpunkt hostet, der bei der Registrierung angegeben wurde. Diese Schlüssel müssen Base64-codiert sein.

EncryptedTopic-Objekte haben drei Felder. Die Liste der zurückgegebenen Themen kann mithilfe des entsprechenden privaten Schlüssels für den öffentlichen Schlüssel abgerufen werden.

Für Entwicklungszwecke können Sie die Verschlüsselung der Topics API testen, indem Sie die Registrierungsprüfung deaktivieren. Dadurch wird die API gezwungen, den öffentlichen Testschlüssel zum Verschlüsseln Ihrer Antworten zu verwenden. Sie können die verschlüsselten Themen mit dem entsprechenden privaten Schlüssel entschlüsseln.