1. Einführung
Gebots- und Auktionsdienste umfassen vier Dienste für Käufer und Verkäufer, die eine Protected Audience-Auktion ermöglichen:
Käufer-Stack:
- Käufer-Front-End-Dienst
- Gebotsdienst
Verkäufer-Stack:
- Verkäufer-Frontend-Dienst
- Auktionsdienst
In diesem Codelab erfahren Sie, wie Sie die End-to-End-Einrichtung in Ihrer lokalen Umgebung einrichten und testen. Die Schritt-für-Schritt-Anleitung dauert voraussichtlich etwa eine Stunde, ohne die Zeit für die Ersteinrichtung des Dienstes.
Auch wenn Sie nur an Code für die Käufer- oder Verkäuferseite arbeiten, ist es hilfreich, den End-to-End-Flow in Ihrer lokalen Umgebung einzurichten, um besser zu verstehen, wie die Käufer- und Verkäufer-Stacks miteinander funktionieren. Wenn Sie beide Stacks einrichten, können Sie später sicherer sein, wenn Sie den jeweiligen Käufer- oder Verkäufer-Stack einer anderen Partei einbinden. Wenn Sie die Dienste lokal testen, sparen Sie auch Entwicklungskosten.
In diesem Codelab verwenden wir die B&A Local Testing App als Leitfaden.
Die zugehörige App für lokale Tests beherbergt verschiedene Ressourcen für Käufer und Verkäufer, 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 Buildzeit zu verkürzen, werden mindestens 16 Kerne empfohlen. 32 Kerne oder mehr sind vorzuziehen.
Wir laden eine HTML-Seite von http://localhost:3000
dieses Computers. Wenn die VM keine Benutzeroberfläche bietet, prüfen Sie, ob auf Port 3000
von Ihrem lokalen Computer aus zugegriffen werden kann, 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 Praktikumsskript, 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 für Docker ohne sudo.
2.3 Begleitende App für lokale Tests starten
Die App bietet Ressourcen wie Mock-Gebots-/Bewertungsscripts und Mock-K/V-BYOS-Endpunkte. Die App sollte gestartet werden, bevor die B&A-Dienste ausgeführt werden, damit die Ressourcen in die Dienste geladen werden können.
Ziehen Sie das Repository der App für lokale Tests herunter:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
Führen Sie im Stammverzeichnis des Repositorys das Setup-Script aus:
./setup
Das Einrichtungsskript erstellt das ba-dev
-Docker-Netzwerk, generiert SSL-Zertifikate und erstellt das Image der Test-App.
Führen Sie nach Abschluss des Builds das Startscript aus:
./start
3. B&A lokal erstellen und ausführen
3.1 B&A-Dienste aufrufen
Wir werden zwei B&A-Dienste auf demselben Computer ausführen. Daher laden wir das Repository in zwei verschiedene Ordner herunter.
Set A:
Ziehen Sie das B&A-Repository herunter:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Set B
Ziehen 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 Stammverzeichnis 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 dem obigen Befehl wird eine local
-Instanz des Entwicklungsbuilds (non_prod
) für die Google Cloud Platform (gcp
) aller vier Dienste erstellt. Aktualisieren Sie bei Bedarf das --platform
-Flag auf den Cloud-Anbieter Ihrer Wahl. Weitere Informationen zu den Build-Flags finden Sie in der build_and_test_all_docker
-Datei.
Bei einem 64-Kern-Rechner kann der erste Build zwei Stunden dauern. Die Buildzeit skaliert linear mit der Kernanzahl. Auf einem 32-Kern-Rechner kann es vier Stunden dauern. Bei einem Computer mit 16 Kernen kann es acht Stunden dauern.
Für nachfolgende Builds wird der Cache verwendet. Jeder Build sollte etwa 5 bis 20 Minuten dauern.
(Ich habe Randall Munroe von xkcd beim Schreiben dieses Codelabs getroffen und ihm gesagt, dass ich dieses Comic hier hinzugefügt habe.)
3.3 Dienste ausführen
Für unsere Tests führen wir acht Dienste aus (vier Dienste pro Stack). Jeder Befehl ist so eingerichtet, dass die von der App für lokale Tests bereitgestellten Ressourcen verwendet werden. Wir empfehlen dringend, 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 Gebote und Bewertungsscripts von der App bereitgestellt werden.
3.3.1 Set-A-Befehle
Dienst | Befehl |
|
|
|
|
|
|
|
|
3.3.2 Befehle für Satz B
Dienst | Befehl |
|
|
|
|
|
|
|
|
3.3.2 Umgebungsvariablen für die lokalen Startscripts
Mit den folgenden Umgebungsvariablen können Sie das Startverhalten steuern.
Umgebungsvariable | Verfügbarkeit | Beschreibung |
| Alle Dienste | Flags für den docker-Befehl |
| Alle Dienste | Wenn Sie auf Ihrem lokalen Computer testen, müssen Sie möglicherweise ein selbst signiertes 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 Protokolle werden erfasst. 0 ist der niedrigste und 10 der höchste Wert. Die Standardeinstellung ist |
| Gebotsdienst | Der Port des Gebotsdienstes. Standardeinstellung: |
| Gebotsdienst | URL der Gebotslogik |
| Gebotsdienst | Daten-Export für das Modelltraining |
| Gebotsdienst | Argumente für die Gebotsableitung |
| BFE-Dienst | Port des BFE-Dienstes. Standardeinstellung: |
| BFE-Dienst | K/V-Adresse des Käufers für die Bring-Your-Own-Speicherlösung |
| BFE-Dienst | TEE-K/V-Adresse des Käufers |
| BFE-Dienst | Adresse des Gebotsdienstes des Käufers |
| Auktionsdienst | Der Port des Auktionsdiensts. Standardeinstellung: |
| Auktionsdienst | URL der Bewertungslogik |
| Auktionsdienst | URL für den Bericht zum Gewinn des Käufers |
| Auktionsdienst | Script für den Bericht zum Gewinn des Käufers |
| Auktionsdienst | Script für Berichte zu gewonnenen Geboten für PAS |
| SFE-Dienst | Port des SFE-Dienstes. Standardeinstellung: |
| SFE-Dienst | Adresse des Auktionsdienstes des Verkäufers |
| SFE-Dienst | K/V-Adresse des Verkäufers für Bring-Your-Own-Speicher |
| SFE-Dienst | TEE-K/V-Adresse des Verkäufers |
| SFE-Dienst | Herkunft des Verkäufers |
| SFE-Dienst | BFE-Adressen des Käufers |
4. Über die Befehlszeile mit Secure Invoke 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
-Nutzlast
Die folgende JSON-Anfrage wurde mit der B&A-Auktionseinrichtung für Einzelverkä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 Stammverzeichnis des B&A Services-Repositorys von Set A. Das B&A-Build-Script kopiert die Dateien im Stammverzeichnis 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 Stammverzeichnis 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 Stammverzeichnis des B&A Services-Repositorys.
4.2.2 BFE mit Secure Invoke aufrufen
Führen Sie den folgenden Befehl im Stammverzeichnis 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-Protokolle. Wir sehen uns einige der wichtigsten Protokolle in der Ausgabe an.
4.3.1 Verschlüsselte Nutzlast der SelectAd
-Anfrage
In dieser SFE-Logausgabe sehen wir die verschlüsselte Nutzlast des navigator.getInterestGroupAdAuctionData()
-Aufrufs. Diese Nutzlast wird vom Browser generiert, vom Tag an SAS gesendet und von SAS an die 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 sehen 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 von 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, sendet SFE für jedes Gebot den ScoreAds
-Aufruf an den Auktionsdienst:
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ätsfaktor:
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 der 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 App-Benutzeroberfläche 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 sich unterscheiden, wenn Sie eine VM mit einem anderen Hostnamen verwenden.
In der obersten Zeile der App finden Sie im Bereich „Steuerelemente“ die Schaltflächen zum Simulieren verschiedener Auktionskonfigurationen. Die anderen beiden Bereiche enthalten Iframes von den Websites des Werbetreibenden und des Publishers.
Wenn Sie im IFrame der Werbetreibendenseite auf die Schaltfläche „DSP-Tags laden“ klicken, wird der Seite ein Script von jeder DSP hinzugefügt. Über diese Skripte werden Nutzer Interessengruppen hinzugefügt. Öffnen Sie die Chrome-Entwicklertools und rufen Sie „Anwendung / Speicher / Interessengruppen“ auf, um die Interessengruppen zu prüfen, die über die DSP-Tags zusammengeführt wurden:
Klicken Sie dann auf die Schaltflächen im Bereich „Einstellungen“, um verschiedene Auktionstypen zu simulieren.
Wenn die B&A-Dienste und die App für lokale Tests richtig eingerichtet sind, wird die vorherige Anzeige im Bereich „Iframe der Publisher-Website“ gerendert.
5.3 Auktionskonfiguration für lokale App-Tests
In der zugehörigen App für lokale Tests werden die folgenden Teilnehmer gehostet, die sich anhand der Portnummer unterscheiden (ein anderer Port gilt als plattformübergreifend):
Teilnehmer | Beschreibung | Port |
Advertiser | DSP-Tags auf der Seite laden |
|
Publisher | Laden von SSP-Tags auf der Seite |
|
| Käufer auf dem Gerät |
|
| Käufer auf dem Gerät |
|
| B&A-Käufer |
|
| B&A-Käufer |
|
| Verkäufer der obersten Ebene |
|
| Verkäufer, der nur auf Geräten verfügbar ist |
|
| Verkäufer, der nur B&A-Artikel anbietet |
|
| Verkäufer mit gemischten Verkehrsmitteln |
|
Es gibt vier DSPs:
DSP-A
undDSP-B
nehmen an On-Device-Auktionen teilDSP-X
undDSP-Y
nehmen an B&A-Auktionen teil
Es gibt vier SSPs und jeder Verkäufer verwendet eine andere Auktionskonfiguration:
SSP-OD
führt eine Auktion nur auf dem Gerät durchSSP-BA
führt eine Auktion nur für Gebote und Anzeigen durchSSP-MIX
eine Auktion im gemischten Modus ausführtSSP-TOP
führt eine Mehrfachkunden-Auktion durchSSP-OD/BA/MIX
als Komponentenverkäufer an der Mehrfachkunden-Auktion vonSSP-TOP
teilnehmen
Die vollständige Architektur finden Sie im Designdiagramm.
5.4 Konfiguration von Gebots- und Auktionsdiensten
In diesem Codelab führen wir zwei Vergleichsgruppen parallel aus.
Fertig | Dienst | Teilnehmer |
|
Set A | Gebotsdienst |
|
|
BFE-Dienst |
|
| |
Auktionsdienst |
|
| |
SFE-Dienst |
|
| |
Set B | Gebotsdienst |
|
|
BFE-Dienst |
|
| |
Auktionsdienst |
|
| |
SFE-Dienst |
|
| |
App | App für lokale Tests | Alle |
|
- In Set 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 lokalen Test-App und B&A-Diensten wird ein Docker-Bridge-Netzwerk verwendet. Das ba-dev
-Bridge-Netzwerk wird vom Einrichtungsskript der lokalen Test-App erstellt. Den B&A-Diensten wird eine IP-Adresse im Subnetz von 192.168.84.0
zugewiesen.
Wenn Sie beispielsweise die SFE von Set A über die Anwendung aufrufen, wird die Netzwerkadresse 192.168.84.104:50053
verwendet. Wenn Sie das Mock-Bidding-Script aus 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 und ein besseres Verständnis dafür entwickelt haben, 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 Fragen zu Gebots- und Auktionsdiensten 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“.