Im Designvorschlag Gebots- und Auktionsdienste für Android werden die Ausführung und der Datenfluss von Auktionen auf Android-Geräten mit dem Trusted Bidding and Auction-Server beschrieben. Damit Daten bei der Übertragung nur von datenschutzfreundlichen APIs und vertrauenswürdigen Servern verarbeitet werden, werden sie zwischen Client und Server mit bidirektionaler Hybrid Public Key Encryption verschlüsselt.
Damit die Auktion wie oben beschrieben durchgeführt werden kann, muss die Ad-Tech des Verkäufers auf dem Gerät die folgenden Schritte ausführen:
- Daten für die Serverauktion erheben und verschlüsseln
- Anfrage an einen nicht vertrauenswürdigen Verkäuferservice senden
- Antwort von einem nicht vertrauenswürdigen Verkäuferservice erhalten
- Protected Audience-Auktionsantwort entschlüsseln und Auktionsergebnis abrufen
Für die Durchführung von Serverauktionen werden zwei neue APIs eingeführt:
- Die
getAdSelectionData
API erfasst Daten für die Serverauktion und generiert eine verschlüsselte Nutzlast mit Auktionsdaten. Der Gebots- und Auktionsserver verwendet diese Nutzlast, um eine Auktion durchzuführen, das Auktionsergebnis zu generieren und zurückzugeben. - On-Device-Ad-Tech-Clients können die
persistAdSelectionResult
API aufrufen, um das Ergebnis der Serverauktion zu entschlüsseln und die Render-URL der Gewinneranzeige abzurufen.
Die Anzeigentechnologie des Verkäufers auf dem Gerät muss die folgenden Elemente integrieren und erstellen, um eine Auktion durchzuführen:
- Daten für die Serverauktion des Verkäufers erfassen und verschlüsseln: Die AdTech-Plattform sollte die
getAdSelectionData
API aufrufen, um die verschlüsselte Nutzlast abzurufen. - Anfrage an den Dienst für nicht vertrauenswürdige Verkäufer senden: Eine
HTTP POST
- oderPUT
-Anfrage mit der verschlüsselten Nutzlast, die von dergetAdSelectionData
-API generiert wurde, an den Dienst für nicht vertrauenswürdige Verkäufer und Daten, die vom Dienst für nicht vertrauenswürdige Verkäufer zum Generieren kontextbezogener Ergebnisse benötigt werden. - Antwort vom Dienst eines nicht vertrauenswürdigen Verkäufers erhalten: Die Antwort vom Dienst eines nicht vertrauenswürdigen Verkäufers enthält das verschlüsselte Protected Audience-Auktionsergebnis und das Ergebnis der kontextbezogenen Auktion.
- Protected Audience-Auktionsantwort entschlüsseln und Auktionsergebnis abrufen:Um das Protected Audience-Auktionsergebnis zu entschlüsseln, muss die Ad-Tech-Plattform des Verkäufers die
persistAdSelectionResult
API aufrufen. Das vonpersistAdSelectionResult
generierte Ergebnis hilft Anzeigentechnologien, zu ermitteln, ob die kontextbezogene Anzeige oder die Protected Audience-Anzeige die Auktion gewonnen hat, und gegebenenfalls den URI der Gewinneranzeige.
Unterstützte Funktionen für Serverauktionen
Wir möchten alle Funktionen unterstützen, die für die Auktion auf dem Gerät verfügbar sind. Der Zeitplan für die Unterstützung dieser Funktionen in der Serverauktion ist wie folgt:
Auktion auf dem Gerät |
Serverauktion |
|||
Entwicklervorschau |
Beta |
Entwicklervorschau |
Beta |
|
Berichte zu gewonnenen Geboten auf Ereignisebene |
Q1 2023 |
3. Quartal 2023 |
– |
4. Quartal 2023 |
Q1 2023 |
4. Quartal 2023 |
– |
Q1 2024 |
|
Q2 2023 |
3. Quartal 2023 |
– |
4. Quartal 2023 |
|
Kontextbezogene Anzeigen zur Filterung an den Workflow für die Anzeigenauswahl übergeben |
Q2 2023 |
1. Quartal 2024 |
– |
– |
Q2 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 |
Q2 2023 |
1. Quartal 2024 |
– |
1. Quartal 2024 |
|
Währungsverwaltung |
– |
– |
– |
1. Quartal 2024 |
K-anonyme Integration |
– |
1. Quartal 2024 |
– |
1. Quartal 2024 |
Integration der Private Aggregation API |
– |
– |
– |
3. Quartal 2024 |
Serverauktionen mit Protected Audience APIs ausführen
Im Developer Preview-Track stellt AdSelectionManager zwei neue APIs bereit: getAdSelectionData
und persistAdSelectionResult
. Mit diesen APIs können Ad-Tech-SDKs in Bidding- 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 zu verhindern, dass Daten an andere Apps weitergegeben werden, enthält diese Datei Informationen von allen Käufern auf dem Gerät. Weitere Informationen zu dieser Entscheidung finden Sie im Abschnitt Datenschutzaspekte und Strategien zur Optimierung im Abschnitt Größenaspekte.
Um auf die API zuzugreifen, muss der Zugriff auf die Protected Audience API aktiviert sein und die Berechtigung ACCESS_ADSERVICES_CUSTOM_AUDIENCE
muss 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 es verwendet wird, um Registrierungsprüfungen durchzuführen, bevor die Anfrage bearbeitet wird. - Das Feld
coordinatorOriginUri
ist optional.- Wenn diese Option festgelegt ist, sollte sie 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 enthalten 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 Coordinator-Ursprung angegeben ist, wird der Standard-Coordinator verwendet.
- Es ist zwar höchst unwahrscheinlich, dass sich die Koordinator-URL ändert, es wird jedoch 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)
}
Nachdem die Anfrage validiert wurde, werden die Käuferdaten auf dem Gerät in BuyerInput
und ProtectedAudienceInput
zusammengestellt. Das endgültige Nutzlastobjekt wird dann mit bidirektionaler Hybrid Public Key Encryption verschlüsselt.
GetAdSelectionDataOutcome
GetAdSelectionDataOutcome
wird als Ergebnis der getAdSelectionData
-API generiert. Es enthält folgende Elemente:
adSelectionId
: Eine undurchsichtige Ganzzahl zur Identifizierung dieses Aufrufs vongetAdSelectionData
. Der Ad-Tech-Client sollte diesenadSelectionId
-Wert beibehalten, da er als Zeiger auf dengetAdSelectionData
-Aufruf dient. Diese Kennung ist für diepersistAdSelectionResult
API erforderlich, um das Auktionsergebnis vom Gebots- 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 für die Durchführung von Auktionen benötigt werden. Diese Methode enthält:- Gefilterte Daten zu benutzerdefinierten Zielgruppen basierend auf Frequency Capping, Filtern für App-Installationen und Serverauktionsanforderungen 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 von Daten für die Anzeigenauswahl aus Gründen wie ungültigen Argumenten, Zeitüberschreitungen oder übermäßigem Ressourcenverbrauch nicht erfolgreich abgeschlossen werden kann, wird im OutcomeReceiver.onError()
-Callback ein AdServicesException
mit den folgenden Verhaltensweisen bereitgestellt:
- Wenn
getAdSelectionData
mit ungültigen Argumenten initiiert wird, gibtAdServicesException
eine IllegalArgumentException als Ursache an. - Alle anderen Fehler erhalten einen
AdServicesException
-Fehler mitIllegalStateException
als Ursache.
Anfrage an einen nicht vertrauenswürdigen Verkäuferservice senden
Mit AdSelectionData
kann das On-Device-SDK eine Anfrage an den Anzeigen-Service 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. Es wird empfohlen, eine speichereffiziente Lösung zu verwenden, z. B. die Anfrage als „multipart/form-data“ an den Anzeigenservice des Verkäufers zu senden.
Antwort von einem nicht vertrauenswürdigen Verkäuferservice erhalten
Wie im Bidding and Auction Server explainer beschrieben, ruft der nicht vertrauenswürdige Verkäuferdienst nach Erhalt der Anfrage Partnerkäufer für kontextbezogene Anzeigen auf.
Der nicht vertrauenswürdige Verkäuferdienst leitet das verschlüsselte adSelectionData
und AuctionConfig
an den SellerFrontEnd-Dienst des Bidding and Auction-Servers weiter, der in einer 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 Dienst des nicht vertrauenswürdigen Verkäufers sendet eine Antwort an das Gerät, die kontextbezogene Anzeigen und / oder ein verschlüsseltes Protected Audience-Auktionsergebnis enthält.
Nach Erhalt der Antwort kann der Anzeigen-Tech-Code des Verkäufers auf dem Gerät entscheiden, ob er nur die kontextbezogene Anzeige in der Antwort verwendet. Wenn er der Meinung ist, dass es einen zusätzlichen Wert hat, das Protected Audience-Ergebnis abzurufen, kann er das Protected Audience-Ergebnis 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, also dasselbe Objekt, das heute bei 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 undurchsichtige Kennung, die vomgetAdSelectionData
-Aufruf generiert wurde, dessen Ergebnis der Aufrufer entschlüsseln möchte.seller
: Die Ad-Tech-ID des Verkäufers muss in der Anfrage festgelegt werden, damit vor der Bearbeitung der Anfrage Registrierungsprüfungen durchgeführt werden können.adSelectionResult
: Das verschlüsselte Auktionsergebnis, das vom Bidding and Auction-Server generiert wurde und das der Aufrufer entschlüsseln möchte.
AdSelectionOutcome-Antwort
Wenn es einen Protected Audience-Gewinner gibt, gibt AdSelectionOutcome
die Render-URI 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 Protected Audience-Gewinneranzeige gibt, wird eine Anzeigen-Render-URL für die Gewinneranzeige zurückgegeben. Wenn es keinen Protected Audience-Gewinner gibt, wird „Uri.EMPTY“ zurückgegeben.adSelectionId
: DieadSelectionId
, die mit dieser Serverauktion verknüpft ist.
Fehler, Ausnahmen und Fehlerbehandlung
Wenn die Generierung von Daten für die Anzeigenauswahl aus Gründen wie ungültigen Argumenten, Zeitüberschreitungen oder übermäßigem Ressourcenverbrauch nicht erfolgreich abgeschlossen werden kann, wird im OutcomeReceiver.onError()
-Callback ein AdServicesException
mit den folgenden Verhaltensweisen bereitgestellt:
- Wenn
getAdSelectionData
mit ungültigen Argumenten initiiert wird, gibtAdServicesException
als UrsacheIllegalArgumentException
an. - Alle anderen Fehler erhalten einen
AdServicesException
-Fehler mitIllegalStateException
als Ursache.
Datenschutz
adSelectionData
ist verschlüsselt, damit Daten während der Übertragung nur für PPAPI und die vertrauenswürdigen Server zugänglich sind.
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 Filterlogik für
CustomAudience
- Änderungen an der Eingabe für den
getAdSelectionData
-Aufruf.
Die Änderung der adSelectionData
-Größe kann zum Generieren einer appübergreifenden Kennung verwendet werden, wie in der Diskussion zum 1-Bit-Leak erwähnt. Viele der Maßnahmen, die für das 1‑Bit-Leck gelten, sind auch hier anwendbar.
Um diese Lecks zu beheben, planen wir, für alle Aufrufe der getAdSelectionData
API dieselbe adSelectionData
zu generieren. In den ersten Versionen werden alle CustomAudiences
auf dem Gerät zum Erstellen von adSelectionData
verwendet. Die verschlüsselte Nutzlast wird aufgefüllt, um Größenunterschiede zu maskieren. Außerdem schränken wir den Einfluss von GetAdSelectionData
-Eingabeparametern auf die generierten adSelectionData
ein.
Wenn jedoch für alle Ad-Tech-Anbieter dieselbe adSelectionData
mit allen On-Device-Auktionsdaten generiert wird, entsteht eine große Nutzlast, die bei jedem Aufruf des Ad-Tech-Servers übertragen werden muss. Wenn alle benutzerdefinierten Zielgruppen auf dem Gerät verwendet werden, um die Auktionsnutzlast zu generieren, ist das Ökosystem auch anfälliger für Missbrauch durch böswillige Akteure. Diese Bedenken werden in den Abschnitten Größenoptimierungen und Maßnahmen gegen Missbrauch behandelt.
Größenoptimierungen
Das SDK des AdTech-Clients soll die verschlüsselten Bytes von adSelectionData
in den kontextbezogenen Aufruf HTTP PUT/POST
verpacken, der an den AdTech-Server gesendet wird. Um die Latenz und die Kosten für die Round-Trip-Zeit zu senken, muss die Größe von adSelectionData
so weit wie möglich reduziert werden, ohne die Nützlichkeit zu beeinträchtigen.
Wir planen, die folgenden Optimierungen in den kommenden Releases zu untersuchen und möglicherweise einzuführen, um die Größe von adSelectionData
zu verringern:
Nutzlast, die in einer festen Anzahl von Bucket-Größen mit Padding generiert wird: Um das Risiko von Datenlecks durch Größenvariationen zu minimieren und gleichzeitig niedrigere Nutzlasten zu ermöglichen, empfehlen wir, für die generierte Nutzlast Buckets mit fester Größe zu verwenden. Wenn Sie die Anzahl der Buckets gering halten, z. B. 7, werden pro Aufruf von
getAdSelectionData
weniger als 3 Bit an Entropie offengelegt.Wenn die Daten auf dem Gerät die maximale Bucket-Größe überschreiten, werden Strategien wie Prioritätswerte verwendet, um zu entscheiden, welche Daten verworfen werden.
Käuferkonfiguration: Wir prüfen, ob es möglich ist, dass Käufer eine Nutzlastkonfiguration pro Käufer einrichten. Diese Konfiguration ist nützlich, um zu ermitteln, an welchen Auktionen ein Käufer teilnehmen möchte. Wenn möglich, könnte ein Käufer-Ad-Tech-Unternehmen bei der Registrierung einen Endpunkt registrieren, von dem Protected Audience die Nutzlastkonfiguration täglich abrufen würde. Alternativ könnten datenschutzfreundliche APIs eine API bereitstellen, mit der Anzeigentechnologien von Käufern diesen Endpunkt registrieren können.
Diese Konfiguration wird dann verwendet, um den Beitrag eines Käufers zu
adSelectionData
zu bewerten, der für jedegetAdSelectionData
-Anfrage generiert wird.Mit der Konfiguration der Käufernutzlast können Käufer Folgendes angeben:
- Liste der zulässigen Verkäufer: Die benutzerdefinierten Zielgruppen des Käufers 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: Der Käufer kann eine Größenbeschränkung pro Verkäufer festlegen, 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 bereitstellen möchte. Der SellerFrontendService leitet nur käuferspezifische Daten an die einzelnen BuyerFrontendServices weiter. Durch die Definition eines Größenlimits pro Verkäufer kann ein Käufer die Menge der Daten, die vom BuyerFrontendService seines Gebots- und Auktionsservers für von einem Verkäufer durchgeführte Auktionen aufgenommen und verarbeitet werden, explizit steuern.
- Liste der zulässigen Verkäufer: Die benutzerdefinierten Zielgruppen des Käufers 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 der Ad-Tech-Anbieter des Verkäufers bei der Registrierung den Endpunkt angeben, von dem Protected Audience die Auktionskonfiguration des jeweiligen Verkäufers in regelmäßigen Abständen abrufen kann. Diese Konfiguration wird dann verwendet, um die Zusammensetzung und die Limits von
adSelectionData
zu bestimmen, die für jedegetAdSelectionData
-Anfrage generiert werden.Ähnlich wie bei der Käuferkonfiguration könnten Verkäufer mit einer Konfiguration pro Verkäufer angeben, welche Käufer sie in einer Auktion erwarten, und Grenzwerte für den Beitrag pro Käufer zur Nutzlastgröße festlegen.
Mit der Auktionskonfiguration für Verkäufer können Verkäufer Folgendes angeben:
- Liste zulässiger Käufer: Bei Auktionen, die vom angegebenen Verkäufer initiiert werden, können nur die Käufer auf der Zulassungsliste CustomAudiences für die Auktion beitragen. Die Auktionskonfiguration muss täglich aktualisiert werden, damit die Zulassungsliste mit der serverseitigen Zulassungsliste für Käufer übereinstimmt.
- Größenbeschränkung pro Käufer: Verkäufer können eine Beschränkung pro Käufer festlegen, um die Datengröße zu regulieren, die von jedem Käufer in die Nutzlast hochgeladen wird, die an SellerFrontendService gesendet wird. Wenn der Käufer das Größenlimit pro Käufer überschreitet, wird die in der Konfiguration der Käufer-Payload festgelegte CustomAudience-Priorität verwendet, um die Daten innerhalb der erwarteten Grenzwerte zu erhalten.
- Priorität pro Käufer: Verkäufer können die Priorität pro Käufer festlegen. Die Käuferpriorität wird verwendet, um zu ermitteln, welche Käuferdaten in der Nutzlast beibehalten werden sollen, wenn die Nutzlastgröße das Nutzlastgrößenlimit überschreitet.
- Maximale Größe der Nutzlast: Verschiedene Verkäufer haben möglicherweise unterschiedliche Ressourcenzuweisungen und möchten ein Limit für die maximale Größe der Auktionsnutzlast pro Anfrage festlegen. Das maximale Größenlimit würde die von der Protected Audience API festgelegten Buckets mit fester Größe berücksichtigen.
Änderungen bei benutzerdefinierten Zielgruppen
- Priorität für benutzerdefinierte Zielgruppen angeben: Käufer können einen Prioritätswert für eine benutzerdefinierte Zielgruppe angeben. Das Feld
priority
wird verwendet, um benutzerdefinierte Zielgruppen zu identifizieren, die in eine Auktion aufgenommen werden sollen, wenn die Anzahl der benutzerdefinierten Zielgruppen des Käufers die Größenbeschränkungen 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. Das Feld
Änderungen an Nutzlastdaten
- Weniger Daten in der Nutzlast senden: Wie unter Nutzlastoptimierung für Bidding- und Auktionsdienste beschrieben, wird eine höhere Nutzlast durch benutzerdefinierte Zielgruppendaten
ads
, Gebotssignale von Nutzern und Android-Signale verursacht. Höhere Nutzlasten können durch Folgendes reduziert werden:- Der Client sendet Anzeigen-Render-IDs (anstelle von Anzeigenobjekten) in der Nutzlast.
- Der Client sendet keine Anzeigendaten in der Nutzlast.
- Keine Gebotssignale für Nutzer im Client-Payload senden.
- Weniger Daten in der Nutzlast senden: Wie unter Nutzlastoptimierung für Bidding- und Auktionsdienste beschrieben, wird eine höhere Nutzlast durch benutzerdefinierte Zielgruppendaten
Mit diesen Strategien können Ad-Tech-Unternehmen Konfigurationen definieren, um die Zusammensetzung und die Grenzwerte der adSelectionData
-Nutzlast zu verwalten. Sie können aber auch die Größe von adSelectionData
modulieren, indem sie Konfigurationsparameter ändern. Um dies zu vermeiden, wird die Konfiguration täglich von Protected Audience vom konfigurierten Endpunkt abgerufen.
Latenzoptimierung
Damit Serverauktionen ein wünschenswertes Maß an Nützlichkeit haben, müssen wir sicherstellen, dass die getAdSelectionData
API und die persistAdSelectionResult
API eine niedrige Latenz pro Aufruf haben. Wir möchten die API-Unterstützung für Funktionen im Jahr 2023 bereitstellen. Bei der nächsten Version werden wir uns jedoch auf Latenz-Benchmarks und Optimierungen für die APIs konzentrieren.
Wir untersuchen die folgenden Strategien, um die Latenz in einem akzeptablen Bereich zu halten:
Vorabgenerierung von Protected Audience-Daten pro Verkäufer: Da die Auktionskonfiguration des Verkäufers und die Nutzlastkonfiguration des Käufers über einen beträchtlichen Zeitraum (täglich) stabil sind, könnte die Plattform die infrage kommenden Protected Audience-Daten vorab berechnen und speichern.
Dazu müsste die Plattform einen Mechanismus entwickeln, um Aktualisierungen benutzerdefinierter Zielgruppen zu überwachen und die vorab generierten Protected Audience-Daten entsprechend zu ändern. Die Plattform müsste auch SLOs für die Verzögerung angeben, die Ad-Tech-Unternehmen zwischen benutzerdefinierten Zielgruppenaktualisierungen und der Änderung des
adSelectionData
erwarten können, das für die Serverauktion generiert wird.Da ein Gerät ein begrenztes Ressourcenberechnungsmodell mit unterschiedlichen Prozessprioritäten bietet, ist uns bewusst, dass die Bereitstellung dieser Vorabgenerierungsfunktion mit hoher Zuverlässigkeit und SLO-Garantien einhergehen muss.
Die Vorabgenerierung der Protected Audience-Daten würde dann auf folgenden Daten basieren:
- Verkäufer aktivieren die Vorabgenerierung von Protected Audience-Daten.
- Käufer, die zur Teilnahme an einer Auktion berechtigt sind, die von einem bestimmten Verkäufer initiiert wurde.
- Benutzerdefinierte Zielgruppen pro Käufer identifizieren, die basierend auf Folgendem Teil der Nutzlast wären:
- Größenbeschränkungen pro Käufer, Priorität pro Käufer und maximale Größenbeschränkungen, die in der Verkäuferkonfiguration definiert sind,
- Größenbeschränkung pro Verkäufer, Priorität der benutzerdefinierten Zielgruppe, die in der Käuferkonfiguration definiert ist.
Schnelle Anwendung von Negativfiltern: Wenn ein Verkäufer dies bevorzugt, kann die Plattform die
adSelectionData
vorab berechnen, indem sie Protected Audience-Daten vorab generiert und Negativfilter vor dem kritischengetAdSelectionData
-Aufruf anwendet. So könnten Verkäufer die Latenz senken und gleichzeitig die Veraltung beim negativen Filtern in Kauf nehmen.Die Plattform könnte diese Unterstützung bieten, indem sie in der Verkäuferkonfiguration eine Standardoption mit einem Limit für die Aktualität und in
getAdSelectionData
eine Überschreibungsoption bereitstellt, um bei Bedarf die aktuellste Berechnung zu ermöglichen. Alternativ könnte die Plattform eine zusätzliche Initialisierungs-API bereitstellen, die vorgetAdSelectionData
aufgerufen wird, um die Auktion vorzubereiten.Nutzlastberechnung für mehrere Auktionen: In bestimmten Szenarien kann es vorzuziehen sein, eine latenzarme API zu verwenden, auch wenn die Daten dadurch veralten. Dazu könnte die Plattform eine Initialisierungs-API einführen, um die gesamte Nutzlast zu berechnen und dem Aufrufer einen Verweis auf die berechnete Nutzlast zu geben.
Bei nachfolgenden Aufrufen von
getAdSelectionData
kann der Aufrufer auf die vorab berechnete Nutzlast verweisen, die für dieadSelectionData
-Generierung verwendet werden soll.
Diese drei Strategien befinden sich in der ersten Explorationsphase und sollen die Richtung beschreiben, in die sich die Plattform entwickeln könnte, um die Latenz zu optimieren. Wir werden weiterhin zusätzliche Strategien vorschlagen, wenn wir uns detailliertere Latenzprofile der API und Anforderungen an die Anzeigentechnologie ansehen.
Minderung des Missbrauchsrisikos und Identifizierung von Missbrauch
Wie unter „Datenschutzaspekte“ erwähnt, wird adSelectionData
anhand aller Käuferdaten auf dem Gerät generiert.
Wenn jedoch alle Käuferdaten auf dem Gerät verwendet werden, um die adSelectionData
-Ausgabe zu generieren, könnte sich eine böswillige Einheit als Käufer ausgeben und betrügerische Käuferdaten erstellen, um die Android-Leistung zu beeinträchtigen, die Nutzlast aufzublähen, um die Kosten für eine Ad-Tech-Plattform für die Durchführung von Auktionen oder Geboten zu erhöhen usw.
Minderung von Umweltbelastungen
Einige im Abschnitt zu Größenbeschränkungen erwähnte Maßnahmen, z. B. die Konfiguration der Käufer-Payload mit autorisierten Verkäufern und die Konfiguration der Verkäuferauktion mit autorisierten Käufern, können dazu beitragen, unerwartete Daten in der Payload auszuschließen.
Andere Maßnahmen zur Größenbeschränkung, z. B. die Möglichkeit für SSPs, die Priorität von Käufern anzugeben, das Platzieren von Kontingenten pro Käufer in der generierten Nutzlast und das Festlegen einer maximalen Größe pro Auktionsnutzlast, können ebenfalls dazu beitragen, die Auswirkungen von böswilligen Nutzlasten zu verringern. Mit diesen Maßnahmen sollen Ad-Tech-Unternehmen festlegen können, mit welchen Ad-Tech-Unternehmen sie zusammenarbeiten, und akzeptable Grenzwerte für die Nutzlast festlegen, die sie verarbeiten müssen.
Wie bereits erwähnt, müssen alle Maßnahmen zur Missbrauchsbekämpfung und Größenbeschränkungen den Datenschutzbestimmungen entsprechen.
Identifizierung schädlicher Entitäten
Diese Maßnahmen schützen zwar die adSelectionData
-Generierung für Serverauktionen, helfen aber nicht dabei, böswillige Akteure zu identifizieren oder die Plattform vor Missbrauch zu schützen, z. B. vor der Erstellung einer beispiellosen Anzahl von benutzerdefinierten Zielgruppen durch einen Käufer.
Um die Stabilität und Integrität der Plattform zu überprüfen, benötigen wir einen Mechanismus, mit dem wir schädliche Einheiten, Missbrauchsvektoren und die Motivation für die jeweiligen Angriffe identifizieren können. In späteren Versionen werden wir Erklärungen einführen, in denen die potenziellen Missbrauchsvektoren und die vorhandenen Schutzmaßnahmen zur Bekämpfung dieser Vektoren detailliert beschrieben werden.