Im Designvorschlag für Gebots- und Auktionsdienste für Android werden die Ausführung und der Datenfluss von Auktionen auf Android-Geräten mit dem Trusted Bidding- und Auktionsserver beschrieben. Damit Daten bei der Übertragung nur von datenschutzfreundlichen APIs und vertrauenswürdigen Servern verarbeitet werden, werden sie zwischen Client und Server mithilfe der bidirektionalen hybriden Public-Key-Verschlüsselung verschlüsselt.
Damit die Auktion wie oben beschrieben durchgeführt werden kann, muss die Anzeigentechnologie des Verkäufers auf dem Gerät die folgenden Schritte ausführen:
- Daten für die Serverauktion erfassen und verschlüsseln
- Anfrage an einen nicht vertrauenswürdigen Verkäuferservice senden
- Antwort von einem nicht vertrauenswürdigen Verkäuferdienst erhalten
- Antwort der Protected Audience-Auktion entschlüsseln und Auktionsergebnis abrufen
Im Rahmen von Protected Audience werden zwei neue APIs eingeführt, um Serverauktionen zu unterstützen:
- Die
getAdSelectionData
API erfasst Daten für die Serverauktion und generiert eine verschlüsselte Nutzlast mit Auktionsdaten. Der Bidding- und Auktionsserver verwendet diese Nutzlast, um eine Auktion durchzuführen, das Auktionsergebnis zu generieren und zurückzugeben. - On-Device-Werbetechnologie-Clients können die
persistAdSelectionResult
API aufrufen, um das von der Serverauktion generierte Ergebnis zu entschlüsseln und die Render-URL der Gewinneranzeige abzurufen.
Die Anzeigentechnologie des Verkäufers auf dem Gerät muss Folgendes integrieren und erstellen, um eine Auktion durchzuführen:
- Daten für den Verkäufer der Serverauktion erfassen und verschlüsseln: Die Anzeigentechnologie sollte die
getAdSelectionData
API aufrufen, um die verschlüsselte Nutzlast abzurufen. - Send request to Untrusted Seller Service Send: Eine
HTTP POST
- oderPUT
-Anfrage, die die von dergetAdSelectionData
API generierte verschlüsselte Nutzlast an den nicht vertrauenswürdigen Verkäuferdienst und die vom nicht vertrauenswürdigen Verkäuferdienst zum Generieren von kontextbezogenen Ergebnissen erforderlichen Daten enthält. - Antwort vom nicht vertrauenswürdigen Verkäuferdienst erhalten: Die Antwort des nicht vertrauenswürdigen Verkäuferdienstes enthält das verschlüsselte Ergebnis der Protected Audience-Auktion und das Ergebnis der kontextbezogenen Auktion.
- Antwort der Protected Audience-Auktion entschlüsseln und Auktionsergebnis abrufen:Um das Ergebnis der Protected Audience-Auktion zu entschlüsseln, sollte die Anzeigentechnologie des Verkäufers die
persistAdSelectionResult
API aufrufen. Anhand des vonpersistAdSelectionResult
generierten Ergebnisses können Anbieter von Anzeigentechnologien feststellen, ob die Auktion von einer kontextbezogenen Anzeige oder einer Anzeige für geschützte Zielgruppen gewonnen wurde, und gegebenenfalls den URI der Gewinneranzeige für geschützte Zielgruppen.
Für Serverauktionen unterstützte Funktionen
Wir möchten alle Funktionen unterstützen, die derzeit für On-Device-Auktionen verfügbar sind. Die Zeitleiste für die Unterstützung dieser Funktionen bei Serverauktionen sieht so aus:
On-Device-Auktion |
Server-Auktion |
|||
Entwicklervorschau |
Beta |
Entwicklervorschau |
Beta |
|
Berichte zu Gewinnen auf Ereignisebene |
Q1 '23 |
3. Quartal 2023 |
– |
4. Quartal 2023 |
Q1 '23 |
4. Quartal 2023 |
– |
Q1 24 |
|
2. Quartal 2023 |
3. Quartal 2023 |
– |
4. Quartal 2023 |
|
Kontextbezogene Anzeigen zur Filterung an den Workflow für die Anzeigenauswahl weitergeben |
2. Quartal 2023 |
1. Quartal 2024 |
– |
– |
2. Quartal 2023 |
3. Quartal 2023 |
– |
4. Quartal 2023 |
|
3. Quartal 2023 |
4. Quartal 2023 |
– |
4. Quartal 2023 |
|
Abrechnung ohne CPM |
3. Quartal 2023 |
4. Quartal 2023 |
||
|
3. Quartal 2023 |
4. Quartal 2023 |
3. Quartal 2023 |
4. Quartal 2023 |
Open Bidding-Vermittlung |
– |
– |
– |
1. Quartal 2024 |
2. Quartal 2023 |
1. Quartal 2024 |
– |
1. Quartal 2024 |
|
Währungsverwaltung |
– |
– |
– |
1. Quartal 2024 |
K-anon-Integration |
– |
1. Quartal 2024 |
– |
1. Quartal 2024 |
Private Aggregation API |
– |
– |
– |
3. Quartal 2024 |
Serverauktionen mit Protected Audience APIs ausführen
Im Entwicklervorschau-Track stellt AdSelectionManager zwei neue APIs bereit: getAdSelectionData
und persistAdSelectionResult
. Mit diesen APIs können AdTech-SDKs in Gebot- und Auktionsserver eingebunden werden.
Daten für eine Serverauktion erfassen und verschlüsseln
Die getAdSelectionData
API generiert die erforderliche Eingabe für Gebots- und Auktionskomponenten wie BuyerInput
und ProtectedAudienceInput
und verschlüsselt die Daten, bevor das Ergebnis für den Aufrufer verfügbar gemacht wird. Um Datenlecks zwischen Apps zu verhindern, enthalten diese Daten Informationen von allen Käufern, die sich auf dem Gerät befinden. Weitere Informationen zu dieser Entscheidung finden Sie im Abschnitt Datenschutzaspekte. Strategien zur Optimierung finden Sie im Abschnitt Größe.
Damit Sie auf die API zugreifen können, muss der Zugriff auf die Protected Audience API aktiviert und die Berechtigung ACCESS_ADSERVICES_CUSTOM_AUDIENCE
im Manifest des Aufrufers definiert sein.
public class AdSelectionManager {
public void getAdSelectionData(
GetAdSelectionDataRequest getAdSelectionDataRequest,
Executor executor,
OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver) {}
}
GetAdSelectionDataRequest
- Der Aufrufer muss das Feld „
seller
“ in der Anfrage festlegen, da damit vor der Bearbeitung der Anfrage die Registrierung geprüft wird. - Das Feld
coordinatorOriginUri
ist optional.- Wenn festgelegt, sollte dies dem Schema, dem Hostnamen und dem Port der Koordinator-URL entsprechen, die beim Bereitstellen des B&A-Servers des Verkäufers konfiguriert wurde.
- Der Koordinator muss in der Liste der zugelassenen Koordinatoren aufgeführt sein:
Anbieter URI URI-Ursprung Standard Google Cloud https://publickeyservice.pa.gcp.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys https://publickeyservice.pa.gcp.privacysandboxservices.com Ja Amazon Web Services https://publickeyservice.pa.aws.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys https://publickeyservice.pa.aws.privacysandboxservices.com Nein - Wenn kein Koordinator-Ursprung angegeben ist, wird der Standardkoordinator verwendet.
- Es ist zwar sehr unwahrscheinlich, dass sich die URL des Koordinators ändert, aber es wird dringend empfohlen, einen Mechanismus zur dynamischen Verwaltung dieser URL zu implementieren. So können zukünftige Änderungen an der URL berücksichtigt werden, ohne dass eine neue SDK-Version erforderlich ist.
public class GetAdSelectionDataRequest {
public setSeller(AdTechIdentifier seller);
public setCoordinatorOriginUri(Uri coordinatorOriginUri)
}
Nach der Validierung der Anfrage werden die Käuferdaten auf dem Gerät in BuyerInput
und ProtectedAudienceInput
zusammengeführt. Das endgültige Nutzlastobjekt wird dann mithilfe der bidirektionalen Hybrid Public Key Encryption verschlüsselt.
GetAdSelectionDataOutcome
GetAdSelectionDataOutcome
wird als Ergebnis der getAdSelectionData
API generiert. Es enthält folgende Elemente:
adSelectionId
: eine nicht transparente Ganzzahl, um diese Aufrufung vongetAdSelectionData
zu identifizieren. Der AdTech-Client sollte diesenadSelectionId
-Wert speichern, da er als Verweis auf dengetAdSelectionData
-Aufruf dient. Diese Kennung ist für diepersistAdSelectionResult
API erforderlich, um das Auktionsergebnis vom Bidding- und Auktionsserver zu entschlüsseln. Sie ist auch für diereportImpression
undreportEvent
APIs erforderlich.adSelectionData
: Dies sind die verschlüsselten Auktionsdaten, die vom Bidding- und Auktionsserver zum Ausführen von Auktionen benötigt werden. Diese Methode enthält:- Gefilterte Daten zu benutzerdefinierten Zielgruppen basierend auf Frequency Capping, App-Installationsfiltern und Anforderungen an Serverauktionen für benutzerdefinierte Zielgruppen.
- In einer zukünftigen Version werden Daten zu App-Installationen enthalten sein.
public class GetAdSelectionDataOutcome {
Public getAdSelectionId(long adSelectionId);
public byte[] getAdSelectionData();
}
Fehler, Ausnahmen und Fehlerbehandlung
Wenn die Generierung der Daten für die Anzeigenauswahl aus bestimmten Gründen wie ungültigen Argumenten, Zeitüberschreitungen oder übermäßigem Ressourcenverbrauch nicht erfolgreich abgeschlossen werden kann, enthält der OutcomeReceiver.onError()
-Callback einen AdServicesException
mit den folgenden Verhaltensweisen:
- Wenn
getAdSelectionData
mit ungültigen Argumenten gestartet wird, gibtAdServicesException
die IllegalArgumentException als Ursache an. - Bei allen anderen Fehlern wird ein
AdServicesException
mit einerIllegalStateException
als Ursache zurückgegeben.
Anfrage an einen nicht vertrauenswürdigen Verkäuferdienst senden
Mit AdSelectionData
kann das On-Device-SDK eine Anfrage an den Werbedienst des Verkäufers senden, indem die Daten in eine POST
- oder PUT
-Anfrage aufgenommen werden:
fetch('https://www.example-ssp.com/auction', {
method: "PUT",
body: data,
...
})
Das On-Device-SDK ist für die Codierung dieser Daten verantwortlich. Wir empfehlen, eine platzsparende Lösung zu verwenden, z. B. das Senden der Anfrage an den Anzeigendienst des Verkäufers als multipart/form-data.
Antwort von einem nicht vertrauenswürdigen Verkäuferdienst erhalten
Wie im Erläuterungsartikel zu Gebot- und Auktionsservern beschrieben, sendet der nicht vertrauenswürdige Verkäuferdienst, wenn er die Anfrage erhält, Anfragen an Partnerkäufer für kontextbezogene Anzeigen.
Der nicht vertrauenswürdige Verkäuferdienst leitet die verschlüsselten adSelectionData
und AuctionConfig
an den SellerFrontEnd-Dienst des Bidding- und Auktionsservers weiter, der in einem TEE ausgeführt wird.
Wenn die Protected Audience-Auktion abgeschlossen ist, verschlüsselt der SellerFrontEnd-Dienst das Auktionsergebnis und gibt es als Antwort an den nicht vertrauenswürdigen Verkäuferdienst zurück.
Der nicht vertrauenswürdige Verkäuferdienst sendet eine Antwort an das Gerät, die eine kontextbezogene Anzeige und / oder ein verschlüsseltes Ergebnis der Protected Audience-Auktion enthält.
Nach Erhalt der Antwort kann der Anzeigentechnologiecode des Verkäufers auf dem Gerät entscheiden, nur die kontextbezogene Anzeige in der Antwort zu verwenden. Wenn er der Meinung ist, dass das Ergebnis der Protected Audience API einen zusätzlichen Wert hat, kann er es durch Aufrufen der PersistAdSelectionResult
API entschlüsseln.
PersistAdSelectionResult API
Um das Protected Audience-Ergebnis zu entschlüsseln, kann die Anzeigentechnologie des Verkäufers die zweite Protected Audience API persistAdSelectionResult
aufrufen. Die API entschlüsselt das Ergebnis und gibt ein AdSelectionOutcome
zurück, dasselbe Objekt, das heute von einer On-Device-Auktion zurückgegeben wird.
Um auf die API zuzugreifen, muss der Aufrufer den Zugriff auf die Protected Audience API aktivieren und die Berechtigung ACCESS_ADSERVICES_CUSTOM_AUDIENCE
in seinem Manifest definieren.
public void persistAdSelectionResult(
PersistAdSelectionResultRequest persistAdSelectionResultRequest,
Executor executor,
OutcomeReceiver<AdSelectionOutcome, Exception> receiver) {}
PersistAdSelectionResultRequest
Der Aufrufer muss in der Anfrage Folgendes festlegen:
public final class PersistAdSelectionResultRequest {
Public setAdSelectionId(long adSelectionId);
public setSeller(AdTechIdentifier seller);
public setAdSelectionResult(byte[] adSelectionResult);
}
adSelectionId
: Die opaque Kennung, die durch dengetAdSelectionData
-Aufruf generiert wurde und deren Ergebnis der Aufrufer entschlüsseln möchte.seller
: Die AdTech-ID des Verkäufers muss in der Anfrage festgelegt sein, damit vor der Bearbeitung der Anfrage die Registrierung geprüft werden kann.adSelectionResult
: Das verschlüsselte Auktionsergebnis, das vom Bidding- und Auction-Server generiert wurde und das der Aufrufer entschlüsseln möchte.
Antwort „AdSelectionOutcome“
Wenn es einen Protected Audience-Gewinner gibt, gibt AdSelectionOutcome
die URI für das Rendern der Gewinneranzeige zurück.Sobald adSelectionResult
entschlüsselt wurde, werden die Berichtsdaten intern gespeichert. Der OutcomeReceiver.onResult()
-Callback gibt ein AdSelectionOutcome
zurück, das Folgendes enthält:
URI
: Wenn es eine ausgelieferte Protected Audience-Anzeige gibt, wird eine Anzeigen-Render-URL für diese Anzeige zurückgegeben. Wenn es keinen Gewinner für die Zielgruppe mit geschützten Zielgruppen gibt, wird „Uri.EMPTY“ zurückgegeben.adSelectionId
: DieadSelectionId
, die mit dieser Serverauktion verknüpft ist.
Fehler, Ausnahmen und Fehlerbehandlung
Wenn die Generierung der Daten für die Anzeigenauswahl aus bestimmten Gründen wie ungültigen Argumenten, Zeitüberschreitungen oder übermäßigem Ressourcenverbrauch nicht erfolgreich abgeschlossen werden kann, enthält der OutcomeReceiver.onError()
-Callback einen AdServicesException
mit den folgenden Verhaltensweisen:
- Wenn
getAdSelectionData
mit ungültigen Argumenten gestartet wird, gibtAdServicesException
IllegalArgumentException
als Ursache an. - Bei allen anderen Fehlern wird ein
AdServicesException
mit einerIllegalStateException
als Ursache zurückgegeben.
Datenschutzaspekte
adSelectionData
wird verschlüsselt, damit nur PPAPI und die vertrauenswürdigen Server auf die Daten zugreifen können.
Trotz Verschlüsselung kann es aufgrund der Größe von adSelectionData
zu Datenlecks kommen. Die Größe von adSelectionData
kann aus folgenden Gründen variieren:
- Änderungen an
CustomAudience
-Daten auf dem Gerät - Änderungen an der
CustomAudience
-Filterlogik - Änderungen an der Eingabe für
getAdSelectionData
-Anrufe.
Eine Änderung der Größe von adSelectionData
kann zum Generieren einer appübergreifenden Kennung verwendet werden, wie in der Diskussion zum 1-Bit-Leak erwähnt. Viele Maßnahmen, die für ein 1-Bit-Leak gelten, gelten auch hier.
Um diese Lecks zu verwalten, planen wir, für alle Aufrufe der getAdSelectionData
API dieselbe adSelectionData
zu generieren. Bei den ersten Releases werden alle CustomAudiences
auf dem Gerät zum Erstellen von adSelectionData
verwendet und die verschlüsselte Nutzlast wird aufgefüllt, um Größenabweichungen zu verbergen. Außerdem wird der Einfluss von GetAdSelectionData
-Eingabeparametern auf die generierten adSelectionData
-Werte eingeschränkt.
Wenn jedoch dieselbe adSelectionData
für alle Anzeigentechnologien mit allen On-Device-Auktionsdaten generiert wird, entsteht eine große Nutzlast, die jetzt bei jedem Aufruf an den AdTech-Server übertragen werden muss. Wenn alle benutzerdefinierten Zielgruppen auf dem Gerät verwendet werden, um die Auktionsnutzlast zu generieren, kann das System von böswilligen Entitäten missbraucht werden. Diese Bedenken werden unten in den Abschnitten Größenoptimierungen und Maßnahmen zur Missbrauchsbegrenzung behandelt.
Größenoptimierungen
Das AdTech-Client-SDK soll die verschlüsselten Bytes von adSelectionData
in den HTTP PUT/POST
-Kontextaufruf an den AdTech-Server verpacken. Um die Latenz und die Kosten der Rundreisezeit zu senken, muss die Größe von adSelectionData
so weit wie möglich reduziert werden, ohne die Nutzbarkeit zu beeinträchtigen.
Wir planen, die folgenden Optimierungen in den kommenden Releases zu untersuchen und gegebenenfalls einzuführen, um die Größe von adSelectionData
zu reduzieren:
Nutzlast, die in einer festen Bucket-Größe mit Padding generiert wird: Um die Datenlecks durch Größenabweichungen zu minimieren und gleichzeitig kleinere Nutzlasten zu ermöglichen, empfehlen wir die Verwendung von Bucketing mit fester Größe für die generierte Nutzlast. Wenn Sie die Anzahl der Buckets klein halten, z. B. auf 7, führt dies zu weniger als 3 Bit Leckage-Entropie pro Aufruf von
getAdSelectionData
.Wenn die On-Device-Daten die maximale Bucket-Größe überschreiten, werden die folgenden Strategien wie Prioritätswerte verwendet, um zu entscheiden, welche Daten gelöscht werden.
Käuferkonfiguration: Wir prüfen, ob Käufer eine Payload-Konfiguration pro Käufer einrichten können. Diese Konfiguration ist nützlich, um zu ermitteln, an welchen Auktionen ein Käufer teilnehmen möchte. Wenn möglich, kann die Anzeigentechnologie eines Käufers während der Registrierung einen Endpunkt registrieren, von dem Protected Audience die Nutzlastkonfiguration täglich abrufen kann. Alternativ können datenschutzfreundliche APIs eine API bereitstellen, mit der Anzeigentechnologie-Anbieter für Käufer diesen Endpunkt registrieren können.
Anhand dieser Konfiguration wird dann der Beitrag eines Käufers zu den für jede
getAdSelectionData
-Anfrage generiertenadSelectionData
bewertet.Mit der Konfiguration der Käufernutzlast können Käufer Folgendes angeben:
- Zulässige Verkäuferliste: Käufer-CustomAudiences werden der Nutzlast nur hinzugefügt, wenn der
getAdSelectionData
-Aufruf von einem Verkäufer auf der Zulassungsliste initiiert wird. Wir würden die Nutzlastkonfiguration täglich abrufen, um die Zulassungsliste auf dem neuesten Stand zu halten. - Größenbeschränkung pro Verkäufer: Käufer können eine Größenbeschränkung pro Verkäufer angeben, um die Datengröße zu bestimmen, die in der Nutzlast gesendet werden soll, wenn eine Auktion von einem bestimmten Verkäufer initiiert wird. Das ist nützlich, wenn ein Käufer mehr Ressourcen für die Verarbeitung von Auktionsdaten bestimmter Verkäufer aufwenden möchte. Der SellerFrontendService leitet nur käuferspezifische Daten an jeden BuyerFrontendService weiter. Durch Festlegen eines Größenlimits pro Verkäufer kann ein Käufer die Menge der Daten, die vom BuyerFrontendService seines Bidding- und Auktionsservers für Auktionen verarbeitet werden, explizit steuern.
- Zulässige Verkäuferliste: Käufer-CustomAudiences werden der Nutzlast nur hinzugefügt, wenn der
Verkäuferkonfiguration: Wir prüfen die Machbarkeit einer Auktionskonfiguration pro Verkäufer, mit der Verkäufer Auktionsparameter definieren können, um die Nutzlastgröße und die Auktionsteilnehmer zu steuern. Wenn möglich, kann die Anzeigentechnologie des Verkäufers während der Registrierung den Endpunkt angeben, von dem Protected Audience die Auktionskonfiguration pro Verkäufer in regelmäßigen Abständen abrufen kann. Anhand dieser Konfiguration werden dann die Zusammensetzung und Limits von
adSelectionData
für jedegetAdSelectionData
-Anfrage bestimmt.Ähnlich wie bei der Käuferkonfiguration können Verkäufer mit einer Verkäuferkonfiguration angeben, welche Käufer sie in einer Auktion erwarten, und Limits für den Beitrag pro Käufer zur Nutzlastgröße festlegen.
In der Auktionskonfiguration können Verkäufer Folgendes angeben:
- Zulässige Käuferliste: Bei Auktionen, die vom jeweiligen Verkäufer initiiert werden, können nur die Käufer auf der Zulassungsliste benutzerdefinierte Zielgruppen für die Auktion einreichen. Die Auktionskonfiguration müsste täglich aktualisiert werden, damit die Zulassungsliste mit der serverseitigen Zulassungsliste der Käufer übereinstimmt.
- Größenbeschränkung pro Käufer: Verkäufer können eine Größenbeschränkung pro Käufer angeben, um die Datenmenge zu regulieren, die von jedem Käufer in die an SellerFrontendService gesendete Nutzlast hochgeladen wird. Wenn der Käufer das Limit für die Größe pro Käufer überschreitet, wird die in der Käufernutzlastkonfiguration festgelegte Priorität für benutzerdefinierte Zielgruppen verwendet, um die Daten innerhalb der erwarteten Limits zu halten.
- Priorität pro Käufer: Verkäufer können eine Priorität pro Käufer festlegen. Anhand der Käuferpriorität wird ermittelt, welche Käuferdaten in der Nutzlast beibehalten werden sollen, wenn die Nutzlastgröße das Limit überschreitet.
- Maximale Größe der Nutzlast: Unterschiedliche Verkäufer können unterschiedliche Ressourcenzuweisungen haben und möchten möglicherweise ein maximales Größenlimit für die Auktionsnutzlast pro Anfrage festlegen. Die maximale Größe berücksichtigt die von der Protected Audience API festgelegten Bucket mit fester Größe.
Änderungen bei benutzerdefinierten Zielgruppen
- Priorität für benutzerdefinierte Zielgruppen angeben: Käufer können einen Prioritätswert für eine benutzerdefinierte Zielgruppe angeben. Im Feld
priority
werden benutzerdefinierte Zielgruppen angegeben, die in einer Auktion berücksichtigt werden sollen, wenn die Anzahl der benutzerdefinierten Zielgruppen von Käufern die zulässige Größe pro Verkäufer oder Käufer überschreitet. Wenn in einer benutzerdefinierten Zielgruppe kein Prioritätswert angegeben ist, wird standardmäßig0.0
verwendet.
- Priorität für benutzerdefinierte Zielgruppen angeben: Käufer können einen Prioritätswert für eine benutzerdefinierte Zielgruppe angeben. Im Feld
Änderungen an Nutzlastdaten
- In der Nutzlast gesendete Daten reduzieren: Wie in der Optimierung der Nutzlast von Bidding- und Auktionsdiensten beschrieben, wird eine höhere Nutzlast durch Daten zu benutzerdefinierten Zielgruppen
ads
, Nutzergebotssignale und Android-Signale verursacht. Höhere Nutzlasten können durch Folgendes gesenkt werden:- Der Client sendet Anzeigen-Render-IDs (anstelle von Anzeigenobjekten) in der Nutzlast.
- Der Client sendet keine Anzeigendaten in der Nutzlast.
- Es werden keine Gebotshinweise für Nutzer in der Clientnutzlast gesendet.
- In der Nutzlast gesendete Daten reduzieren: Wie in der Optimierung der Nutzlast von Bidding- und Auktionsdiensten beschrieben, wird eine höhere Nutzlast durch Daten zu benutzerdefinierten Zielgruppen
Mit den oben genannten Strategien können Anbieter von Anzeigentechnologien Konfigurationen definieren, um die Zusammensetzung und Limits der adSelectionData
-Nutzlast zu verwalten. Sie können aber auch ein Faktor für die Modulation der adSelectionData
-Größe sein, indem Konfigurationsparameter geändert werden. Um dies zu vermeiden, wird die Konfiguration täglich von Protected Audience vom konfigurierten Endpunkt abgerufen.
Latenzoptimierung
Damit Serverauktionen eine zufriedenstellende Leistung bieten, müssen die getAdSelectionData
API und die persistAdSelectionResult
API eine geringe Latenz pro Aufruf haben. Wir möchten 2023 Funktionsunterstützung für APIs anbieten. Bei der nächsten Version liegt der Schwerpunkt jedoch auf Latenzbenchmarks und Optimierungen für die APIs.
Wir prüfen die folgenden Strategien, um die Latenz innerhalb akzeptabler Grenzen zu halten:
Vorabgenerierung von Daten zu geschützten Zielgruppen pro Verkäufer: Da die Auktionskonfiguration des Verkäufers und die Käufernutzlastkonfiguration über einen längeren Zeitraum (täglich) stabil bleiben, können die entsprechenden Daten zu geschützten Zielgruppen vorab berechnet und gespeichert werden.
Dazu müsste die Plattform einen Mechanismus entwickeln, mit dem Aktualisierungen von benutzerdefinierten Zielgruppen überwacht und die vorab generierten Daten für geschützte Zielgruppen entsprechend angepasst werden. Die Plattform muss außerdem SLOs für die Verzögerung bei der Anzeigentechnologie angeben, die zwischen Aktualisierungen von benutzerdefinierten Zielgruppen und der Sichtbarkeit der Änderung in der für die Serverauktion generierten
adSelectionData
auftreten kann.Da ein Gerät ein begrenztes Ressourcenberechnungsmodell mit unterschiedlichen Prozessprioritäten bietet, müssen wir dafür sorgen, dass diese Vorabgenerierungsfunktion eine hohe Zuverlässigkeit und SLO-Garantien bietet.
Die Daten für geschützte Zielgruppen werden dann auf der Grundlage der folgenden Informationen vorab generiert:
- Der Verkäufer aktiviert die Vorabgenerierung von Protected Audience-Daten.
- Käufer, die an einer von einem bestimmten Verkäufer initiierten Auktion teilnehmen dürfen.
- Bestimmen von benutzerdefinierten Zielgruppen pro Käufer, die Teil der Nutzlast sein sollen, basierend auf:
- In der Verkäuferkonfiguration festgelegte Größenbeschränkungen, Prioritäten pro Käufer und maximale Größenbeschränkungen
- Größere Beschränkung pro Verkäufer, Priorität der benutzerdefinierten Zielgruppe in der Käuferkonfiguration festgelegt
Vorab-Anwendung der Negativfilterung: Wenn ein Verkäufer dies bevorzugt, kann die Plattform die
adSelectionData
-Werte vorab berechnen, indem sie Daten zu geschützten Zielgruppen generiert und die Negativfilterung auf den kritischengetAdSelectionData
-Aufruf anwendet. So können Verkäufer die Latenz senken und gleichzeitig veraltete Daten bei der Negativfilterung akzeptieren.Die Plattform könnte diese Unterstützung durch eine Standardoption in der Verkäuferkonfiguration mit einem Gültigkeitslimit und einer Überschreibungsoption in
getAdSelectionData
bieten, um bei Bedarf die aktuellsten Daten zu berechnen. Alternativ kann die Plattform eine zusätzliche Initiatierungs-API bereitstellen, die vorgetAdSelectionData
aufgerufen wird, um die Auktion zu starten.Nutzlastberechnung für mehrere Auktionen: In bestimmten Szenarien ist eine API mit geringer Latenz vorzuziehen, auch wenn die Daten dadurch möglicherweise veraltet sind. Dazu könnte die Plattform eine Initialisierungs-API einführen, um die gesamte Nutzlast zu berechnen und dem Aufrufer eine Referenz auf die berechnete Nutzlast zur Verfügung zu stellen.
Bei nachfolgenden Aufrufen von
getAdSelectionData
kann der Aufrufer einen Verweis auf die vorab berechnete Nutzlast angeben, die für die Generierung vonadSelectionData
verwendet werden soll.
Alle drei oben genannten Strategien befinden sich in der ersten explorativen Phase und sollen die Richtung beschreiben, in die sich die Plattform entwickeln könnte, um die Latenz zu optimieren. Wir werden weitere Strategien vorschlagen, sobald wir detailliertere Latenzprofile der API und der Anforderungen an die Anzeigentechnologien kennen.
Minderung des Missbrauchsrisikos und Identifizierung von Missbrauch
Wie bereits unter „Datenschutzaspekte“ erwähnt, wird adSelectionData
anhand aller Käuferdaten auf dem Gerät generiert.
Wenn jedoch alle Käuferdaten auf dem Gerät zum Generieren der adSelectionData
-Ausgabe verwendet werden, kann sich eine böswillige Entität als Käufer ausgeben und betrügerische Käuferdaten erstellen, um die Android-Leistung zu beeinträchtigen, die Nutzlast zu vergrößern, um die Kosten für eine Anzeigentechnologie für Auktionen oder Gebote zu erhöhen usw.
Minderung von Umweltbelastungen
Einige Maßnahmen, die im Abschnitt zu Größenbeschränkungen erwähnt werden, wie die Konfiguration der Käufernutzlast mit Verkäufern auf der Zulassungsliste und die Auktionskonfiguration des Verkäufers mit Käufern auf der Zulassungsliste, können dazu beitragen, unerwartete Daten in der Nutzlast auszuschließen.
Andere Maßnahmen zur Größenbegrenzung, z. B. die Möglichkeit für SSPs, Käuferprioritäten anzugeben, ein Käuferkontingent in die generierte Nutzlast einzubauen und eine maximale Größe pro Auktionsnutzlast festzulegen, können ebenfalls dazu beitragen, die Auswirkungen von schädlichen Nutzlast-Aufblähungen zu verringern. Mit diesen Maßnahmen sollen Anbieter von Anzeigentechnologien festlegen können, mit welchen Anbietern von Anzeigentechnologien sie zusammenarbeiten, und akzeptable Limits für die zu verarbeitende Nutzlast festlegen.
Wie bereits erwähnt, müssen alle Maßnahmen zur Missbrauchsprävention und Größenbeschränkung den Datenschutzanforderungen entsprechen.
Identifizierung schädlicher Entitäten
Die oben genannten Maßnahmen schützen zwar die adSelectionData
-Generierung für Serverauktionen, helfen aber nicht, böswillige Entitäten zu identifizieren oder die Plattform vor Missbrauch zu schützen, z. B. vor der Erstellung einer nie dagewesenen Anzahl von benutzerdefinierten Zielgruppen durch einen Käufer.
Um die Stabilität und Gesundheit der Plattform zu gewährleisten, müssen wir einen Mechanismus finden, mit dem schädliche Entitäten, Missbrauchsvektoren und die Motivation für die jeweiligen Angriffe identifiziert werden können. In späteren Releases werden wir Erläuterungen zu den potenziellen Missbrauchsvektoren und den Schutzmaßnahmen veröffentlichen, die wir ergriffen haben, um ihnen entgegenzuwirken.