1. مقدمه
Bidding & Auction Services (B&A) از 4 سرویس برای خریداران و فروشندگان برای تسهیل حراج مخاطب محافظت شده تشکیل شده است:
پشته خریدار:
- سرویس جلویی خریدار
- خدمات مناقصه
پشته فروشنده:
- خدمات فرانتاند فروشنده
- خدمات حراج
این کد لبه شما را از طریق راه اندازی و آزمایش راه اندازی انتها به انتها در محیط محلی خود راهنمایی می کند. انتظار میرود این پیادهروی تقریباً 1 ساعت طول بکشد، بدون در نظر گرفتن زمان ساخت سرویس اولیه.
حتی اگر ممکن است فقط روی کد سمت خرید یا کد سمت فروش کار کنید، راهاندازی جریان انتها به انتها در محیط محلیتان برای درک بهتر نحوه کار پشتههای خریدار و فروشنده با یکدیگر مفید است. با تنظیم هر دو پشته، بعداً وقتی با پشته خریدار یا فروشنده مربوطه طرف دیگر ادغام میشوید، میتوانید اطمینان بیشتری داشته باشید. تست کردن خدمات به صورت محلی نیز باعث صرفه جویی در هزینه توسعه شما می شود.
در این نرم افزار کد، ما از برنامه تست محلی B&A به عنوان یک همراه راهنما استفاده خواهیم کرد.
برنامه آزمایش محلی همراه، منابع مختلف خریدار و فروشنده مورد استفاده در حراج B&A را میزبانی می کند. این برنامه همچنین یک رابط کاربری در http://localhost:3000
ارائه می دهد که در آن می توانید پیکربندی های مختلف حراج را شبیه سازی کنید.
2. تنظیم محیط
2.1 یک ماشین لینوکس آماده کنید
از یک ماشین لینوکس محلی استفاده کنید یا یک VM لینوکس از ارائه دهنده ابر انتخابی خود تهیه کنید. برای بهبود زمان ساخت، حداقل 16 هسته به عنوان حداقل توصیه می شود و 32 هسته ترجیح داده می شود.
توجه داشته باشید که ما یک صفحه HTML را از http://localhost:3000
این دستگاه بارگذاری خواهیم کرد. اگر VM رابط کاربری گرافیکی ارائه نمی کند، مطمئن شوید که پورت 3000
برای دستگاه محلی شما قابل دسترسی است تا بتوانید به آن متصل شوید.
2.2 Docker را نصب کنید
ما از 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-less، گروه Docker امتیازات سطح ریشه را به کاربر اعطا می کند. راهنمای sudo-less Docker را بخوانید تا بیشتر بدانید.
2.3 برنامه تست محلی همراه را راه اندازی کنید
برنامه همراه منابعی مانند اسکریپتهای پیشنهادی ساختگی/ امتیازدهی و نقاط پایانی K/V BYOS را فراهم میکند. برنامه باید قبل از اجرای خدمات B&A راه اندازی شود تا بتوان منابع را در سرویس ها بارگیری کرد.
مخزن برنامه تست محلی را پایین بکشید:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
از ریشه مخزن، اسکریپت setup را اجرا کنید:
./setup
اسکریپت راهاندازی شبکه ba-dev
Docker را ایجاد میکند، گواهیهای SSL تولید میکند و تصویر برنامه آزمایشی را میسازد.
پس از موفقیت آمیز بودن ساخت، اسکریپت شروع را اجرا کنید:
./start
3. B&A را به صورت محلی بسازید و اجرا کنید
3.1 خدمات B&A را پایین بیاورید
ما دو مجموعه از خدمات B&A را روی یک دستگاه اجرا می کنیم، بنابراین مخزن را در دو پوشه مختلف پایین می آوریم.
مجموعه A:
مخزن B&A را پایین بکشید:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
مجموعه B
مخزن 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
) از هر 4 سرویس میسازد. در صورت نیاز، پرچم --platform
را به ارائه دهنده ابر انتخابی خود به روز کنید. برای کسب اطلاعات بیشتر در مورد پرچمهای ساخت، فایل build_and_test_all_docker
را بررسی کنید.
ساخت اولیه ممکن است 2 ساعت طول بکشد در صورت استفاده از یک ماشین 64 هسته ای، و زمان ساخت به صورت خطی بر اساس تعداد هسته مقیاس می شود. اگر از دستگاه 32 هسته ای استفاده می کنید، ممکن است 4 ساعت طول بکشد. اگر از دستگاه 16 هسته ای استفاده می کنید، ممکن است 8 ساعت طول بکشد.
توجه داشته باشید که بیلدهای بعدی از کش استفاده می کنند و هر ساخت باید حدود 5-20 دقیقه طول بکشد.
( من رندال مونرو از xkcd را در حین نوشتن این کد لبه ملاقات کردم و به او گفتم که این کمیک را اینجا اضافه کردم )
3.3 سرویس ها را اجرا کنید
برای آزمایش ما، 8 سرویس (4 سرویس در هر پشته) را اجرا خواهیم کرد. هر فرمان برای استفاده از منابع ارائه شده توسط Local Testing App تنظیم شده است. به شدت توصیه می شود از یک مدیر پنجره مانند tmux
استفاده کنید.
حداقل 8 پنجره ترمینال اضافی باز کنید و دستورات زیر را در هر جلسه اجرا کنید.
توجه داشته باشید که سرور برنامه تست محلی باید قبلاً در یک فرآیند جداگانه اجرا شود، زیرا اسکریپتهای مناقصه و امتیازدهی توسط برنامه ارائه میشوند.
3.3.1 دستورات A را تنظیم کنید
خدمات | فرمان |
| |
سرویس | |
سرویس حراج | |
سرویس | |
3.3.2 دستورات B را تنظیم کنید
خدمات | فرمان |
| |
سرویس | |
سرویس حراج | |
سرویس | |
3.3.2 متغیرهای محیطی برای اسکریپت های شروع محلی
برای کنترل رفتار راه اندازی می توان از متغیرهای محیطی زیر استفاده کرد.
Env var | در دسترس بودن | توضیحات |
| کلیه خدمات | پرچم هایی برای تنظیم دستور docker |
| کلیه خدمات | هنگامی که در حال آزمایش بر روی دستگاه محلی خود هستید، ممکن است لازم باشد از یک گواهی خودامضا استفاده کنید که در بررسی تأیید همتای SSL پیش فرض ها به |
| کلیه خدمات | سطح گزارش های خدمات. سطح بالاتر گزارش های بیشتری را فراهم می کند. 0 کمترین و 10 بیشترین است. پیش فرض |
| خدمات مناقصه | بندر خدمات مناقصه. پیش فرض |
| خدمات مناقصه | URL منطق مناقصه |
| خدمات مناقصه | خروجی داده ها برای آموزش مدل |
| خدمات مناقصه | استدلال برای استنباط مناقصه |
| سرویس BFE | پورت BFE Service. پیش فرض |
| سرویس BFE | آدرس BYOS K/V خریدار |
| سرویس BFE | آدرس TEE K/V خریدار |
| سرویس BFE | آدرس خدمات مناقصه خریدار |
| خدمات حراج | بندر خدمات حراج. پیش فرض |
| خدمات حراج | URL منطق امتیازدهی |
| خدمات حراج | URL گزارش برنده خریدار |
| خدمات حراج | اسکریپت گزارش برنده خریدار |
| خدمات حراج | اسکریپت گزارش برنده خریدار برای PAS |
| سرویس SFE | پورت سرویس SFE پیش فرض |
| سرویس SFE | آدرس خدمات حراج فروشنده |
| سرویس SFE | آدرس BYOS K/V فروشنده |
| سرویس SFE | آدرس TEE K/V فروشنده |
| سرویس SFE | منشاء فروشنده |
| سرویس SFE | آدرس های BFE خریدار |
4. با Secure Invoke از خط فرمان تست کنید
4.1 تست SFE
همچنین میتوانید از ابزار Secure Invoke که در بسته B&A Services موجود است برای تماس مستقیم با خدمات از خط فرمان استفاده کنید.
4.1.2 SFE SelectAd
payload
درخواست 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 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
به سرویس مزایده
پس از دریافت پیشنهادات، تماس ScoreAds
توسط SFE با سرویس حراج برای هر پیشنهاد انجام می شود:
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
از Auction Service
خدمات حراج فروشنده با نمره مطلوبیت پاسخ می دهد:
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 پاسخ Ad از SFE SelectAd
پاسخ 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. با برنامه تست محلی از مرورگر تست کنید
5.1 کروم را باز کنید
مقاله 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
میزبانی کرده ایم بارگیری کند.
مهم: قبل از باز کردن آن از خط فرمان با پرچمهای B&A، مطمئن شوید که از تمام نمونههای کروم خارج شدهاید. برای خروج از تمام فرآیندهای Chrome، ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
را اجرا کنید ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
.
5.2 از رابط کاربری برنامه تست محلی دیدن کنید
رابط کاربری برنامه را میتوانید در http://localhost:3000 در نمونه مرورگر Chrome که با پرچمها باز کردهاید، پیدا کنید. اگر از VM با نام میزبان متفاوت استفاده می کنید، آدرس دقیقی که بازدید می کنید ممکن است متفاوت باشد.
در ردیف بالای برنامه، پانل "کنترل ها" حاوی دکمه هایی برای شبیه سازی تنظیمات مختلف حراج است. دو پانل دیگر حاوی 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 | خدمات مناقصه | | |
سرویس BFE | | | |
خدمات حراج | | | |
سرویس SFE | | | |
مجموعه B | خدمات مناقصه | | |
سرویس BFE | | | |
خدمات حراج | | | |
سرویس SFE | | | |
برنامه | برنامه تست محلی | همه | |
- در مجموعه A، خدمات خریدار توسط
DSP-X
و خدمات فروشنده توسطSSP-BA
استفاده می شود. - در مجموعه B، خدمات خریدار توسط
DSP-Y
و خدمات فروشنده توسطSSP-MIX
استفاده می شود.
برای برقراری ارتباط بین Local Testing App و B&A Services، از شبکه Docker Bridge استفاده می شود. شبکه پل ba-dev
توسط اسکریپت راه اندازی برنامه تست محلی ایجاد شده است. به خدمات B&A یک آدرس IP در زیرشبکه 192.168.84.0
اختصاص داده شده است.
به عنوان مثال، هنگامی که از برنامه Set A's SFE تماس می گیرید، از آدرس شبکه 192.168.84.104:50053
استفاده می شود. هنگامی که اسکریپت پیشنهاد قیمت ساختگی را از DSP-X در BFE بارگیری می کنید، https://192.168.84.100:5003/generate-bid.js
استفاده می شود.
6. بسته بندی کنید
تا به حال، امیدواریم که با اجرای پشته خدمات B&A به صورت محلی بر روی دستگاه خود آشنا شده باشید و درک بهتری از نحوه ارتباط سرویس ها با یکدیگر به دست آورده باشید.
6.1. پشتیبانی فنی
- اگر در مورد راهاندازی برنامه تست محلی سؤالی دارید، مشکلی را در مخزن LTA باز کنید .
- اگر در مورد خدمات مزایده و مزایده سؤالی دارید، موضوعی را در مخزن خدمات B&A باز کنید .
- اگر در مورد Privacy Sandbox به طور کلی سؤالی دارید، یک مشکل را در مخزن privacy-sandbox-dev-support باز کنید .
6.2 بیشتر بدانید
- درباره معماری B&A برای وب بیشتر بیاموزید
- درباره ادغام فروشنده با B&A برای وب بیشتر بیاموزید