1. Введение
Служба торгов и аукционов (B&A) состоит из 4 служб для покупателей и продавцов, которые помогают проводить аукционы с защищенной аудиторией :
Стек покупателя:
- Обслуживание покупателей
- Служба торгов
Стек продавца:
- Внешнее обслуживание продавца
- Аукционный сервис
В этой лаборатории кода вы узнаете, как настроить и протестировать комплексную настройку в вашей локальной среде. Ожидается, что пошаговое руководство займет около 1 часа, не считая времени на начальную сборку службы.
Несмотря на то, что вы можете работать только над кодом на стороне покупателя или кодом на стороне продавца, полезно настроить сквозной поток в вашей локальной среде, чтобы лучше понять, как стеки покупателя и продавца работают друг с другом. Настроив оба стека, вы сможете быть более уверенными в дальнейшем при интеграции с соответствующим стеком покупателя или продавца другой стороны. Локальное тестирование сервисов также экономит затраты на разработку.
В этой лаборатории кода мы будем использовать приложение B&A Local Testing App в качестве сопутствующего руководства.
Сопутствующее приложение для локального тестирования содержит различные ресурсы для покупателей и продавцов, используемые на аукционе B&A. Приложение также предоставляет пользовательский интерфейс по адресу http://localhost:3000
, где вы можете моделировать различные конфигурации аукциона.
2. Настройка среды
2.1 Подготовьте машину с Linux
Используйте локальный компьютер с Linux или подготовьте виртуальную машину Linux от выбранного вами облачного провайдера. Чтобы сократить время сборки, рекомендуется использовать как минимум 16 ядер, а предпочтительно — 32+ ядер.
Обратите внимание, что мы будем загружать HTML-страницу с http://localhost:3000
этого компьютера. Если виртуальная машина не имеет графического интерфейса, убедитесь, что порт 3000
доступен вашему локальному компьютеру, чтобы вы могли подключиться к нему.
2.2 Установите Докер
Мы используем Docker для запуска сервисов и приложения для локального тестирования.
Мы будем использовать удобный скрипт для установки Docker в тестовой среде.
# 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
Предупреждение. При настройке без sudo группа Docker предоставляет пользователю привилегии корневого уровня. Чтобы узнать больше, прочтите руководство по Docker без sudo.
2.3. Запустите сопутствующее приложение для локального тестирования.
Сопутствующее приложение предоставляет такие ресурсы, как макеты сценариев назначения ставок и оценки, а также макеты конечных точек K/V BYOS. Приложение следует запускать перед запуском служб B&A, чтобы ресурсы можно было загрузить в службы.
Откройте репозиторий приложения для локального тестирования :
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
Из корня репозитория запустите скрипт установки :
./setup
Сценарий установки создаст сеть Docker ba-dev
, сгенерирует сертификаты SSL и создаст образ тестового приложения.
После успешной сборки запустите стартовый скрипт :
./start
3. Создайте и запустите B&A локально.
3.1 Удаление служб B&A
Мы запустим два набора служб B&A на одном компьютере, поэтому перенесем репозиторий в две разные папки.
Набор А:
Разверните репозиторий B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Набор Б
Разверните репозиторий B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Создание сервисов
В корневой папке каждой папки B&A выполните следующую команду, чтобы собрать все 4 службы:
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
Приведенная выше команда создаст local
экземпляр версии для разработки ( non_prod
) для Google Cloud Platform ( gcp
) всех четырех сервисов. При необходимости обновите флаг --platform
для выбранного вами облачного провайдера. Чтобы узнать больше о флагах сборки, проверьте файл build_and_test_all_docker
.
Первоначальная сборка может занять 2 часа при использовании 64-ядерной машины, а время сборки линейно зависит от количества ядер. Если вы используете 32-ядерную машину, это может занять 4 часа. Если вы используете 16-ядерный компьютер, это может занять 8 часов.
Обратите внимание, что последующие сборки используют кеш, и каждая сборка должна занимать около 5–20 минут.
( Во время написания этой кодовой лаборатории я встретил Рэндалла Манро из xkcd и сказал ему, что добавил сюда этот комикс .)
3.3 Запуск служб
Для нашего тестирования мы запустим 8 сервисов (по 4 сервиса на стек). Каждая команда настроена на использование ресурсов, предоставляемых приложением локального тестирования. Настоятельно рекомендуется использовать оконный менеджер, например tmux
.
Откройте как минимум 8 дополнительных окон терминала и выполните следующие команды в каждом сеансе.
Обратите внимание, что сервер приложения для локального тестирования уже должен быть запущен в отдельном процессе, поскольку сценарии назначения ставок и оценки будут обслуживаться приложением.
3.3.1 Команды установки А
Услуга | Команда |
Служба торгов | |
Служба | |
Аукционный сервис | |
| |
3.3.2 Команды набора B
Услуга | Команда |
Служба торгов | |
Служба | |
Аукционный сервис | |
| |
3.3.2 Переменные среды для локальных сценариев запуска
Следующие переменные среды можно использовать для управления поведением при запуске.
Конверт вар | Доступность | Описание |
| Все услуги | Флаги, которые нужно установить для команды docker |
| Все услуги | При тестировании на локальном компьютере вам может потребоваться использовать самозаверяющий сертификат, который не проходит проверку однорангового SSL-сервера По умолчанию установлено значение |
| Все услуги | Уровень обслуживания журналов. Более высокий уровень предоставляет больше журналов. 0 — самый низкий, а 10 — самый высокий. По умолчанию |
| Служба торгов | Порт Службы торгов. По умолчанию |
| Служба торгов | URL логики назначения ставок |
| Служба торгов | Выход данных для обучения модели |
| Служба торгов | Аргументы в пользу заключения ставок |
| БФЭ Сервис | Порт службы BFE. По умолчанию |
| БФЭ Сервис | Адрес покупателя BYOS K/V |
| БФЭ Сервис | Адрес покупателя TEE K/V |
| БФЭ Сервис | Адрес службы торгов покупателя |
| Аукционный сервис | Порт аукционного сервиса. По умолчанию |
| Аукционный сервис | URL-адрес логики оценки |
| Аукционный сервис | URL отчета о выигрыше покупателя |
| Аукционный сервис | Скрипт отчета о выигрыше покупателя |
| Аукционный сервис | Скрипт отчета о выигрыше покупателя для PAS |
| СФЭ Сервис | Порт Службы SFE. По умолчанию |
| СФЭ Сервис | Адрес аукционной службы продавца |
| СФЭ Сервис | Адрес BYOS K/V продавца |
| СФЭ Сервис | Адрес TEE K/V продавца |
| СФЭ Сервис | Происхождение продавца |
| СФЭ Сервис | Адреса BFE покупателя |
4. Протестируйте с помощью Secure Invoke из командной строки.
4.1 Тестирование SFE
Вы также можете использовать инструмент Secure Invoke , включенный в пакет B&A Services, для вызова служб непосредственно из командной строки.
4.1.2 Полезная нагрузка SFE SelectAd
Следующий запрос JSON был заполнен настройкой аукциона B&A с одним продавцом 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]"
}
]
}
}
}
}
Сохраните файл как sfe-test.json
в корневой папке репозитория B&A Services Set A (сценарий сборки B&A скопирует файлы из корневой папки репозитория в папку /src/workspace
образа Docker).
4.1.2 Вызов SFE с безопасным вызовом
Запустите следующую команду из корневой папки репозитория 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
Если стеки B&A настроены правильно, вы получите следующий успешный ответ:
{"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
4.2.1 Запрос BFE GetBids
{
"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"
}
Сохраните файл как bfe-test.json
в корневой папке репозитория B&A Services.
4.2.2 Вызов BFE с безопасным вызовом
Запустите следующую команду из корневой папки репозитория 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
Если стеки B&A настроены правильно, BFE возвращает следующий ответ:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Проверка журналов SFE
Посетите терминал и проверьте журналы SFE. Мы пройдемся по некоторым примечательным журналам выходных данных.
4.3.1 Зашифрованная полезная нагрузка запроса SelectAd
В этих выводах журнала SFE мы находим зашифрованные полезные данные вызова navigator.getInterestGroupAdAuctionData()
. Эта полезная нагрузка генерируется браузером, отправляется из тега в SAS, а затем 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 Расшифрованная полезная нагрузка
В этом выводе мы находим расшифрованную полезную нагрузку вызова 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
к BFE
Запрос GetBids
отправляется от SFE к 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 Ответ GetBids
от BFE
BFE отвечает предложением:
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
в службу аукционов
После получения ставок SFE отправляет вызов ScoreAds
в службу аукционов для каждой ставки:
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
от аукционной службы
Аукционная служба продавца отвечает с оценкой желательности:
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
от SFE
Ответ SelectAd
от SFE шифруется и отправляется в 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. Протестируйте с помощью приложения Local Test App из браузера.
5.1 Откройте Chrome
Прочтите статью Chromium о запуске Chrome из командной строки и запустите его со следующими флагами:
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
Флаг установлен для загрузки фиктивного ключа координатора, который мы разместили по адресу https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json
Важно: убедитесь, что вы полностью вышли из всех экземпляров Chrome, прежде чем открывать его из командной строки с флагами B&A. Чтобы выйти из всех процессов Chrome, попробуйте запустить ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
из командной строки.
5.2 Посетите пользовательский интерфейс приложения локального тестирования
Пользовательский интерфейс приложения можно найти по адресу http://localhost:3000 в экземпляре браузера Chrome, который вы открыли с помощью флагов. Точный адрес, который вы посещаете, может отличаться, если вы используете виртуальную машину с другим именем хоста.
В верхнем ряду приложения панель «Управление» содержит кнопки для имитации различных конфигураций аукциона. Две другие панели содержат iframe с сайтов рекламодателя и издателя.
Когда вы нажимаете кнопку «Загрузить теги DSP» в iframe страницы рекламодателя, на страницу добавляется скрипт из каждого DSP. Эти сценарии добавляют пользователя в группы по интересам. Откройте Chrome DevTools и посетите «Приложение/Хранилище/Группы интересов», чтобы изучить группы интересов, к которым присоединяются теги DSP:
Затем нажмите кнопки на панели «Управление», чтобы смоделировать различные типы аукционов.
Если службы B&A и приложение для локального тестирования настроены правильно, предыдущее объявление отображается на панели «iframe сайта издателя».
5.3 Конфигурация аукциона приложения для локального тестирования
В сопутствующем приложении для локального тестирования размещаются следующие участники, различающиеся по номеру порта (другой порт считается перекрестным источником):
Участник | Описание | Порт |
Рекламодатель | Загружает теги DSP на странице | |
Издатель | Загружает теги SSP на странице | |
| Покупатель на устройстве | |
| Покупатель на устройстве | |
| Покупатель B&A | |
| Покупатель B&A | |
| Продавец высшего уровня | |
| Продавец только на устройстве | |
| Продавец только B&A | |
| Продавец смешанного режима | |
Существует четыре DSP:
-
DSP-A
иDSP-B
участвуют в аукционах на устройстве -
DSP-X
иDSP-Y
участвуют в аукционах B&A
Существует четыре SSP, и каждый продавец использует свою конфигурацию аукциона:
-
SSP-OD
проводит аукцион только на устройстве -
SSP-BA
проводит аукцион только для B&A -
SSP-MIX
проводит аукцион смешанного режима -
SSP-TOP
проводит аукцион с несколькими продавцами-
SSP-OD/BA/MIX
участвуют в качестве продавцов компонентов на многопрофильном аукционеSSP-TOP
-
Полную архитектуру можно посмотреть на схеме проекта .
5.4 Настройка служб ставок и аукционов
В этой кодовой лаборатории мы запускаем два набора B&A рядом друг с другом.
Набор | Услуга | Участник | сетевой адрес |
Набор А | Служба торгов | | |
БФЭ Сервис | | | |
Аукционный сервис | | | |
СФЭ Сервис | | | |
Набор Б | Служба торгов | | |
БФЭ Сервис | | | |
Аукционный сервис | | | |
СФЭ Сервис | | | |
Приложение | Приложение для локального тестирования | Все | |
- В наборе A услуги покупателя используются
DSP-X
, а услуги продавца используютсяSSP-BA
- В наборе B услуги покупателя используются
DSP-Y
, а услуги продавца используютсяSSP-MIX
Для связи между приложением Local Testing и службами B&A используется сеть моста Docker . Сеть моста ba-dev
создается сценарием установки приложения Local Testing. Службам B&A присвоен IP-адрес в подсети 192.168.84.0
.
Например, когда вы вызываете SFE Набора А из приложения, используется сетевой адрес 192.168.84.104:50053
. Когда вы загружаете сценарий ложного назначения ставок из DSP-X в BFE, используется https://192.168.84.100:5003/generate-bid.js
.
6. Подведем итоги
Мы надеемся, что к этому моменту вы уже ознакомились с локальным запуском стека B&A Services на своем компьютере и лучше поняли, как службы взаимодействуют друг с другом.
6.1. Техническая поддержка
- Если у вас есть вопрос по настройке приложения для локального тестирования, откройте вопрос в репозитории LTA .
- Если у вас есть вопрос об услугах по проведению торгов и аукционов, откройте его в репозитории B&A Services .
- Если у вас есть вопросы о Privacy Sandbox в целом, откройте вопрос в репозитории Privacy-sandbox-dev-support .
6.2 Узнать больше
- Узнайте больше об архитектуре B&A для Интернета.
- Узнайте больше об интеграции продавцов с B&A для Интернета.