1. Einführung
Gebots- und Auktionsdienste (Bidding & Auction Services, B&A) umfassen vier Dienste für Käufer und Verkäufer, um eine Protected Audience-Auktion zu ermöglichen:
Buyer Stack:
- Buyer Front-End Service
- Gebotsdienst
Seller Stack:
- Seller Front-End Service
- Auktionsdienst
In diesem Codelab erfahren Sie, wie Sie die End-to-End-Einrichtung in Ihrer lokalen Umgebung einrichten und testen. Die Anleitung dauert voraussichtlich etwa eine Stunde, ohne die anfängliche Build-Zeit des Dienstes.
Auch wenn Sie nur am Code für die Käufer- oder Verkäuferseite arbeiten, ist es hilfreich, den End-to-End-Ablauf in Ihrer lokalen Umgebung einzurichten, um besser zu verstehen, wie die Stacks für Käufer und Verkäufer zusammenarbeiten. Wenn Sie beide Stacks einrichten, können Sie später zuversichtlicher sein, wenn Sie die Integration mit dem entsprechenden Käufer- oder Verkäufer-Stack eines anderen Unternehmens vornehmen. Wenn Sie die Dienste lokal testen, sparen Sie auch Entwicklungskosten.
In diesem Codelab verwenden wir die B&A Local Testing App als Begleitung.
In der zugehörigen App für lokale Tests werden verschiedene Käufer- und Verkäuferressourcen gehostet, die in einer B&A-Auktion verwendet werden. Die App bietet auch eine Benutzeroberfläche unter http://localhost:3000
, auf der Sie verschiedene Auktionskonfigurationen simulieren können.
2. Umgebung einrichten
2.1 Linux-Computer vorbereiten
Verwenden Sie einen lokalen Linux-Computer oder stellen Sie eine Linux-VM des Cloud-Anbieters Ihrer Wahl bereit. Um die Build-Zeit zu verkürzen, werden mindestens 16 Kerne empfohlen. Besser sind 32 oder mehr Kerne.
Wir laden eine HTML-Seite von http://localhost:3000
dieses Computers. Wenn die VM keine grafische Benutzeroberfläche bietet, muss der Port 3000
für Ihren lokalen Computer zugänglich sein, damit Sie eine Verbindung herstellen können.
2.2 Docker installieren
Wir verwenden Docker, um die Dienste und die lokale Testanwendung auszuführen.
Wir verwenden das Convenience-Script, um Docker in einer Testumgebung zu installieren.
# Install Docker
> curl -fsSL https://get.docker.com -o get-docker.sh
> sudo sh get-docker.sh
# Set up sudo-less Docker
> sudo groupadd docker
> sudo usermod -aG docker $USER
> newgrp docker
# Test
> docker run hello-world
Warnung: Bei der Einrichtung ohne Sudo gewährt die Docker-Gruppe dem Nutzer Berechtigungen auf Root-Ebene. Weitere Informationen finden Sie im Leitfaden zu Docker ohne Sudo.
2.3 Companion-App für lokales Testen starten
Die Companion-App bietet Ressourcen wie Mock-Gebots- oder Scoring-Skripts und Mock-K/V-BYOS-Endpunkte. Die App sollte vor dem Ausführen der B&A-Dienste gestartet werden, damit die Ressourcen in die Dienste geladen werden können.
Rufen Sie das Repository für die lokale Test-App ab:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
Führen Sie im Stammverzeichnis des Repositorys das Setupskript aus:
./setup
Das Einrichtungs-Script erstellt das Docker-Netzwerk ba-dev
, generiert SSL-Zertifikate und erstellt das Test-App-Image.
Wenn der Build erfolgreich war, führen Sie das Start-Skript aus:
./start
3. B&A lokal erstellen und ausführen
3.1 B&A-Dienste herunterziehen
Wir führen zwei Gruppen von B&A-Diensten auf demselben Computer aus. Daher ziehen wir das Repository in zwei verschiedene Ordner herunter.
Set A:
Laden Sie das B&A-Repository herunter:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Set B
Laden Sie das B&A-Repository herunter:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Dienste erstellen
Führen Sie im Stammordner jedes B&A-Ordners den folgenden Befehl aus, um alle vier Dienste zu erstellen:
production/packaging/build_and_test_all_in_docker \
--service-path bidding_service \
--service-path auction_service \
--service-path buyer_frontend_service \
--service-path seller_frontend_service \
--platform gcp \
--instance local \
--no-precommit \
--no-tests \
--build-flavor non_prod \
--gcp-skip-image-upload
Mit diesem Befehl wird eine local
-Instanz des Entwicklungs-Builds (non_prod
) für Google Cloud (gcp
) aller vier Dienste erstellt. Aktualisieren Sie bei Bedarf das Flag --platform
auf den Cloud-Anbieter Ihrer Wahl. Weitere Informationen zu den Build-Flags finden Sie in der Datei build_and_test_all_docker
.
Die erste Erstellung kann auf einem Computer mit 64 Kernen bis zu 2 Stunden dauern. Die Erstellungszeit skaliert linear mit der Anzahl der Kerne. Auf einem Computer mit 32 Kernen kann es bis zu 4 Stunden dauern. Wenn Sie einen Computer mit 16 Kernen verwenden, kann es bis zu 8 Stunden dauern.
Bei nachfolgenden Builds wird der Cache verwendet. Jeder Build sollte etwa 5 bis 20 Minuten dauern.
Zwei Programmierer, die sich eine Auszeit nehmen, während ein Build ausgeführt wird.
(Ich habe Randall Munroe von xkcd beim Schreiben dieses Codelabs getroffen und ihm gesagt, dass ich diesen Comic hier eingefügt habe.)
3.3 Dienste ausführen
Für unsere Tests führen wir 8 Dienste aus (4 Dienste pro Stack). Jeder Befehl ist so eingerichtet, dass er die von der Local Testing App bereitgestellten Ressourcen verwendet. Es wird dringend empfohlen, einen Fenstermanager wie tmux
zu verwenden.
Öffnen Sie mindestens acht weitere Terminalfenster und führen Sie in jeder Sitzung die folgenden Befehle aus.
Der Server der App für lokale Tests muss bereits in einem separaten Prozess ausgeführt werden, da die Gebots- und Scoring-Scripts von der App bereitgestellt werden.
3.3.1 Set A-Befehle
Dienst | Befehl |
|
|
|
|
|
|
|
|
3.3.2 Befehle für Set B
Dienst | Befehl |
|
|
|
|
|
|
|
|
3.3.2 Umgebungsvariablen für die lokalen Startskripts
Mit den folgenden Umgebungsvariablen kann das Startverhalten gesteuert werden.
Umgebungsvariable | Verfügbarkeit | Beschreibung |
| Alle Dienste | Flags, die für den Docker-Befehl festgelegt werden müssen |
| Alle Dienste | Wenn Sie auf Ihrem lokalen Computer testen, müssen Sie möglicherweise ein selbstsigniertes Zertifikat verwenden, das die SSL-Peer-Überprüfung von Die Standardeinstellung ist |
| Alle Dienste | Die Ebene der Serviceprotokolle. Je höher die Stufe, desto mehr Logs sind verfügbar. 0 ist der niedrigste und 10 der höchste Wert. Die Standardeinstellung ist |
| Gebotsdienst | Port des Gebotsdienstes. Die Standardeinstellung ist |
| Gebotsdienst | URL der Gebotslogik |
| Gebotsdienst | Daten-Egress für das Modelltraining |
| Gebotsdienst | Argumente für die Gebotsinferenz |
| BFE-Dienst | Port des BFE-Dienstes. Die Standardeinstellung ist |
| BFE-Dienst | BYOS-K/V-Adresse des Käufers |
| BFE-Dienst | TEE K/V-Adresse des Käufers |
| BFE-Dienst | Adresse des Gebotsdienstes des Käufers |
| Auktionsdienst | Port des Auktionsdienstes. Die Standardeinstellung ist |
| Auktionsdienst | URL der Scoring-Logik |
| Auktionsdienst | URL für die Berichterstellung von Gebotsgewinnen des Käufers |
| Auktionsdienst | Script für die Berichterstellung zu gewonnenen Geboten des Käufers |
| Auktionsdienst | Skript für die Berichterstellung von gewonnenen Geboten des Käufers für PAS |
| SFE-Dienst | Port des SFE-Dienstes. Die Standardeinstellung ist |
| SFE-Dienst | Adresse des Auktionsdienstes des Verkäufers |
| SFE-Dienst | BYOS-K/V-Adresse des Verkäufers |
| SFE-Dienst | TEE K/V-Adresse des Verkäufers |
| SFE-Dienst | Herkunft des Verkäufers |
| SFE-Dienst | BFE-Adressen des Käufers |
4. Mit Secure Invoke über die Befehlszeile testen
4.1 SFE-Tests
Sie können auch das Tool Secure Invoke verwenden, das im B&A Services-Paket enthalten ist, um die Dienste direkt über die Befehlszeile aufzurufen.
4.1.2 SFE-SelectAd
-Paketinhalt
Die folgende JSON-Anfrage wurde mit der Einrichtung der B&A-Auktion für einen einzelnen Verkäufer von SSP-BA
ausgefüllt:
{
"auction_config": {
"seller": "https://localhost:6002",
"auction_signals": "{\"testKey\":\"someValue\"}",
"seller_signals": "{\"testKey\":\"someValue\"}",
"buyer_list": [
"https://localhost:5003",
"https://localhost:5004"
],
"per_buyer_config": {
"https://localhost:5003": { "buyer_signals": "{\"testKey\":\"someValue\"}" },
"https://localhost:5004": { "buyer_signals": "{\"testKey\":\"someValue\"}" }
}
},
"raw_protected_audience_input": {
"publisher_name": "http://localhost:4001",
"generation_id": "1210718540",
"enable_debug_reporting": true,
"raw_buyer_input": {
"https://localhost:5003": {
"interest_groups": [
{
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" },
"user_bidding_signals": "[1, 2, 3]"
}
]
},
"https://localhost:5004": {
"interest_groups": [
{
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" },
"user_bidding_signals": "[1, 2, 3]"
}
]
}
}
}
}
Speichern Sie die Datei als sfe-test.json
im Stammordner des B&A Services-Repositorys von Set A. Das B&A-Build-Skript kopiert die Dateien im Stammordner des Repositorys in den Ordner /src/workspace
des Docker-Images.
4.1.2 SFE mit Secure Invoke aufrufen
Führen Sie den folgenden Befehl im Stammordner des B&A Services-Repositorys aus:
DOCKER_NETWORK=ba-dev ./builders/tools/bazel-debian run //tools/secure_invoke:invoke \
-- \
-target_service=sfe \
-input_file=/src/workspace/sfe-test.json \
-host_addr=192.168.84.104:50053 \
-client_ip=192.168.84.100 \
-insecure=true
Wenn die B&A-Stacks richtig eingerichtet sind, erhalten Sie die folgende Erfolgsmeldung:
{"adRenderUrl":"https://localhost:5004/ad.html","interestGroupName":"dsp-x-demo","interestGroupOwner":"https://localhost:5004","score":39,"bid":39,"biddingGroups":{"https://localhost:5003":{"index":[0]},"https://localhost:5004":{"index":[0]}}}
4.2 BFE-Tests
4.2.1 BFE-GetBids
-Anfrage
{
"buyer_input": {
"interest_groups": {
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" }
}
},
"auction_signals": "{\"testKey\":\"someValue\"}",
"buyer_signals": "{\"testKey\":\"someValue\"}",
"seller": "https://localhost:6002",
"publisher_name": "http://localhost:4001",
"enable_debug_reporting": true,
"client_type": "CLIENT_TYPE_BROWSER"
}
Speichern Sie die Datei als bfe-test.json
im Stammordner des B&A Services-Repositorys.
4.2.2 BFE mit Secure Invoke aufrufen
Führen Sie den folgenden Befehl im Stammordner des B&A Services-Repositorys aus:
DOCKER_NETWORK=ba-dev ./builders/tools/bazel-debian run //tools/secure_invoke:invoke \
-- \
-target_service=bfe \
-input_file="/src/workspace/bfe-test.json" \
-host_addr="192.168.84.102:50051" \
-client_ip=192.168.84.100 \
-insecure=true
Wenn die B&A-Stacks richtig eingerichtet sind, gibt BFE die folgende Antwort zurück:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 SFE-Logs prüfen
Rufen Sie das Terminal auf und prüfen Sie die SFE-Logs. Wir werden uns einige der wichtigsten Logs in der Ausgabe ansehen.
4.3.1 Verschlüsselte Nutzlast der SelectAd
-Anfrage
In dieser SFE-Logausgabe finden wir die verschlüsselte Nutzlast des navigator.getInterestGroupAdAuctionData()
-Aufrufs. Diese Nutzlast wird vom Browser generiert, vom Tag an SAS gesendet und dann von SAS an SFE weitergeleitet:
I1210 21:20:47.266673 37 select_ad_reactor.cc:228] Protected auction ciphertext: AEAAIAABAAKg3OQSSLEBMR1MmJiwfOT8uef41iE+DQIvKUowsQvVcGbWZ+r17ff2r/iTbEnwqLPtpAxSTy77mi+cVV5cKjkKb4piaZnKiCDIMCyEvrQUD4+BG+HgrbUFhqiWPmQhNThvInMaHuYrXG7xushbRtvSPsVzEl6iBZcLZzD7W3CHMFK7bnJ+ufu52W6B7/8dOQ1gZW6SpwXMGNcrurTGoucbwbZRIPqCcbZk76J1gB69wrDYRo1wQ6jmBleLM36nulxbEj/sHhpQIgr895aKqEGQ3Fy+/HHPTO+zHphcX44YeF6mZ/I+WxZTDxCi1x27nI4yvzC8vI4a/giJN5XUlJZGb/fMrj3/Qly+gwJ8lbxdX+4GWTooDoS4MTtiBpJqh9wkIQ5XwfO54p8Kv6j/tk+51hOfVkOdtGwX0LvVrWT9PiJOJHa23nZ1fLg/22mTe05xdbR3WVeA+xiO9YwF4ozyCYDRUkDyWB/3k9RuaaT9H5S1szVpuOuD2nYSRpT9svmpfG4kipiS6BTPZPX2whDlukpuuoFgdiDtH6cFShNhZ5C47R0ayAvaZ1QSpOZMWfA6pdl4nhvNLpOKesKY/KFDEBzpUXRDsQWsfvmdqFl1mCeX9rOrEc9rodYVLXXhM8GPycehHmvqkccTBW6kipOQlmnSdIYaFmtWSFpUrzxajGkct3mZdTjVjOf...
4.3.2 Entschlüsselte Nutzlast
In dieser Ausgabe finden wir die entschlüsselte Nutzlast des navigator.getInterestGroupAdAuctionData()
-Aufrufs:
I1210 21:20:47.267590 37 select_ad_reactor.cc:347] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Decoded BuyerInput:
https://localhost:5003 : {interest_groups { name: "dsp-x-demo" bidding_signals_keys: "demo-key" browser_signals { join_count: 1 recency: 7 prev_wins: "[]" } }}
4.3.3 GetBids
-Anfrage an BFE
Die GetBids
-Anfrage wird von SFE an BFE gesendet:
I1210 21:20:47.267710 37 select_ad_reactor.cc:751] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Getting bid from a BFE
I1210 21:20:47.267729 37 buyer_frontend_async_client.cc:52] Raw request:
buyer_input {
interest_groups {
name: "dsp-x-demo"
bidding_signals_keys: "demo-key"
browser_signals {
join_count: 1
recency: 7
prev_wins: "[]"
}
}
}
auction_signals: "{\"testKey\":\"someValue\"}"
buyer_signals: "{\"testKey\": \"someValue\"}"
seller: "https://localhost:6002"
publisher_name: "localhost"
enable_debug_reporting: true
log_context {
generation_id: "c2824bfc-d515-4a1a-9de9-7660ad963252"
}
client_type: CLIENT_TYPE_BROWSER
4.3.4 GetBids
-Antwort vom BFE
BFE antwortet mit dem Gebot:
I1210 21:20:47.282549 41 select_ad_reactor.cc:856] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Received response from a BFE ...
I1210 21:20:47.282552 41 select_ad_reactor.cc:859] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252)
GetBidsResponse:
bids {
bid: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
}
update_interest_group_list {
}
4.3.5 ScoreAds
-Anfrage an den Auktionsdienst
Nachdem die Gebote eingegangen sind, wird der ScoreAds
-Aufruf von SFE für jedes Gebot an den Auktionsdienst gesendet:
I1210 21:20:47.287898 18 select_ad_reactor.cc:1280] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) ScoreAdsRawRequest:
ad_bids {
bid: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
interest_group_owner: "https://localhost:5003"
join_count: 1
k_anon_status: true
}
seller_signals: "{\"testKey\":\"someValue\"}"
auction_signals: "{\"testKey\":\"someValue\"}"
scoring_signals: "{\"renderUrls\":{\"https://localhost:5003/ad.html\":[1,2,3],\"https://localhost:5004/ad.html\":[1,2,3]}}"
publisher_hostname: "localhost"
enable_debug_reporting: true
log_context {
generation_id: "c2824bfc-d515-4a1a-9de9-7660ad963252"
}
per_buyer_signals {
key: "https://localhost:5003"
value: "{\"testKey\": \"someValue\"}"
}
per_buyer_signals {
key: "https://localhost:5004"
value: "{\"testKey\": \"someValue\"}"
}
seller: "https://localhost:6002"
4.3.6 ScoreAds
-Antwort vom Auktionsdienst
Der Auktionsdienst des Verkäufers antwortet mit dem Attraktivitätswert:
I1210 21:20:47.298029 33 default_async_grpc_client.h:134] Decrypting the response ...
I1210 21:20:47.298100 33 default_async_grpc_client.h:152] Decryption/decoding of response succeeded: ad_score {
desirability: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
buyer_bid: 9
interest_group_owner: "https://localhost:5003"
win_reporting_urls {
top_level_seller_reporting_urls {
}
}
ad_type: AD_TYPE_PROTECTED_AUDIENCE_AD
}
4.3.7 SelectAd
-Antwort von SFE
Die SelectAd
-Antwort des SFE wird verschlüsselt und an SAS gesendet:
I1210 21:20:47.298428 33 select_ad_reactor.cc:1413] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Encrypted SelectAdResponse:
auction_result_ciphertext: "\023\233\252\321\000\331M\327\216\201S\332kl?\322\255\247\312\375h\007W\367\016\366FR\364\275\377\326\027h\204\203\265\t\271-\333\266\tH\342\033F\001k\211C\026V\013\271\255(\236\273\353\260\275\007\346\027\340?\005|\235S\244\265\2563U\246\322\177%\200/\3175\034 \020\024\362\345\3263\356F.s\261\005\231\262Z\000\330x\0230\335>\"\217\254\010\254\330>\206\007\274\235\037`\370W\032\207\356\367\206\026\341.i\"$\370\367\2554i\247\354\304e\306\2466S\337\321w\327+!\316\035:\002\231\246\362\366qm\211\000\013\343\345\224{\365py\361\374\316\202\217-\244\302\331\216D\025W#.\304nH\235\315\311<#\342\344\324\257\354\2441\251\312\320\226\342\021\377>3`\347/\350\254h\306\273\023\365\340@\321\2412\254\323\213\0137,\013n\220|\211\323/\030)\314\263\223\355>\254\312aa`!\375\335\023Z\234p\206\037\001\355\261{$\025+\341\275\327Ny\342\342\264=\376\2138\224\026\2058\251\020\202\245*46\023\307)K\342\364k<\2104r\247\034\216}\034\001\374\215\363\210\026\275\371S>\031;f.b\260\363\257.\255\023I\341A\237*_T\355\262\005\344L\336D%\327\267@\302$\300\340\203c\350|\337>C\275c\260\202o\315xp\260\257\241\305U\nK\033\274L6\025\350\373a:\253\212&>p\210\215\017&^\327\005_\037\020\212\362\351\341\231@g\372\0037\275b:)\207\303d\243?\261O\266\343\214\200\004\247\372\022S\326\200\037\330\252r\257+e\273[\231\202\3625{\330\213\240\370\245\\\214\350/\313\ty/\004\313\0304k\223\354\374\305\233\264\224K\344\241\251\322?\323q6\314D\027\200\203\035]\023O\306\230?\203\237:\254\305\265\332\330\2641l\322\020\022\330O-\242\207>Q\364_{F\235\353tk\207\035\205\005\221\373\207\0143\035\014\322\240H\220\347%\262f\347\017\352\273\265\231\014\204\r\312\254z\000\340&\354\222\323\245\356\217(i\246"
5. Mit der lokalen Test-App im Browser testen
5.1 Chrome öffnen
Lesen Sie den Chromium-Artikel zum Starten von Chrome über die Befehlszeile und starten Sie Chrome mit den folgenden Flags:
google-chrome --enable-privacy-sandbox-ads-apis --disable-features=EnforcePrivacySandboxAttestations,FledgeEnforceKAnonymity --enable-features=FledgeBiddingAndAuctionServerAPI,FledgeBiddingAndAuctionServer:FledgeBiddingAndAuctionKeyURL/https%3A%2F%2Fstorage.googleapis.com%2Fba-test-buyer%2Fcoordinator-test-key.json
Das Flag ist so festgelegt, dass der Mock-Koordinatorschlüssel geladen wird, den wir unter https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json
gehostet haben.
Wichtig: Schließen Sie alle Chrome-Instanzen vollständig, bevor Sie Chrome über die Befehlszeile mit den B&A-Flags öffnen. Wenn Sie alle Chrome-Prozesse beenden möchten, führen Sie ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
über die Befehlszeile aus.
5.2 UI der App für lokale Tests aufrufen
Die Benutzeroberfläche der App finden Sie unter http://localhost:3000 in der Chrome-Browserinstanz, die Sie mit den Flags geöffnet haben. Die genaue Adresse, die Sie aufrufen, kann abweichen, wenn Sie eine VM mit einem anderen Hostnamen verwenden.
Screenshot der lokalen Test-App in einem Browser
In der oberen Zeile der App enthält das Steuerfeld „Controls“ (Steuerelemente) die Schaltflächen zum Simulieren verschiedener Auktionskonfigurationen. Die beiden anderen Bereiche enthalten iFrames von den Websites des Werbetreibenden und des Publishers.
Screenshot von Interessengruppen in den Chrome-Entwicklertools.
Klicken Sie dann im Bereich „Einstellungen“ auf die Schaltflächen, um verschiedene Auktionstypen zu simulieren.
Wenn die B&A Services und die Local Testing App richtig eingerichtet sind, wird die oben genannte Anzeige im Bereich „Publisher site iframe“ gerendert.
5.3 Auktionskonfiguration für lokale Test-App
In der Companion-App für lokale Tests werden die folgenden Teilnehmer gehostet, die sich durch die Portnummer unterscheiden (ein anderer Port gilt als ursprungsübergreifend):
Teilnehmer | Beschreibung | Port |
Advertiser | Lädt DSP-Tags auf der Seite |
|
Publisher | SSP-Tags auf der Seite werden geladen |
|
| Käufer über das Gerät |
|
| Käufer über das Gerät |
|
| B&A-Käufer |
|
| B&A-Käufer |
|
| Verkäufer der obersten Ebene |
|
| Verkäufer, der nur auf dem Gerät verkauft |
|
| Verkäufer mit B&A-only |
|
| Verkäufer mit mehreren Vertriebskanälen |
|
Es gibt vier DSPs:
DSP-A
undDSP-B
nehmen an Auktionen auf dem Gerät teilDSP-X
undDSP-Y
nehmen an B&A-Auktionen teil
Es gibt vier SSPs und jeder Verkäufer führt eine andere Auktionskonfiguration aus:
SSP-OD
führt eine Auktion nur auf dem Gerät ausSSP-BA
führt eine Auktion nur für B&A durchSSP-MIX
führt eine Auktion im gemischten Modus durchSSP-TOP
führt eine Mehrfachkundenauktion durchSSP-OD/BA/MIX
als Komponentenverkäufer an der Mehrfachverkäuferauktion vonSSP-TOP
teilnehmen
Das vollständige Architekturdiagramm finden Sie hier.
5.4 Konfiguration von Gebots- und Auktionsdiensten
In diesem Codelab führen wir zwei Gruppen von B&A parallel aus.
Festgelegt | Dienst | Teilnehmer |
|
Set A | Gebotsdienst |
|
|
BFE-Dienst |
|
| |
Auktionsdienst |
|
| |
SFE-Dienst |
|
| |
Set B | Gebotsdienst |
|
|
BFE-Dienst |
|
| |
Auktionsdienst |
|
| |
SFE-Dienst |
|
| |
App | App für lokales Testen | Alle |
|
- In Gruppe A werden die Käuferdienste von
DSP-X
und die Verkäuferdienste vonSSP-BA
verwendet. - In Set B werden die Käuferdienste von
DSP-Y
und die Verkäuferdienste vonSSP-MIX
verwendet.
Für die Kommunikation zwischen der Local Testing App und B&A Services wird ein Docker-Brückennetzwerk verwendet. Das Brückennetzwerk ba-dev
wird vom Einrichtungsskript der Local Testing App erstellt. Den B&A-Diensten wird eine IP-Adresse im Subnetz von 192.168.84.0
zugewiesen.
Wenn Sie beispielsweise den SFE von Set A über die Anwendung aufrufen, wird die Netzwerkadresse von 192.168.84.104:50053
verwendet. Wenn Sie das Mock-Gebotsskript von DSP-X in BFE laden, wird https://192.168.84.100:5003/generate-bid.js
verwendet.
6. Zusammenfassung
Wir hoffen, dass Sie sich inzwischen mit der lokalen Ausführung des B&A Services-Stacks auf Ihrem Computer vertraut gemacht haben und besser verstehen, wie die Dienste miteinander kommunizieren.
6.1. Technischer Support
- Wenn Sie Fragen zur Einrichtung der Local Testing App haben, erstellen Sie ein Problem im LTA-Repository.
- Wenn Sie eine Frage zu Bidding and Auction Services haben, erstellen Sie ein Problem im B&A Services-Repository.
- Wenn Sie eine allgemeine Frage zur Privacy Sandbox haben, erstellen Sie ein Problem im Repository „privacy-sandbox-dev-support“.