1. Wprowadzenie
Usługi określania stawek i usługi aukcyjne (B&A) obejmują 4 usługi dla kupujących i sprzedawców, które ułatwiają przeprowadzanie aukcji Protected Audience:
Grupa kupujących:
- Usługa front-end dla kupującego
- Usługa określania stawek
Grupa sprzedawców:
- Usługa frontendu sprzedawcy
- Serwis aukcyjny
W tym laboratorium kodu dowiesz się, jak skonfigurować i przetestować całą konfigurację w środowisku lokalnym. Przejście przez ten proces powinno zająć około 1 godziny (nie licząc czasu potrzebnego na początkowe tworzenie usługi).
Nawet jeśli pracujesz tylko nad kodem po stronie kupującego lub sprzedającego, warto skonfigurować pełny proces w środowisku lokalnym, aby lepiej zrozumieć, jak elementy kupującego i sprzedającego współpracują ze sobą. Dzięki skonfigurowaniu obu pakietów możesz później łatwiej zintegrować się z odpowiednim pakietem kupującego lub sprzedającego innej strony. Testowanie usług lokalnie pozwala też zaoszczędzić na kosztach rozwoju.
W tym laboratorium kodu użyjemy aplikacji B&A Local Testing App jako przykładu.
Lokalna aplikacja do testowania zawiera różne zasoby kupujących i sprzedawców używane w aukcji B&A. Aplikacja udostępnia też interfejs http://localhost:3000
, w którym możesz symulować różne konfiguracje aukcji.
2. Konfiguracja środowiska
2.1 Przygotuj komputer z systemem Linux
Użyj lokalnego komputera z systemem Linux lub skonfiguruj maszynę wirtualną z systemem Linux na wybranej platformie usług chmurowych. Aby skrócić czas kompilacji, zalecamy co najmniej 16 rdzeni, a najlepiej 32 lub więcej.
Pamiętaj, że wczytujemy stronę HTML z http://localhost:3000
tego komputera. Jeśli maszyna wirtualna nie ma interfejsu graficznego, sprawdź, czy port 3000
jest dostępny na Twoim komputerze lokalnym, aby można było się z nim połączyć.
2.2 Zainstaluj Dockera
Używamy Dockera do uruchamiania usług i aplikacji do testowania lokalnego.
Do zainstalowania Dockera w środowisku testowym użyjemy skryptu ułatwiającego.
# 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
Ostrzeżenie: w przypadku konfiguracji bez sudo grupa Docker przyznaje użytkownikowi uprawnienia na poziomie root. Aby dowiedzieć się więcej, zapoznaj się z przewodnikiem dotyczącym Dockera bez sudo.
2.3 Uruchom aplikację do testowania lokalnego
Aplikacja towarzysząca udostępnia zasoby takie jak symulowane skrypty ustalania stawek i oceniania oraz symulowane punkty końcowe K/V BYOS. Aplikacja powinna zostać uruchomiona przed uruchomieniem usług B&A, aby zasoby mogły zostać załadowane do tych usług.
Przeciągnij w dół repozytorium aplikacji do testowania lokalnego:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
W katalogu głównym repozytorium uruchom skrypt konfiguracji:
./setup
Skrypt konfiguracji utworzy sieć Dockera ba-dev
, wygeneruje certyfikaty SSL i utworzy obraz testowej aplikacji.
Po pomyślnym utworzeniu wersji uruchom skrypt startowy:
./start
3. Tworzenie i uruchamianie testów B&A lokalnie
3.1 Wyświetlanie usług B&A
Na tym samym komputerze uruchomimy 2 zbiory usług B&A, więc pobieramy repozytorium do 2 różnych folderów.
Zestaw A:
Pobierz repozytorium B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Zestaw B
Pobierz repozytorium B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Utwórz usługi
W folderze głównym każdego foldera B&A uruchom to polecenie, aby skompilować wszystkie 4 usługi:
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
Powyższe polecenie skompiluje instancję local
wersji rozwojowej (non_prod
) dla Google Cloud Platform (gcp
) wszystkich 4 usług. W razie potrzeby zaktualizuj flagę --platform
dla wybranego dostawcy usług w chmurze. Więcej informacji o flagach kompilacji znajdziesz w pliku build_and_test_all_docker
.
Początkowa kompilacja może potrwać 2 godziny, jeśli używasz maszyny z 64 rdzeniami, a czas kompilacji jest proporcjonalny do liczby rdzeni. Jeśli używasz komputera z 32 rdzeniami, może to zająć 4 godziny. Jeśli używasz maszyny 16-rdzeniowej, może to zająć 8 godzin.
Pamiętaj, że kolejne kompilacje korzystają z pamięci podręcznej, a każda z nich powinna potrwać od 5 do 20 minut.
Odpowiednio zaktualizowany komiks xkcd:
(podczas pisania tego ćwiczenia spotkałem Randalla Munroe'a z xkcd i powiedziałem mu, że dodałem tu ten komiks)
3.3 Uruchamianie usług
Podczas testów uruchomimy 8 usług (po 4 na każdy stos). Każde polecenie jest skonfigurowane tak, aby używać zasobów udostępnianych przez aplikację do testowania lokalnego. Zdecydowanie zalecamy używanie menedżera okien, np. tmux
.
Otwórz co najmniej 8 dodatkowych okien terminala i w każdej sesji uruchom podane niżej polecenia.
Pamiętaj, że serwer aplikacji do testowania lokalnego musi być już uruchomiony w ramach osobnego procesu, ponieważ skrypty ustalania stawek i punktacji będą obsługiwane przez aplikację.
3.3.1 Polecenia zestawu A
Usługa | Polecenie |
|
|
|
|
|
|
|
|
3.3.2 Polecenia typu B
Usługa | Polecenie |
|
|
|
|
|
|
|
|
3.3.2 Zmienne środowiskowe dla lokalnych skryptów startowych
Aby kontrolować zachowanie podczas uruchamiania, możesz użyć tych zmiennych środowiskowych.
Zmienne środowiskowe | Dostępność | Opis |
| Wszystkie usługi | Flagi do ustawienia dla polecenia docker |
| Wszystkie usługi | Podczas testowania na komputerze lokalnym może być konieczne użycie samodzielnie podpisanego certyfikatu, który nie spełnia kryteriów weryfikacji peera SSL w Domyślna wartość to |
| Wszystkie usługi | Poziom logów usługi. Im wyższy poziom, tym więcej logów. 0 to najniższa wartość, a 10 – najwyższa. Domyślna wartość to |
| Usługa określania stawek | Port usługi określania stawek. Domyślna wartość to |
| Usługa określania stawek | Adres URL logiki ustalania stawek |
| Usługa określania stawek | Wychodzenie danych na potrzeby trenowania modelu |
| Usługa określania stawek | Argumenty do inferencji stawek |
| Usługa BFE | Port usługi BFE. Domyślna wartość to |
| Usługa BFE | Adres K/V kupującego w ramach usługi BYOS |
| Usługa BFE | Adres K/V kupującego w ramach usługi TEE |
| Usługa BFE | Adres usługi określania stawek kupującego |
| Serwis aukcyjny | Port usługi aukcji. Domyślna wartość to |
| Serwis aukcyjny | Adres URL logiki oceniania |
| Serwis aukcyjny | Adres URL raportu o wygrywaniu przez kupującego |
| Serwis aukcyjny | Skrypt raportowania zwycięstwa kupującego |
| Serwis aukcyjny | Skrypt raportowania skuteczności w kampaniach typu „wygrana” dla kupujących w przypadku kampanii w sieci reklamowej |
| Usługa SFE | Port SFE Service. Domyślna wartość to |
| Usługa SFE | Adres usługi aukcyjnej sprzedawcy |
| Usługa SFE | Adres K/V w usłudze BYOS sprzedawcy |
| Usługa SFE | Adres K/V w ramach TEE sprzedawcy |
| Usługa SFE | Kraj pochodzenia sprzedawcy |
| Usługa SFE | adresy BFE kupującego, |
4. Testowanie z użyciem Secure Invoke z poziomu wiersza poleceń
4.1. Testowanie SFE
Możesz też użyć narzędzia Secure Invoke, które jest zawarte w pakiecie usług B&A, aby wywoływać usługi bezpośrednio z wiersza poleceń.
4.1.2 Payload SFE SelectAd
Poniższe żądanie JSON zostało wypełnione konfiguracją aukcji B&A dla pojedynczego sprzedawcy w usłudze SSP-BA
:
{
"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]"
}
]
}
}
}
}
Zapisz plik jako sfe-test.json
w folderze głównym repozytorium usług B&A zestawu A(skrypt kompilacji usług B&A skopiuje pliki z folderu głównego repozytorium do folderu /src/workspace
obrazu Dockera).
4.1.2 Wywołanie SFE za pomocą Secure Invoke
W katalogu głównym repozytorium usług B&A uruchom to polecenie:
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
Jeśli grupy odpowiedzi są prawidłowo skonfigurowane, otrzymasz taką odpowiedź:
{"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 Testowanie w celu zapewnienia bezpieczeństwa danych
4.2.1 Prośba o wysłanie zapytania GetBids
do BFE
{
"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"
}
Zapisz plik jako bfe-test.json
w folderze głównym repozytorium usług B&A.
4.2.2 Wywoływanie BFE za pomocą Secure Invoke
W katalogu głównym repozytorium usług B&A uruchom to polecenie:
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
Jeśli stosy pytań i odpowiedzi są prawidłowo skonfigurowane, BFE zwraca tę odpowiedź:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Sprawdź dzienniki SFE
Otwórz terminal i sprawdź dzienniki SFE. Omówimy niektóre z najważniejszych logów w danych wyjściowych.
4.3.1 Zaszyfrowany ładunek żądania SelectAd
W tym wyjściu z dziennika SFE znajdziesz zaszyfrowany ładunek połączenia navigator.getInterestGroupAdAuctionData()
. Ten ładunek jest generowany przez przeglądarkę, wysyłany z tagu do SAS, a następnie SAS przekazuje go do SFE:
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 Odszyfrowany ładunek
Na tym wyjściu znajdziesz odszyfrowany ładunek wywołania navigator.getInterestGroupAdAuctionData()
:
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
prośba do BFE
Prośba GetBids
jest wysyłana z SFE do BFE:
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 Odpowiedź GetBids
z BFE
BFE odpowiada stawką:
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
żądanie do usługi aukcyjnej
Po otrzymaniu stawek SFE wywołuje usługę aukcji ScoreAds
dla każdej stawki:
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
odpowiedź z serwisu aukcyjnego
Usługa aukcji sprzedawcy odpowiada z wynikiem oceny pożądania:
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
odpowiedź SFE
Odpowiedź SelectAd
SFE jest zaszyfrowana i wysyłana do SAS:
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. Testowanie za pomocą lokalnej aplikacji testowej z przeglądarki
5.1 Otwórz Chrome
Przeczytaj artykuł o uruchamianiu Chrome z wiersza poleceń w Chromium i uruchom go z tymi flagami:
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
Flaga jest ustawiona tak, aby wczytywać klucz koordynatora testowego hostowanego pod adresem https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json
Ważne: zanim otworzysz Chrome z wiersza poleceń z flagami B&A, upewnij się, że wszystkie wystąpienia Chrome są zamknięte. Aby zamknąć wszystkie procesy Chrome, spróbuj uruchomić ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
z wiersza poleceń.
5.2 Otwórz interfejs aplikacji Local Testing
Interfejs aplikacji znajdziesz pod adresem http://localhost:3000 w przykładowej instancji przeglądarki Chrome, którą otworzyłeś za pomocą flag. Dokładny adres, który odwiedzasz, może być inny, jeśli używasz maszyny wirtualnej z innym nazwą hosta.
W górnym rzędzie aplikacji panel „Controls” (Kontrolki) zawiera przyciski do symulowania różnych konfiguracji aukcji. Pozostałe 2 panele zawierają ramki iframe z witryn reklamodawcy i wydawcy.
Gdy klikniesz przycisk „Wczytaj tagi DSP” w ramce reklamodawcy, na stronie zostanie dodany skrypt z każdego systemu reklamowego. Te skrypty dodają użytkownika do grup zainteresowań. Otwórz Narzędzia deweloperskie w Chrome i wejdź w „Aplikacja / Pamięć / Grupy zainteresowań”, aby sprawdzić grupy zainteresowań połączone przez tagi DSP:
Następnie kliknij przyciski w panelu „Elementy sterujące”, aby symulować różne typy aukcji.
Jeśli usługi B&A i aplikacja do testowania lokalnego są prawidłowo skonfigurowane, poprzedzająca reklama zostanie wyrenderowana w panelu „Element iframe witryny wydawcy”.
5.3 Konfiguracja aukcji w aplikacji do testowania lokalnego
W aplikacji do testowania lokalnego dostępnej w ramach aplikacji towarzyszącej są hostowane następujące komponenty, które różnią się numerem portu (inny port jest uważany za pochodzący z innego źródła):
Uczestnik | Opis | Port |
Reklamodawca | Ładuje tagi DSP na stronie. |
|
Wydawca | wczytuje tagi SSP na stronie; |
|
| Kupujący na urządzeniu |
|
| Kupujący na urządzeniu |
|
| Kupujący w ramach fuzji i przejęcia |
|
| Kupujący w ramach fuzji i przejęcia |
|
| Najlepszy sprzedawca |
|
| Sprzedawca tylko na urządzeniu |
|
| sprzedawca, który oferuje tylko B&A, |
|
| Sprzedawca w trybie mieszanym |
|
Istnieją 4 platformy DSP:
DSP-A
iDSP-B
biorą udział w aukcjach na urządzeniuDSP-X
iDSP-Y
biorą udział w aukcjach B&A.
Istnieją 4 SSP, a każdy sprzedawca korzysta z innej konfiguracji aukcji:
SSP-OD
przeprowadza aukcję tylko na urządzeniuSSP-BA
przeprowadza aukcję tylko z uwzględnieniem B&A,SSP-MIX
przeprowadza aukcję w trybie mieszanymSSP-TOP
przeprowadza aukcję wielu sprzedawcówSSP-OD/BA/MIX
biorą udział w aukcji wielu sprzedawcówSSP-TOP
jako sprzedawcy komponentów.
Pełną architekturę znajdziesz na diagramie projektu.
5.4 Konfiguracja określania stawek i usług aukcyjnych
W tym ćwiczeniu z programowania uruchamiamy 2 zestawy pytań i odpowiedzi.
Do startu | Usługa | Uczestnik | Adres sieciowy |
Zestaw A | Usługa określania stawek |
|
|
Usługa BFE |
|
| |
Serwis aukcyjny |
|
| |
Usługa SFE |
|
| |
Zestaw B | Usługa określania stawek |
|
|
Usługa BFE |
|
| |
Serwis aukcyjny |
|
| |
Usługa SFE |
|
| |
Promująca aplikację | Aplikacja do testów lokalnych | Wszystko |
|
- W zestawie A usługi kupującego są używane przez
DSP-X
, a usługi sprzedającego przezSSP-BA
. - W zbiorze B usługi kupującego są używane przez
DSP-Y
, a usługi sprzedającego są używane przezSSP-MIX
.
Do komunikacji między aplikacją do testowania lokalnego a usługami B&A używana jest sieć mostka Dockera. Sieć mostka ba-dev
jest tworzona przez skrypt konfiguracji aplikacji do testowania lokalnego. Usługom B&A jest przypisywany adres IP w podsieci 192.168.84.0
.
Na przykład podczas wywoływania SFE zestawu A z aplikacji używany jest adres sieciowy 192.168.84.104:50053
. Podczas wczytywania skryptu ustalania stawek symulowanych z DSP-X do BFE używany jest parametr https://192.168.84.100:5003/generate-bid.js
.
6. Podsumowanie
Mamy nadzieję, że do tej pory udało Ci się zapoznać z lokalnym uruchamianiem pakietu usług B&A na komputerze i lepiej zrozumieć, jak usługi komunikują się ze sobą nawzajem.
6.1. Pomoc techniczna
- Jeśli masz pytanie dotyczące konfigurowania aplikacji do testowania lokalnego, otwórz zgłoszenie w repozytorium LTA.
- Jeśli masz pytanie dotyczące usług ustalania stawek i aukcji, otwórz zgłoszenie w repozytorium usług ustalania stawek i aukcji.
- Jeśli masz pytanie na temat Piaskownicy prywatności, otwórz zgłoszenie w repozytorium privacy-sandbox-dev-support.
6.2 Więcej informacji
- Dowiedz się więcej o architekturze B&A w internecie
- Dowiedz się więcej o integracji sprzedawcy z B&A dla witryn internetowych.