1. Introducción
Los servicios de ofertas y subastas (B&A) incluyen 4 servicios para que compradores y vendedores faciliten una subasta de Protected Audience:
Pila de compradores:
- Servicio de frontend del comprador
- Servicio de licitación
Pila de vendedores:
- Servicio de frontend del vendedor
- Servicio de subastas
En este codelab, aprenderás a configurar y probar la configuración de extremo a extremo en tu entorno local. Se espera que la explicación de la función tarde aproximadamente 1 hora, sin incluir el tiempo de compilación inicial del servicio.
Aunque solo puedas trabajar en el código orientado a la compra o a la venta, es útil configurar el flujo de extremo a extremo en tu entorno local para comprender mejor cómo funcionan entre sí las pilas de compradores y vendedores. Si configuras ambas pilas, podrás tener más confianza más adelante cuando realices la integración con la pila de comprador o vendedor de otra parte. Probar los servicios de forma local también ahorra costos de desarrollo.
En este codelab, usaremos la app de pruebas locales de B&A como guía complementaria.
La app de prueba local complementaria aloja varios recursos de compradores y vendedores que se usan en una subasta de B&A. La app también proporciona una IU en http://localhost:3000
, en la que puedes simular varias configuraciones de subasta.
2. Configuración del entorno
2.1 Prepara una máquina con Linux
Usa una máquina local de Linux o aprovisiona una VM de Linux del proveedor de servicios en la nube que elijas. Para mejorar el tiempo de compilación, se recomienda al menos 16 núcleos como mínimo y más de 32 núcleos como preferencia.
Ten en cuenta que cargaremos una página HTML desde http://localhost:3000
de esta máquina. Si la VM no proporciona una GUI, asegúrate de que tu máquina local pueda acceder al puerto 3000
para que puedas conectarte a él.
2.2 Instala Docker
Usamos Docker para ejecutar los servicios y la aplicación de prueba local.
Usaremos la secuencia de comandos de conveniencia para instalar Docker en un entorno de prueba.
# 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
Advertencia: Con la configuración sin sudo, el grupo Docker otorga privilegios de nivel raíz al usuario. Lee la guía de Docker sin sudo para obtener más información.
2.3 Inicia la app de prueba local complementaria
La app complementaria proporciona recursos, como secuencias de comandos de ofertas o puntuación simuladas, y extremos de BYOS de K/V simulados. La app debe iniciarse antes de ejecutar los servicios de B&A para que los recursos se puedan cargar en los servicios.
Extrae el repositorio de la app de pruebas locales:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
Desde la raíz del repositorio, ejecuta la secuencia de comandos de configuración:
./setup
La secuencia de comandos de configuración creará la red de Docker ba-dev
, generará certificados SSL y compilará la imagen de la app de prueba.
Una vez que la compilación se realice correctamente, ejecuta la secuencia de comandos de inicio:
./start
3. Compila y ejecuta B&A de forma local
3.1 Extrae los servicios de B&A
Ejecutaremos dos conjuntos de servicios de B&A en la misma máquina, por lo que extraeremos el repositorio en dos carpetas diferentes.
Conjunto A:
Extrae el repositorio de B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Conjunto B
Extrae el repositorio de B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Compila los servicios
Desde la carpeta raíz de cada carpeta de B&A, ejecuta el siguiente comando para compilar los 4 servicios:
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
El comando anterior compilará una instancia local
de la compilación de desarrollo (non_prod
) para Google Cloud Platform (gcp
) de los 4 servicios. Si es necesario, actualiza la marca --platform
al proveedor de servicios en la nube que elijas. Para obtener más información sobre las marcas de compilación, consulta el archivo build_and_test_all_docker
.
La compilación inicial puede tardar 2 horas si se usa una máquina de 64 núcleos, y el tiempo de compilación se escala de forma lineal según la cantidad de núcleos. Si usas una máquina de 32 núcleos, puede tardar 4 horas. Si usas una máquina de 16 núcleos, es posible que demore 8 horas.
Ten en cuenta que las compilaciones posteriores usan la caché, y cada una debería tardar entre 5 y 20 minutos.
(Conocí a Randall Munroe de xkcd mientras escribía este codelab y le dije que agregué este cómic aquí).
3.3 Ejecuta los servicios
Para nuestras pruebas, ejecutaremos 8 servicios (4 servicios por pila). Cada comando está configurado para usar los recursos que proporciona la app de pruebas locales. Se recomienda usar un administrador de ventanas, como tmux
.
Abre al menos 8 ventanas de terminal adicionales y ejecuta los siguientes comandos en cada sesión.
Ten en cuenta que el servidor de la app de pruebas locales ya debe estar en ejecución en un proceso independiente, ya que la app publicará las secuencias de comandos de ofertas y puntuación.
3.3.1 Comandos de conjunto A
Servicio | Comando |
|
|
Servicio de BFE de |
|
Servicio de subastas de |
|
Servicio de SFE de |
|
3.3.2 Comandos del conjunto B
Servicio | Comando |
|
|
Servicio de BFE de |
|
Servicio de subastas de |
|
Servicio de SFE de |
|
3.3.2 Variables de entorno para las secuencias de comandos de inicio locales
Las siguientes variables de entorno se pueden usar para controlar el comportamiento de inicio.
Variable de entorno | Disponibilidad | Descripción |
| Todos los servicios | Marcas para establecer en el comando docker |
| Todos los servicios | Cuando realices pruebas en tu máquina local, es posible que debas usar un certificado autofirmado que falle en la verificación de pares de SSL de La configuración predeterminada es |
| Todos los servicios | Es el nivel de los registros de servicio. El nivel más alto proporciona más registros. 0 es el más bajo y 10 es el más alto. La configuración predeterminada es |
| Servicio de licitación | Es el puerto del servicio de ofertas. La configuración predeterminada es |
| Servicio de licitación | URL de la lógica de ofertas |
| Servicio de licitación | Salida de datos para el entrenamiento de modelos |
| Servicio de licitación | Argumentos para la inferencia de ofertas |
| Servicio de BFE | Es el puerto del servicio de BFE. La configuración predeterminada es |
| Servicio de BFE | Dirección de K/V de BYOS del comprador |
| Servicio de BFE | Dirección K/V de TEE del comprador |
| Servicio de BFE | Dirección del servicio de ofertas del comprador |
| Servicio de subastas | Es el puerto del servicio de subastas. La configuración predeterminada es |
| Servicio de subastas | URL de la lógica de puntuación |
| Servicio de subastas | URL del informe de éxito del comprador |
| Servicio de subastas | Guion de informes de éxito del comprador |
| Servicio de subastas | Guion de informes de éxito del comprador para PAS |
| Servicio de SFE | Es el puerto del servicio de SFE. La configuración predeterminada es |
| Servicio de SFE | Dirección del servicio de subastas del vendedor |
| Servicio de SFE | Dirección de K/V de BYOS del vendedor |
| Servicio de SFE | Dirección de K/V de TEE del vendedor |
| Servicio de SFE | Origen del vendedor |
| Servicio de SFE | Direcciones de BFE del comprador |
4. Cómo realizar pruebas con Secure Invoke desde la línea de comandos
4.1 Pruebas de SFE
También puedes usar la herramienta Secure Invoke que se incluye en el paquete de servicios de B&A para llamar a los servicios directamente desde la línea de comandos.
4.1.2 Carga útil de SelectAd
de SFE
La siguiente solicitud JSON se propagó con la configuración de subasta de B&A de un solo vendedor de 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]"
}
]
}
}
}
}
Guarda el archivo como sfe-test.json
en la carpeta raíz del repositorio de B&A Services del conjunto A(la secuencia de comandos de compilación de B&A copiará los archivos de la carpeta raíz del repositorio en la carpeta /src/workspace
de la imagen de Docker).
4.1.2 Llama a SFE con Secure Invoke
Ejecuta el siguiente comando desde la carpeta raíz del repositorio de B&A Services:
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
Si las pilas de B&A están configuradas correctamente, recibirás la siguiente respuesta correcta:
{"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 Pruebas de BFE
4.2.1 Solicitud de GetBids
de 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"
}
Guarda el archivo como bfe-test.json
en la carpeta raíz del repositorio de B&A Services.
4.2.2 Llama a BFE con Secure Invoke
Ejecuta el siguiente comando desde la carpeta raíz del repositorio de B&A Services:
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
Si las pilas de B&A están configuradas correctamente, BFE muestra la siguiente respuesta:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Verifica los registros de SFE
Visita la terminal y verifica los registros de SFE. Analizaremos algunos de los registros notables en el resultado.
4.3.1 Carga útil encriptada de la solicitud de SelectAd
En este resultado del registro de SFE, encontramos la carga útil encriptada de la llamada navigator.getInterestGroupAdAuctionData()
. El navegador genera esta carga útil, la envía de la etiqueta a SAS y, luego, SAS la reenvía a 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 Carga útil desencriptada
En este resultado, encontramos la carga útil desencriptada de la llamada 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 Solicitud de GetBids
a BFE
La solicitud de GetBids
se envía de SFE a 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 Respuesta GetBids
de BFE
BFE responde con la oferta:
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 Solicitud de ScoreAds
al servicio de subastas
Después de recibir las ofertas, SFE realiza la llamada ScoreAds
al servicio de subastas para cada oferta:
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 Respuesta ScoreAds
del servicio de subastas
El servicio de subasta del vendedor responde con la puntuación de deseabilidad:
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 Respuesta SelectAd
de SFE
La respuesta SelectAd
del SFE se encripta y se envía a 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. Prueba con la app de prueba local desde el navegador
5.1 Abre Chrome
Lee el artículo de Chromium sobre cómo iniciar Chrome desde la línea de comandos y, luego, inícialo con las siguientes marcas:
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
La marca se establece para cargar la clave de coordinador simulada que alojamos en https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json
.
Importante: Asegúrate de haber salido por completo de todas las instancias de Chrome antes de abrirlo desde la línea de comandos con las marcas B&A. Para salir de todos los procesos de Chrome, intenta ejecutar ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
desde la línea de comandos.
5.2 Visita la IU de la app de prueba local
La IU de la app se encuentra en http://localhost:3000 en la instancia del navegador Chrome que abriste con las marcas. La dirección exacta que visites puede ser diferente si usas una VM con un nombre de host diferente.
En la fila superior de la app, el panel "Controls" contiene los botones para simular diferentes configuraciones de subasta. Los otros dos paneles contienen iframes de los sitios del anunciante y del publicador.
Cuando haces clic en el botón "Load DSP tags" en el iframe de la página del anunciante, se agrega una secuencia de comandos de cada DSP a la página. Esas secuencias de comandos agregan al usuario a grupos de intereses. Abre las Herramientas para desarrolladores de Chrome y visita "Application / Storage / Interest Groups" para examinar los grupos de intereses a los que se unieron las etiquetas de DSP:
Luego, haz clic en los botones del panel "Controles" para simular varios tipos de subastas.
Si los servicios de A/B y la app de pruebas locales están configurados correctamente, el anuncio anterior se renderiza en el panel "Iframe del sitio del publicador".
5.3 Configuración de subasta de la app de pruebas locales
En la app de pruebas locales complementaria, se alojan los siguientes participantes, diferenciados por el número de puerto (un puerto diferente se considera de origen cruzado):
Participante | Descripción | Puerto |
Advertiser | Carga etiquetas de DSP en la página. |
|
Editor | Carga etiquetas de SSP en la página. |
|
| Comprador integrado en el dispositivo |
|
| Comprador integrado en el dispositivo |
|
| Comprador de B&A |
|
| Comprador de B&A |
|
| Vendedor de nivel superior |
|
| Vendedor solo en el dispositivo |
|
| Vendedor solo de B&A |
|
| Vendedor de varios medios de transporte |
|
Existen cuatro DSP:
DSP-A
yDSP-B
participan en subastas integradas en el dispositivoDSP-X
yDSP-Y
participan en subastas de B&A
Hay cuatro SSP, y cada vendedor ejecuta una configuración de subasta diferente:
SSP-OD
ejecuta una subasta solo en el dispositivoSSP-BA
ejecuta una subasta solo de B&ASSP-MIX
ejecuta una subasta de modo mixto.SSP-TOP
ejecuta una subasta de varios vendedoresSSP-OD/BA/MIX
participan como vendedores de componentes de la subasta de varios vendedores deSSP-TOP
Para ver la arquitectura completa, consulta el diagrama de diseño.
5.4 Configuración de los servicios de ofertas y subastas
En este codelab, ejecutamos dos conjuntos de A/B en paralelo.
Establecer | Servicio | Participante | Dirección de red |
Conjunto A | Servicio de licitación |
|
|
Servicio de BFE |
|
| |
Servicio de subastas |
|
| |
Servicio de SFE |
|
| |
Conjunto B | Servicio de licitación |
|
|
Servicio de BFE |
|
| |
Servicio de subastas |
|
| |
Servicio de SFE |
|
| |
Aplicación | App de pruebas locales | Todos |
|
- En el conjunto A,
DSP-X
usa los servicios del comprador ySSP-BA
usa los servicios del vendedor. - En el conjunto B,
DSP-Y
usa los servicios del comprador ySSP-MIX
usa los servicios del vendedor.
Para comunicarse entre la app de pruebas locales y los servicios de B&A, se usa una red de puente de Docker. La secuencia de comandos de configuración de la app de pruebas locales crea la red de puente ba-dev
. A los servicios de B&A se les asigna una dirección IP en la subred de 192.168.84.0
.
Por ejemplo, cuando llamas al SFE del conjunto A desde la aplicación, se usa la dirección de red de 192.168.84.104:50053
. Cuando cargas la secuencia de comandos de ofertas simuladas de DSP-X en BFE, se usa https://192.168.84.100:5003/generate-bid.js
.
6. Conclusión
Esperamos que ya te hayas familiarizado con la ejecución de la pila de servicios de B&A de forma local en tu máquina y que hayas comprendido mejor cómo se comunican los servicios entre sí.
6.1. Asistencia técnica
- Si tienes alguna pregunta sobre la configuración de la app de pruebas locales, abre un problema en el repositorio de LTA.
- Si tienes alguna pregunta sobre los servicios de ofertas y subastas, abre un problema en el repositorio de los servicios de ofertas y subastas.
- Si tienes alguna pregunta sobre Privacy Sandbox en general, abre un problema en el repositorio de privacy-sandbox-dev-support.
6.2 Más información
- Obtén más información sobre la arquitectura de B&A para la Web.
- Más información sobre la integración de vendedores con B&A para la Web