1. ভূমিকা
সুরক্ষিত দর্শক নিলামের সুবিধার্থে ক্রেতা এবং বিক্রেতাদের জন্য বিডিং এবং নিলাম পরিষেবা (বিএন্ডএ) ৪টি পরিষেবা নিয়ে গঠিত:
ক্রেতার স্ট্যাক:
- ক্রেতার ফ্রন্ট-এন্ড পরিষেবা
- বিডিং পরিষেবা
বিক্রেতার স্ট্যাক:
- বিক্রেতা ফ্রন্ট-এন্ড পরিষেবা
- নিলাম পরিষেবা
এই কোডল্যাবটি আপনাকে আপনার স্থানীয় পরিবেশে এন্ড-টু-এন্ড সেটআপ সেট আপ এবং পরীক্ষা করার মাধ্যমে পরিচালিত করবে। ওয়াকথ্রুতে প্রায় ১ ঘন্টা সময় লাগবে বলে আশা করা হচ্ছে, প্রাথমিক পরিষেবা তৈরির সময় বাদ দিয়ে।
যদিও আপনি কেবল বাই-সাইড কোড অথবা সেল-সাইড কোড নিয়ে কাজ করতে পারেন, তবুও ক্রেতা এবং বিক্রেতার স্ট্যাকগুলি একে অপরের সাথে কীভাবে কাজ করে তা আরও ভালভাবে বোঝার জন্য আপনার স্থানীয় পরিবেশে এন্ড-টু-এন্ড ফ্লো সেট আপ করা কার্যকর। উভয় স্ট্যাক সেট আপ করার মাধ্যমে, আপনি পরবর্তীতে অন্য পক্ষের সংশ্লিষ্ট ক্রেতা বা বিক্রেতার স্ট্যাকের সাথে একীভূত হওয়ার সময় আরও আত্মবিশ্বাসী হতে পারেন। স্থানীয়ভাবে পরিষেবাগুলি পরীক্ষা করা আপনার উন্নয়ন খরচও সাশ্রয় করে।
এই কোডল্যাবে, আমরা ওয়াকথ্রু সঙ্গী হিসেবে B&A লোকাল টেস্টিং অ্যাপ ব্যবহার করব।
এই সহযোগী স্থানীয় পরীক্ষার অ্যাপটিতে B&A নিলামে ব্যবহৃত বিভিন্ন ক্রেতা এবং বিক্রেতার রিসোর্স রয়েছে। অ্যাপটি http://localhost:3000 এ একটি UIও প্রদান করে যেখানে আপনি বিভিন্ন নিলাম কনফিগারেশন সিমুলেট করতে পারবেন।
2. পরিবেশ সেটআপ
২.১ একটি লিনাক্স মেশিন প্রস্তুত করুন
একটি স্থানীয় লিনাক্স মেশিন ব্যবহার করুন, অথবা আপনার পছন্দের ক্লাউড প্রদানকারীর একটি লিনাক্স ভিএম সরবরাহ করুন। নির্মাণের সময় উন্নত করার জন্য, সর্বনিম্ন ১৬টি কোর সুপারিশ করা হয় এবং ৩২+ কোর পছন্দ করা হয়।
মনে রাখবেন যে আমরা এই মেশিনের http://localhost:3000 থেকে একটি HTML পৃষ্ঠা লোড করব। যদি VM কোনও GUI প্রদান না করে, তাহলে নিশ্চিত করুন যে পোর্ট 3000 আপনার স্থানীয় মেশিনে অ্যাক্সেসযোগ্য যাতে আপনি এটির সাথে সংযোগ করতে পারেন।
২.২ ডকার ইনস্টল করুন
আমরা পরিষেবা এবং স্থানীয় পরীক্ষার অ্যাপ্লিকেশন চালানোর জন্য ডকার ব্যবহার করি।
আমরা একটি পরীক্ষার পরিবেশে ডকার ইনস্টল করার জন্য সুবিধা স্ক্রিপ্ট ব্যবহার করব।
# 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 সেটআপের মাধ্যমে, ডকার গ্রুপ ব্যবহারকারীকে রুট-লেভেলের সুবিধা প্রদান করে। আরও জানতে sudo-less ডকার নির্দেশিকাটি পড়ুন।
২.৩ সঙ্গী লোকাল টেস্টিং অ্যাপটি শুরু করুন
কম্প্যানিয়ন অ্যাপটি মক বিডিং বা স্কোরিং স্ক্রিপ্ট এবং মক K/V BYOS এন্ডপয়েন্টের মতো রিসোর্স প্রদান করে। B&A পরিষেবাগুলি চালানোর আগে অ্যাপটি শুরু করা উচিত যাতে রিসোর্সগুলি পরিষেবাগুলিতে লোড করা যায়।
লোকাল টেস্টিং অ্যাপ রিপোজিটরিটি নামিয়ে আনুন:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
রিপোজিটরির রুট থেকে, সেটআপ স্ক্রিপ্টটি চালান:
./setup
সেটআপ স্ক্রিপ্টটি ba-dev ডকার নেটওয়ার্ক তৈরি করবে, SSL সার্টিফিকেট তৈরি করবে এবং টেস্ট অ্যাপ ইমেজ তৈরি করবে।
বিল্ডটি সফল হয়ে গেলে, start স্ক্রিপ্টটি চালান:
./start
৩. স্থানীয়ভাবে B&A তৈরি এবং পরিচালনা করুন
৩.১ বিএন্ডএ পরিষেবা বন্ধ করে দিন
আমরা একই মেশিনে দুটি সেট B&A পরিষেবা চালাবো, তাই আমরা রিপোজিটরিটি দুটি ভিন্ন ফোল্ডারে টেনে আনবো।
সেট 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
`
৩.২ পরিষেবাগুলি তৈরি করুন
প্রতিটি B&A ফোল্ডারের রুট ফোল্ডার থেকে, ৪টি পরিষেবা তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:
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
এই কমান্ডটি ৪টি পরিষেবার Google Cloud ( gcp ) এর জন্য ডেভেলপমেন্ট বিল্ড ( non_prod ) এর একটি local উদাহরণ তৈরি করবে। প্রয়োজনে আপনার পছন্দের ক্লাউড প্রদানকারীর কাছে --platform ফ্ল্যাগ আপডেট করুন। বিল্ড ফ্ল্যাগ সম্পর্কে আরও জানতে, build_and_test_all_docker ফাইলটি দেখুন।
৬৪-কোর মেশিন ব্যবহার করলে প্রাথমিক নির্মাণে ২ ঘন্টা সময় লাগতে পারে এবং নির্মাণের সময় কোর গণনা অনুসারে রৈখিকভাবে পরিবর্তিত হয়। যদি আপনি ৩২-কোর মেশিন ব্যবহার করেন, তাহলে ৪ ঘন্টা সময় লাগতে পারে। যদি আপনি ১৬-কোর মেশিন ব্যবহার করেন, তাহলে ৮ ঘন্টা সময় লাগতে পারে।
মনে রাখবেন যে পরবর্তী বিল্ডগুলি ক্যাশে ব্যবহার করে এবং প্রতিটি বিল্ড তৈরিতে প্রায় ৫-২০ মিনিট সময় লাগে।
একটি বিল্ড চলাকালীন দুজন প্রোগ্রামার ঝিমিয়ে পড়ে পার পেয়ে যাচ্ছে।
( এই কোডল্যাবটি লেখার সময় আমি xkcd-এর র্যান্ডাল মুনরোর সাথে দেখা করেছিলাম এবং তাকে বলেছিলাম যে আমি এখানে এই কমিকটি যুক্ত করেছি )
৩.৩ পরিষেবাগুলি চালান
আমাদের পরীক্ষার জন্য, আমরা ৮টি পরিষেবা (প্রতি স্ট্যাকে ৪টি পরিষেবা) চালাবো। প্রতিটি কমান্ড লোকাল টেস্টিং অ্যাপ দ্বারা প্রদত্ত রিসোর্স ব্যবহার করার জন্য সেট আপ করা হয়েছে। tmux এর মতো একটি উইন্ডো ম্যানেজার ব্যবহার করার জন্য এটি অত্যন্ত সুপারিশ করা হয়।
কমপক্ষে ৮টি অতিরিক্ত টার্মিনাল উইন্ডো খুলুন এবং প্রতিটি সেশনে নিম্নলিখিত কমান্ডগুলি চালান।
মনে রাখবেন যে লোকাল টেস্টিং অ্যাপ সার্ভারটি ইতিমধ্যেই একটি পৃথক প্রক্রিয়ায় চলমান থাকতে হবে, কারণ বিডিং এবং স্কোরিং স্ক্রিপ্টগুলি অ্যাপ দ্বারা পরিবেশিত হবে।
৩.৩.১ A কমান্ড সেট করুন
সেবা | কমান্ড |
| |
| |
| |
| |
৩.৩.২ B কমান্ড সেট করুন
সেবা | কমান্ড |
| |
| |
| |
| |
৩.৩.২ স্থানীয় স্টার্ট স্ক্রিপ্টের জন্য পরিবেশগত পরিবর্তনশীল
স্টার্ট-আপ আচরণ নিয়ন্ত্রণ করতে নিম্নলিখিত পরিবেশগত ভেরিয়েবলগুলি ব্যবহার করা যেতে পারে।
এনভ ভার | উপস্থিতি | বিবরণ |
| সকল পরিষেবা | ডকার কমান্ডের জন্য সেট করার জন্য পতাকা |
| সকল পরিষেবা | যখন আপনি আপনার স্থানীয় মেশিনে পরীক্ষা করছেন, তখন আপনাকে একটি স্ব-স্বাক্ষরিত শংসাপত্র ব্যবহার করতে হতে পারে যা ডিফল্ট হিসেবে |
| সকল পরিষেবা | পরিষেবা লগের স্তর। উচ্চতর স্তর আরও লগ সরবরাহ করে। 0 হল সর্বনিম্ন এবং 10 হল সর্বোচ্চ। ডিফল্ট |
| বিডিং পরিষেবা | বিডিং সার্ভিসের পোর্ট। ডিফল্ট |
| বিডিং পরিষেবা | বিডিং লজিকের URL |
| বিডিং পরিষেবা | মডেল প্রশিক্ষণের জন্য ডেটা নির্গমন |
| বিডিং পরিষেবা | বিডিং অনুমানের জন্য যুক্তি |
| বিএফই পরিষেবা | BFE সার্ভিসের পোর্ট। ডিফল্ট |
| বিএফই পরিষেবা | ক্রেতার BYOS K/V ঠিকানা |
| বিএফই পরিষেবা | ক্রেতার টিইই কে/ভি ঠিকানা |
| বিএফই পরিষেবা | ক্রেতার বিডিং পরিষেবার ঠিকানা |
| নিলাম পরিষেবা | নিলাম পরিষেবার পোর্ট। ডিফল্ট |
| নিলাম পরিষেবা | স্কোরিং লজিকের URL |
| নিলাম পরিষেবা | ক্রেতার জয়ের রিপোর্টিং URL |
| নিলাম পরিষেবা | ক্রেতার জয়ের প্রতিবেদনের স্ক্রিপ্ট |
| নিলাম পরিষেবা | PAS-এর জন্য ক্রেতার জয়ের প্রতিবেদনের স্ক্রিপ্ট |
| এসএফই পরিষেবা | SFE সার্ভিসের পোর্ট। ডিফল্ট |
| এসএফই পরিষেবা | বিক্রেতার নিলাম পরিষেবার ঠিকানা |
| এসএফই পরিষেবা | বিক্রেতার BYOS K/V ঠিকানা |
| এসএফই পরিষেবা | বিক্রেতার টিইই কে/ভি ঠিকানা |
| এসএফই পরিষেবা | বিক্রেতার উৎপত্তি |
| এসএফই পরিষেবা | ক্রেতার BFE ঠিকানা |
৪. কমান্ড লাইন থেকে সিকিউর ইনভোক দিয়ে পরীক্ষা করুন
৪.১ SFE পরীক্ষা
আপনি কমান্ড লাইন থেকে সরাসরি পরিষেবাগুলিতে কল করার জন্য B&A পরিষেবা প্যাকেজে অন্তর্ভুক্ত সিকিউর ইনভোক টুলটিও ব্যবহার করতে পারেন।
৪.১.২ SFE SelectAd পেলোড
নিম্নলিখিত JSON অনুরোধটি SSP-BA এর একক-বিক্রেতা B&A নিলাম সেটআপ দিয়ে পূর্ণ করা হয়েছে:
{
"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]"
}
]
}
}
}
}
Set A এর B&A Services রিপোজিটরির রুট ফোল্ডারে sfe-test.json হিসেবে ফাইলটি সংরক্ষণ করুন (B&A বিল্ড স্ক্রিপ্ট রেপোর রুট ফোল্ডারের ফাইলগুলি ডকার ইমেজের /src/workspace ফোল্ডারে কপি করবে)।
৪.১.২ সিকিউর ইনভোকের মাধ্যমে SFE-কে কল করুন
B&A পরিষেবা সংগ্রহস্থলের রুট ফোল্ডার থেকে নিম্নলিখিত কমান্ডটি চালান:
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]}}}
৪.২ বিএফই পরীক্ষা
৪.২.১ বিএফই 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"
}
B&A Services রিপোজিটরির রুট ফোল্ডারে ফাইলটি bfe-test.json হিসেবে সংরক্ষণ করুন।
৪.২.২ সিকিউর ইনভোকের মাধ্যমে BFE-কে কল করুন
B&A পরিষেবা সংগ্রহস্থলের রুট ফোল্ডার থেকে নিম্নলিখিত কমান্ডটি চালান:
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":{}}
৪.৩ SFE লগগুলি পরীক্ষা করুন
টার্মিনালে যান এবং SFE লগগুলি পরীক্ষা করুন। আমরা আউটপুটের কিছু উল্লেখযোগ্য লগের মধ্য দিয়ে যাব।
৪.৩.১ 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...
৪.৩.২ ডিক্রিপ্টেড পেলোড
এই আউটপুটে, আমরা 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: "[]" } }}
৪.৩.৩ BFE-এর কাছে GetBids অনুরোধ
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
৪.৩.৪ BFE থেকে GetBids প্রতিক্রিয়া
বিএফই দরপত্রের সাথে সাড়া দেয়:
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 {
}
৪.৩.৫ নিলাম পরিষেবার কাছে 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"
৪.৩.৬ নিলাম পরিষেবা থেকে 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
}
৪.৩.৭ SFE থেকে SelectAd প্রতিক্রিয়া
SFE এর SelectAd প্রতিক্রিয়া এনক্রিপ্ট করা হয় এবং 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"
৫. ব্রাউজার থেকে লোকাল টেস্ট অ্যাপ দিয়ে পরীক্ষা করুন
৫.১ ক্রোম খুলুন
কমান্ড লাইন থেকে Chrome শুরু করার বিষয়ে Chromium নিবন্ধটি পড়ুন এবং নিম্নলিখিত ফ্ল্যাগগুলি দিয়ে এটি শুরু করুন:
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 ইনস্ট্যান্স থেকে সম্পূর্ণরূপে বেরিয়ে এসেছেন। সমস্ত Chrome প্রক্রিয়া থেকে বেরিয়ে আসতে, কমান্ড লাইন থেকে ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9 চালানোর চেষ্টা করুন।
৫.২ লোকাল টেস্টিং অ্যাপ UI দেখুন
ফ্ল্যাগগুলি দিয়ে খোলা Chrome ব্রাউজার ইনস্ট্যান্সে http://localhost:3000 এ অ্যাপ UI পাওয়া যাবে। আপনি যদি ভিন্ন হোস্টনেম সহ VM ব্যবহার করেন তবে আপনার পরিদর্শন করা সঠিক ঠিকানাটি ভিন্ন হতে পারে।
ব্রাউজারে স্থানীয় টেস্টিং অ্যাপটি দেখার একটি স্ক্রিনশট
অ্যাপের উপরের সারিতে, "নিয়ন্ত্রণ" প্যানেলে বিভিন্ন নিলাম কনফিগারেশন সিমুলেট করার জন্য বোতাম রয়েছে। অন্য দুটি প্যানেলে বিজ্ঞাপনদাতা এবং প্রকাশক সাইট থেকে আইফ্রেম রয়েছে।
Chrome DevTools-এ আগ্রহের গোষ্ঠীগুলির একটি স্ক্রিনশট।
তারপর, বিভিন্ন ধরণের নিলাম সিমুলেট করতে "নিয়ন্ত্রণ" প্যানেলের বোতামগুলিতে ক্লিক করুন।

যদি B&A পরিষেবা এবং স্থানীয় টেস্টিং অ্যাপ সঠিকভাবে সেট আপ করা থাকে, তাহলে পূর্ববর্তী বিজ্ঞাপনটি "প্রকাশক সাইট আইফ্রেম" প্যানেলে রেন্ডার করা হবে।
৫.৩ স্থানীয় টেস্টিং অ্যাপ নিলাম কনফিগারেশন
কম্প্যানিয়ন লোকাল টেস্টিং অ্যাপে, নিম্নলিখিত অংশগ্রহণকারীদের হোস্ট করা হয়, পোর্ট নম্বর দ্বারা আলাদা করা হয় (একটি ভিন্ন পোর্টকে ক্রস-অরিজিন হিসাবে বিবেচনা করা হয়):
অংশগ্রহণকারী | বিবরণ | বন্দর |
বিজ্ঞাপনদাতা | পৃষ্ঠায় DSP ট্যাগ লোড করে | |
প্রকাশক | পৃষ্ঠায় SSP ট্যাগ লোড করে | |
| ডিভাইসে থাকা ক্রেতা | |
| ডিভাইসে থাকা ক্রেতা | |
| বিএন্ডএ ক্রেতা | |
| বিএন্ডএ ক্রেতা | |
| শীর্ষ-স্তরের বিক্রেতা | |
| শুধুমাত্র ডিভাইসে বিক্রেতা | |
| শুধুমাত্র বিএ-বিক্রেতা | |
| মিশ্র-মোড বিক্রেতা | |
চারজন ডিএসপি আছেন:
-
DSP-AএবংDSP-Bঅন-ডিভাইস নিলামে অংশগ্রহণ করে -
DSP-XএবংDSP-YB&A নিলামে অংশগ্রহণ করে
চারটি SSP আছে, এবং প্রতিটি বিক্রেতা একটি ভিন্ন নিলাম কনফিগারেশন পরিচালনা করে:
-
SSP-ODএকটি অন-ডিভাইস-অনলি নিলাম পরিচালনা করে -
SSP-BAশুধুমাত্র বিএন্ডএ-ভিত্তিক নিলাম পরিচালনা করে -
SSP-MIXএকটি মিশ্র-মোড নিলাম পরিচালনা করে -
SSP-TOPএকটি মাল্টি-সেলার নিলাম পরিচালনা করে-
SSP-OD/BA/MIXSSP-TOPএর মাল্টি-সেলার নিলামের কম্পোনেন্ট বিক্রেতা হিসেবে অংশগ্রহণ করে
-
সম্পূর্ণ স্থাপত্যের জন্য, নকশা চিত্রটি পরীক্ষা করুন।
৫.৪ বিডিং এবং নিলাম পরিষেবা কনফিগারেশন
এই কোডল্যাবে, আমরা দুটি সেট B&A একসাথে চালাই।
সেট | সেবা | অংশগ্রহণকারী | |
সেট A | বিডিং পরিষেবা | | |
বিএফই পরিষেবা | | | |
নিলাম পরিষেবা | | | |
এসএফই পরিষেবা | | | |
সেট বি | বিডিং পরিষেবা | | |
বিএফই পরিষেবা | | | |
নিলাম পরিষেবা | | | |
এসএফই পরিষেবা | | | |
অ্যাপ | স্থানীয় পরীক্ষার অ্যাপ | সব | |
- সেট A-তে, ক্রেতা পরিষেবাগুলি
DSP-Xদ্বারা ব্যবহৃত হয় এবং বিক্রেতা পরিষেবাগুলিSSP-BAদ্বারা ব্যবহৃত হয় - সেট B-তে, ক্রেতা পরিষেবাগুলি
DSP-Yদ্বারা ব্যবহৃত হয় এবং বিক্রেতা পরিষেবাগুলিSSP-MIXদ্বারা ব্যবহৃত হয়
লোকাল টেস্টিং অ্যাপ এবং বিএন্ডএ সার্ভিসেসের মধ্যে যোগাযোগের জন্য, একটি ডকার ব্রিজ নেটওয়ার্ক ব্যবহার করা হয়। লোকাল টেস্টিং অ্যাপের সেটআপ স্ক্রিপ্ট দ্বারা ba-dev ব্রিজ নেটওয়ার্ক তৈরি করা হয়। বিএন্ডএ সার্ভিসেসগুলিকে 192.168.84.0 এর সাবনেটে একটি আইপি ঠিকানা বরাদ্দ করা হয়।
উদাহরণস্বরূপ, যখন আপনি অ্যাপ্লিকেশন থেকে Set A এর SFE কল করছেন, তখন 192.168.84.104:50053 নেটওয়ার্ক ঠিকানা ব্যবহার করা হয়। যখন আপনি DSP-X থেকে BFE তে মক বিডিং স্ক্রিপ্ট লোড করছেন, তখন https://192.168.84.100:5003/generate-bid.js ব্যবহার করা হয়।
৬. শেষ করা
এখন পর্যন্ত, আমরা আশা করি আপনি আপনার মেশিনে স্থানীয়ভাবে B&A পরিষেবা স্ট্যাক চালানোর সাথে পরিচিত হয়েছেন এবং পরিষেবাগুলি কীভাবে একে অপরের সাথে যোগাযোগ করে সে সম্পর্কে আরও ভাল ধারণা অর্জন করেছেন।
৬.১. কারিগরি সহায়তা
- লোকাল টেস্টিং অ্যাপ সেট আপ করার বিষয়ে আপনার যদি কোন প্রশ্ন থাকে, তাহলে LTA রিপোজিটরিতে একটি সমস্যা খুলুন ।
- বিডিং এবং নিলাম পরিষেবা সম্পর্কে আপনার যদি কোন প্রশ্ন থাকে, তাহলে B&A পরিষেবা সংগ্রহস্থলে একটি সমস্যা খুলুন ।
৬.২ আরও জানুন
- ওয়েবের জন্য B&A আর্কিটেকচার সম্পর্কে আরও জানুন
- ওয়েবের জন্য B&A এর সাথে বিক্রেতার ইন্টিগ্রেশন সম্পর্কে আরও জানুন