1. Introduction
Les services d'enchères et de mise aux enchères se composent de quatre services permettant aux acheteurs et aux vendeurs de lancer des enchères Protected Audience:
Pile de l'acheteur:
- Service frontend de l'acheteur
- Service d'enchères
Pile du vendeur:
- Service Front-End du vendeur
- Service d'enchères
Cet atelier de programmation vous explique comment configurer et tester la configuration de bout en bout dans votre environnement local. La procédure de dépannage devrait prendre environ une heure, sans compter le temps de compilation du service initial.
Même si vous ne travaillez que sur le code côté acheteur ou côté vendeur, il est utile de configurer le flux de bout en bout dans votre environnement local pour mieux comprendre comment les piles acheteur et vendeur interagissent. En configurant les deux piles, vous pourrez être plus confiant lorsque vous intégrerez la pile acheteur ou vendeur d'une autre partie. Tester les services en local vous permet également de réduire vos coûts de développement.
Dans cet atelier de programmation, nous utiliserons l'application de test local B&A comme guide.
L'application de test locale associée héberge diverses ressources d'acheteurs et de vendeurs utilisées dans une mise aux enchères d'enchères et de mises aux enchères. L'application fournit également une UI sur http://localhost:3000
, où vous pouvez simuler différentes configurations d'enchères.
2. Cofiguration de l'environnement
2.1 Préparer une machine Linux
Utilisez une machine Linux locale ou provisionnez une VM Linux du fournisseur cloud de votre choix. Pour améliorer le temps de compilation, nous vous recommandons d'utiliser au moins 16 cœurs, et de préférence 32 cœurs ou plus.
Notez que nous allons charger une page HTML à partir de http://localhost:3000
de cette machine. Si la VM ne fournit pas d'IUG, assurez-vous que le port 3000
est accessible à votre ordinateur local afin de pouvoir vous y connecter.
2.2 Installer Docker
Nous utilisons Docker pour exécuter les services et l'application de test locale.
Nous allons utiliser le script pratique pour installer Docker dans un environnement de test.
# 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
Avertissement: Avec la configuration sans sudo, le groupe Docker accorde à l'utilisateur des privilèges de niveau racine. Pour en savoir plus, consultez le guide Docker sans sudo.
2.3 Démarrer l'application de test local associée
L'application associée fournit des ressources telles que des scripts d'enchères/d'évaluation fictifs et des points de terminaison BYOS K/V fictifs. L'application doit être démarrée avant l'exécution des services d'enchères et de mise aux enchères afin que les ressources puissent être chargées dans les services.
Téléchargez le dépôt de l'application de test local:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
À partir de la racine du dépôt, exécutez le script de configuration:
./setup
Le script de configuration crée le réseau Docker ba-dev
, génère des certificats SSL et compile l'image de l'application de test.
Une fois la compilation terminée, exécutez le script de démarrage:
./start
3. Créer et exécuter des tests A/B en local
3.1 Télécharger les services d'enchères et de mise aux enchères
Nous allons exécuter deux ensembles de services d'enchères et de mise aux enchères sur la même machine. Nous allons donc extraire le dépôt dans deux dossiers différents.
Ensemble A:
Téléchargez le dépôt de mise aux enchères et d'enchères:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Ensemble B
Téléchargez le dépôt de mise aux enchères et d'enchères:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Créer les services
Depuis le dossier racine de chaque dossier d'enchères et de mise aux enchères, exécutez la commande suivante pour compiler les quatre services:
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
La commande ci-dessus crée une instance local
du build de développement (non_prod
) pour Google Cloud Platform (gcp
) de l'ensemble des quatre services. Si nécessaire, mettez à jour l'indicateur --platform
avec le fournisseur de services cloud de votre choix. Pour en savoir plus sur les options de compilation, consultez le fichier build_and_test_all_docker
.
La compilation initiale peut prendre deux heures si vous utilisez une machine à 64 cœurs. Le temps de compilation augmente de manière linéaire en fonction du nombre de cœurs. Sur une machine à 32 cœurs, cela peut prendre quatre heures. Si vous utilisez une machine à 16 cœurs, cela peut prendre huit heures.
Notez que les compilations suivantes utilisent le cache, et que chacune d'elles prend environ cinq à 20 minutes.
Bande dessinée xkcd pertinente:
(J'ai rencontré Randall Munroe de xkcd pendant la rédaction de cet atelier de programmation et je lui ai dit que j'avais ajouté cette bande dessinée ici.)
3.3 Exécuter les services
Pour nos tests, nous allons exécuter huit services (quatre services par pile). Chaque commande est configurée pour utiliser les ressources fournies par l'application de test local. Il est vivement recommandé d'utiliser un gestionnaire de fenêtres tel que tmux
.
Ouvrez au moins huit autres fenêtres de terminal et exécutez les commandes suivantes dans chaque session.
Notez que le serveur de l'application de test local doit déjà s'exécuter dans un processus distinct, car les scripts d'enchères et d'évaluation seront diffusés par l'application.
3.3.1 Commandes de l'ensemble A
Service | Commande |
Service d'enchères |
|
Service BFE |
|
Service d'enchères |
|
Service |
|
3.3.2 Commandes de l'ensemble B
Service | Commande |
Service d'enchères |
|
Service BFE |
|
Service d'enchères |
|
Service |
|
3.3.2 Variables d'environnement pour les scripts de démarrage locaux
Les variables d'environnement suivantes peuvent être utilisées pour contrôler le comportement de démarrage.
Var. env. | Disponibilité | Description |
| Tous les services | Options à définir pour la commande docker |
| Tous les services | Lorsque vous effectuez des tests sur votre machine locale, vous devrez peut-être utiliser un certificat autosigné qui échoue à la vérification de la validation des pairs SSL de La valeur par défaut est |
| Tous les services | Niveau des journaux de service. Un niveau plus élevé fournit plus de journaux. 0 correspond à la valeur la plus basse et 10 à la valeur la plus élevée. La valeur par défaut est |
| Service d'enchères | Port du service d'enchères. La valeur par défaut est |
| Service d'enchères | URL de la logique d'enchères |
| Service d'enchères | Sortie de données pour l'entraînement du modèle |
| Service d'enchères | Arguments pour l'inférence des enchères |
| Service BFE | Port du service BFE. La valeur par défaut est |
| Service BFE | Adresse K/V BYOS de l'acheteur |
| Service BFE | Adresse K/V du TEE de l'acheteur |
| Service BFE | Adresse du service d'enchères de l'acheteur |
| Service d'enchères | Port du service d'enchères. La valeur par défaut est |
| Service d'enchères | URL de la logique d'évaluation |
| Service d'enchères | URL du rapport sur les victoires de l'acheteur |
| Service d'enchères | Script de création de rapports sur les victoires de l'acheteur |
| Service d'enchères | Script de création de rapports sur les victoires de l'acheteur pour PAS |
| Service SFE | Port du service SFE. La valeur par défaut est |
| Service SFE | Adresse du service d'enchères du vendeur |
| Service SFE | Adresse K/V BYOS du vendeur |
| Service SFE | Adresse du TEE K/V du vendeur |
| Service SFE | Origine du vendeur |
| Service SFE | Adresses BFE de l'acheteur |
4. Tester avec Secure Invoke à partir de la ligne de commande
4.1 Tests SFE
Vous pouvez également utiliser l'outil Secure Invoke inclus dans le package Services de mise aux enchères et de mise aux enchères pour appeler les services directement à partir de la ligne de commande.
4.1.2 Charge utile SelectAd
SFE
La requête JSON suivante a été renseignée avec la configuration des enchères d'achats et de ventes d'un seul vendeur 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]"
}
]
}
}
}
}
Enregistrez le fichier en tant que sfe-test.json
dans le dossier racine du dépôt des services B&A du jeu A(le script de compilation B&A copiera les fichiers du dossier racine du dépôt dans le dossier /src/workspace
de l'image Docker).
4.1.2 Appeler le service de premier plan sécurisé avec Invoke sécurisé
Exécutez la commande suivante à partir du dossier racine du dépôt des services d'enchères et de mise aux enchères:
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 les piles d'enchères et de mise aux enchères sont correctement configurées, vous recevrez la réponse de confirmation suivante:
{"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 Tests BFE
4.2.1 Demande GetBids
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"
}
Enregistrez le fichier sous le nom bfe-test.json
dans le dossier racine du dépôt des services d'enchères et de mise aux enchères.
4.2.2 Appeler le BFE avec l'appel sécurisé
Exécutez la commande suivante à partir du dossier racine du dépôt des services d'enchères et de mise aux enchères:
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 les piles d'enchères et de mise aux enchères sont configurées correctement, BFE renvoie la réponse suivante:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Vérifier les journaux SFE
Accédez au terminal et vérifiez les journaux SFE. Nous allons passer en revue certains des journaux notables de la sortie.
4.3.1 Charge utile chiffrée de la requête SelectAd
Dans cette sortie de journal SFE, nous trouvons la charge utile chiffrée de l'appel navigator.getInterestGroupAdAuctionData()
. Cette charge utile est générée par le navigateur, envoyée de la balise à SAS, puis transmise par SAS à 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 Charge utile déchiffrée
Dans cette sortie, nous trouvons la charge utile déchiffrée de l'appel 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 Demande GetBids
à la BFE
La requête GetBids
est envoyée de la SFE à la 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 Réponse GetBids
du BFE
Le BFE répond avec l'enchère:
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 Requête ScoreAds
au service d'enchères
Une fois les enchères reçues, SFE appelle le service d'enchères ScoreAds
pour chaque enchère:
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 Réponse ScoreAds
du service d'enchères
Le service d'enchères du vendeur répond avec le score de désirabilité:
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 Réponse SelectAd
de la SFE
La réponse SelectAd
de la SFE est chiffrée et envoyée à 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. Tester avec l'application de test locale à partir du navigateur
5.1 Ouvrir Chrome
Lisez l'article Chromium sur le démarrage de Chrome à partir de la ligne de commande, puis démarrez-le avec les indicateurs suivants:
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
L'indicateur est défini pour charger la clé de coordinateur fictif que nous avons hébergée sur https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json
.
Important: Assurez-vous d'avoir complètement fermé toutes les instances de Chrome avant de l'ouvrir à partir de la ligne de commande avec les indicateurs B&A. Pour quitter tous les processus Chrome, essayez d'exécuter ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
à partir de la ligne de commande.
5.2 Accéder à l'interface utilisateur de l'application de test local
L'interface utilisateur de l'application est disponible à l'adresse http://localhost:3000 dans l'instance du navigateur Chrome que vous avez ouverte avec les indicateurs. L'adresse exacte que vous consultez peut être différente si vous utilisez une VM avec un nom d'hôte différent.
Dans la ligne supérieure de l'application, le panneau "Commandes" contient les boutons permettant de simuler différentes configurations d'enchères. Les deux autres panneaux contiennent des iFrames provenant des sites de l'annonceur et de l'éditeur.
Lorsque vous cliquez sur le bouton "Charger les tags DSP" dans l'iFrame de la page de l'annonceur, un script de chaque DSP est ajouté à la page. Ces scripts ajoutent l'utilisateur à des groupes de centres d'intérêt. Ouvrez les outils pour les développeurs Chrome, puis accédez à "Application / Stockage / Groupes de centres d'intérêt" pour examiner les groupes de centres d'intérêt associés par les tags DSP:
Cliquez ensuite sur les boutons du panneau "Commandes" pour simuler différents types d'enchères.
Si les services d'enchères et de mise aux enchères et l'application de test local sont correctement configurés, l'annonce précédente s'affiche dans le panneau "Iframe du site de l'éditeur".
5.3 Configuration des enchères pour les applications de test local
Dans l'application de test local associée, les participants suivants sont hébergés, différenciés par le numéro de port (un port différent est considéré comme multi-origine):
Participant | Description | Port |
Annonceur | Charge les balises DSP sur la page |
|
Éditeur | Charge les balises SSP sur la page |
|
| Acheteur sur l'appareil |
|
| Acheteur sur l'appareil |
|
| Acheteur de produits et services |
|
| Acheteur de produits et services |
|
| Vendeur de premier niveau |
|
| Vendeur sur l'appareil uniquement |
|
| Vendeur d'occasions et de nouveautés uniquement |
|
| Vendeur utilisant les transports mixtes |
|
Il existe quatre DSP:
DSP-A
etDSP-B
participent aux enchères sur l'appareilDSP-X
etDSP-Y
participent aux enchères de mise aux enchères et de mise aux enchères avec enchères.
Il existe quatre SSP, et chaque vendeur exécute une configuration d'enchères différente:
SSP-OD
exécute une mise aux enchères sur l'appareil uniquementSSP-BA
exécute une mise aux enchères uniquement pour les enchères et les mises aux enchèresSSP-MIX
exécute une mise aux enchères en mode mixteSSP-TOP
effectue une mise aux enchères multivendeur.SSP-OD/BA/MIX
participent en tant que vendeurs de composants à l'enchère multivendeur deSSP-TOP
Pour obtenir l'architecture complète, consultez le schéma de conception.
5.4 Configuration des services d'enchères et de mise aux enchères
Dans cet atelier de programmation, nous exécutons deux ensembles de questions/réponses côte à côte.
Prêt ? | Service | Participant | Adresse réseau |
Set A | Service d'enchères |
|
|
Service BFE |
|
| |
Service d'enchères |
|
| |
Service SFE |
|
| |
Ensemble B | Service d'enchères |
|
|
Service BFE |
|
| |
Service d'enchères |
|
| |
Service SFE |
|
| |
Application | Application de test local | Tous |
|
- Dans l'ensemble A, les services de l'acheteur sont utilisés par
DSP-X
et les services du vendeur sont utilisés parSSP-BA
. - Dans l'ensemble B, les services de l'acheteur sont utilisés par
DSP-Y
et les services du vendeur sont utilisés parSSP-MIX
.
Pour la communication entre l'application de test locale et les services d'enchères et de mise aux enchères, un réseau de pont Docker est utilisé. Le réseau de pont ba-dev
est créé par le script de configuration de l'application de test local. Une adresse IP est attribuée aux services d'enchères et de mise aux enchères dans le sous-réseau de 192.168.84.0
.
Par exemple, lorsque vous appelez le SFE de l'ensemble A à partir de l'application, l'adresse réseau de 192.168.84.104:50053
est utilisée. Lorsque vous chargez le script d'enchères fictives de DSP-X dans BFE, https://192.168.84.100:5003/generate-bid.js
est utilisé.
6. Conclusion
Nous espérons que vous avez maintenant compris comment exécuter la pile de services d'enchères et de mise aux enchères localement sur votre machine, et que vous avez mieux compris comment les services communiquent entre eux.
6.1. Assistance technique
- Si vous avez une question concernant la configuration de l'application de test local, ouvrez un problème dans le dépôt de l'application de test local.
- Si vous avez des questions sur les services d'enchères et de mise aux enchères, ouvrez un problème dans le dépôt des services d'enchères et de mise aux enchères.
- Si vous avez une question sur la Privacy Sandbox en général, ouvrez un problème dans le dépôt privacy-sandbox-dev-support.
6.2 En savoir plus
- En savoir plus sur l'architecture des enchères et des mises aux enchères pour le Web
- En savoir plus sur l'intégration des vendeurs à la place de marché pour le Web