1. ভূমিকা
একটি সুরক্ষিত দর্শক নিলামের সুবিধার্থে ক্রেতা এবং বিক্রেতাদের জন্য বিডিং এবং নিলাম পরিষেবা (B&A) 4টি পরিষেবা নিয়ে গঠিত:
ক্রেতা স্ট্যাক:
- ক্রেতা ফ্রন্ট-এন্ড পরিষেবা
- বিডিং পরিষেবা
বিক্রেতার স্ট্যাক:
- বিক্রেতা ফ্রন্ট-এন্ড পরিষেবা
- নিলাম পরিষেবা
এই কোডল্যাব আপনাকে আপনার স্থানীয় পরিবেশে শেষ থেকে শেষ সেটআপ সেট আপ এবং পরীক্ষা করার মাধ্যমে নিয়ে যায়। প্রাথমিক পরিষেবা নির্মাণের সময় বাদ দিয়ে ওয়াকথ্রুতে প্রায় 1 ঘন্টা সময় লাগবে বলে আশা করা হচ্ছে।
যদিও আপনি শুধুমাত্র বাই-সাইড কোড বা সেল-সাইড কোডে কাজ করতে পারেন, তবে ক্রেতা এবং বিক্রেতার স্ট্যাকগুলি কীভাবে একে অপরের সাথে কাজ করে তা আরও ভালভাবে বোঝার জন্য আপনার স্থানীয় পরিবেশে এন্ড-টু-এন্ড ফ্লো সেট আপ করা দরকারী। উভয় স্ট্যাক সেট আপ করে, আপনি যখন অন্য পক্ষের সংশ্লিষ্ট ক্রেতা বা বিক্রেতার স্ট্যাকের সাথে একীভূত হন তখন আপনি আরও আত্মবিশ্বাসী হতে পারেন। স্থানীয়ভাবে পরিষেবাগুলি পরীক্ষা করা আপনার বিকাশের খরচও বাঁচায়।
এই কোডল্যাবে, আমরা একটি ওয়াকথ্রু সঙ্গী হিসাবে B&A লোকাল টেস্টিং অ্যাপ ব্যবহার করব।
সহচর স্থানীয় টেস্টিং অ্যাপটি B&A নিলামে ব্যবহৃত বিভিন্ন ক্রেতা এবং বিক্রেতার সংস্থানগুলি হোস্ট করে। অ্যাপটি http://localhost:3000
এ একটি UI প্রদান করে যেখানে আপনি বিভিন্ন নিলাম কনফিগারেশন অনুকরণ করতে পারবেন।
2. পরিবেশ সেটআপ
2.1 একটি লিনাক্স মেশিন প্রস্তুত করুন
একটি স্থানীয় লিনাক্স মেশিন ব্যবহার করুন বা আপনার পছন্দের ক্লাউড প্রদানকারীর একটি লিনাক্স ভিএম সরবরাহ করুন। বিল্ড টাইম উন্নত করতে, ন্যূনতম হিসাবে কমপক্ষে 16 কোর সুপারিশ করা হয় এবং 32+ কোর পছন্দ করা হয়।
মনে রাখবেন যে আমরা এই মেশিনের http://localhost:3000
থেকে একটি HTML পৃষ্ঠা লোড করব। যদি VM একটি GUI প্রদান না করে, তাহলে নিশ্চিত করুন যে পোর্ট 3000
আপনার স্থানীয় মেশিনে অ্যাক্সেসযোগ্য যাতে আপনি এটির সাথে সংযোগ করতে পারেন।
2.2 ডকার ইনস্টল করুন
আমরা পরিষেবাগুলি এবং স্থানীয় পরীক্ষার অ্যাপ্লিকেশন চালানোর জন্য ডকার ব্যবহার করি।
আমরা একটি পরীক্ষার পরিবেশে ডকার ইনস্টল করতে সুবিধার স্ক্রিপ্ট ব্যবহার করব।
# 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 গাইড পড়ুন।
2.3 সহচর লোকাল টেস্টিং অ্যাপ শুরু করুন
সঙ্গী অ্যাপটি মক বিডিং/স্কোরিং স্ক্রিপ্ট এবং মক K/V BYOS এন্ডপয়েন্টের মতো সম্পদ প্রদান করে। B&A পরিষেবাগুলি চালানোর আগে অ্যাপটি শুরু করা উচিত যাতে সংস্থানগুলি পরিষেবাগুলিতে লোড করা যায়।
লোকাল টেস্টিং অ্যাপ রিপোজিটরি নিচে টানুন:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
সংগ্রহস্থলের রুট থেকে, সেটআপ স্ক্রিপ্ট চালান:
./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&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
উপরের কমান্ডটি 4টি পরিষেবার Google ক্লাউড প্ল্যাটফর্ম ( gcp
) এর জন্য ডেভেলপমেন্ট বিল্ড ( non_prod
) এর একটি local
উদাহরণ তৈরি করবে। প্রয়োজনে আপনার পছন্দের ক্লাউড প্রদানকারীর কাছে --platform
পতাকা আপডেট করুন। বিল্ড পতাকা সম্পর্কে আরও জানতে, build_and_test_all_docker
ফাইলটি দেখুন।
একটি 64-কোর মেশিন ব্যবহার করলে প্রাথমিক বিল্ডে 2 ঘন্টা সময় লাগতে পারে এবং মূল গণনা অনুসারে বিল্ড টাইম স্কেল রৈখিকভাবে। আপনি যদি একটি 32-কোর মেশিনে থাকেন তবে এটি 4 ঘন্টা সময় নিতে পারে। আপনি যদি একটি 16-কোর মেশিন ব্যবহার করেন তবে এটি 8 ঘন্টা সময় নিতে পারে।
নোট করুন যে পরবর্তী বিল্ডগুলি ক্যাশে ব্যবহার করে এবং প্রতিটি বিল্ডে প্রায় 5-20 মিনিট সময় নেওয়া উচিত।
( এই কোডল্যাবটি লেখার সময় আমি xkcd-এর র্যান্ডাল মুনরোর সাথে দেখা করেছিলাম এবং তাকে বলেছিলাম যে আমি এখানে এই কমিক যোগ করেছি )
3.3 পরিষেবাগুলি চালান৷
আমাদের পরীক্ষার জন্য, আমরা 8টি পরিষেবা চালাব (প্রতি স্ট্যাকে 4টি পরিষেবা)। স্থানীয় টেস্টিং অ্যাপ দ্বারা প্রদত্ত সংস্থানগুলি ব্যবহার করার জন্য প্রতিটি কমান্ড সেট আপ করা হয়েছে৷ একটি উইন্ডো ম্যানেজার যেমন tmux
ব্যবহার করার জন্য এটি অত্যন্ত বাঞ্ছনীয়।
কমপক্ষে 8টি অতিরিক্ত টার্মিনাল উইন্ডো খুলুন এবং প্রতিটি সেশনে নিম্নলিখিত কমান্ডগুলি চালান।
নোট করুন যে স্থানীয় টেস্টিং অ্যাপ সার্ভারটি অবশ্যই একটি পৃথক প্রক্রিয়ায় চলমান থাকবে, যেহেতু বিডিং এবং স্কোরিং স্ক্রিপ্টগুলি অ্যাপ দ্বারা পরিবেশিত হবে৷
3.3.1 একটি কমান্ড সেট করুন
সেবা | আদেশ |
| |
| |
| |
| |
3.3.2 B কমান্ড সেট করুন
সেবা | আদেশ |
| |
| |
| |
| |
3.3.2 স্থানীয় স্টার্ট স্ক্রিপ্টের জন্য পরিবেশের ভেরিয়েবল
নিম্নলিখিত পরিবেশ ভেরিয়েবলগুলি স্টার্ট-আপ আচরণ নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে।
Env var | প্রাপ্যতা | বর্ণনা |
| সমস্ত পরিষেবা | ডকার কমান্ডের জন্য সেট করার জন্য পতাকা |
| সমস্ত পরিষেবা | আপনি যখন আপনার স্থানীয় মেশিনে পরীক্ষা করছেন, তখন আপনাকে একটি স্ব-স্বাক্ষরিত শংসাপত্র ব্যবহার করতে হতে পারে যা ডিফল্ট থেকে |
| সমস্ত পরিষেবা | পরিষেবা লগ স্তর. উচ্চ স্তর আরো লগ প্রদান করে. 0 হল সর্বনিম্ন এবং 10 হল সর্বোচ্চ৷ ডিফল্ট |
| বিডিং পরিষেবা | বিডিং সার্ভিসের পোর্ট। ডিফল্ট |
| বিডিং পরিষেবা | বিডিং লজিকের URL |
| বিডিং পরিষেবা | মডেল প্রশিক্ষণের জন্য ডেটা প্রস্থান |
| বিডিং পরিষেবা | বিডিং অনুমানের জন্য আর্গুমেন্ট |
| বিএফই সার্ভিস | বিএফই সার্ভিসের পোর্ট। ডিফল্ট |
| বিএফই সার্ভিস | ক্রেতার BYOS K/V ঠিকানা |
| বিএফই সার্ভিস | ক্রেতার TEE K/V ঠিকানা |
| বিএফই সার্ভিস | ক্রেতার বিডিং পরিষেবার ঠিকানা |
| নিলাম পরিষেবা | নিলাম পরিষেবার বন্দর। ডিফল্ট |
| নিলাম পরিষেবা | স্কোরিং লজিকের URL |
| নিলাম পরিষেবা | ক্রেতার জয় রিপোর্টিং URL |
| নিলাম পরিষেবা | ক্রেতার জয় রিপোর্টিং স্ক্রিপ্ট |
| নিলাম পরিষেবা | PAS-এর জন্য ক্রেতার জয়ের রিপোর্টিং স্ক্রিপ্ট |
| SFE পরিষেবা | SFE পরিষেবার পোর্ট। ডিফল্ট |
| SFE পরিষেবা | বিক্রেতার নিলাম পরিষেবা ঠিকানা |
| SFE পরিষেবা | বিক্রেতার BYOS K/V ঠিকানা |
| SFE পরিষেবা | বিক্রেতার TEE K/V ঠিকানা |
| SFE পরিষেবা | বিক্রেতার উৎপত্তি |
| SFE পরিষেবা | ক্রেতার BFE ঠিকানা |
4. কমান্ড লাইন থেকে সিকিউর ইনভোক দিয়ে পরীক্ষা করুন
4.1 SFE পরীক্ষা
কমান্ড লাইন থেকে সরাসরি কল করার জন্য আপনি B&A পরিষেবা প্যাকেজে অন্তর্ভুক্ত সিকিউর ইনভোক টুল ব্যবহার করতে পারেন।
4.1.2 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]"
}
]
}
}
}
}
sfe-test.json
হিসাবে ফাইলটিকে সেট A-এর B&A পরিষেবা সংগ্রহস্থলের রুট ফোল্ডারে সংরক্ষণ করুন (B&A বিল্ড স্ক্রিপ্ট রেপোর রুট ফোল্ডারের ফাইলগুলি ডকার চিত্রের /src/workspace
ফোল্ডারে কপি করবে)।
4.1.2 সিকিউর ইনভোক সহ 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]}}}
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"
}
B&A পরিষেবা সংগ্রহস্থলের রুট ফোল্ডারে bfe-test.json
হিসাবে ফাইলটি সংরক্ষণ করুন।
4.2.2 সিকিউর ইনভোক সহ 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":{}}
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 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
4.3.4 BFE থেকে GetBids
প্রতিক্রিয়া
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 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"
5. ব্রাউজার থেকে স্থানীয় পরীক্ষা অ্যাপ দিয়ে পরীক্ষা করুন
5.1 Chrome খুলুন
কমান্ড লাইন থেকে 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 দৃষ্টান্ত থেকে সম্পূর্ণরূপে প্রস্থান করেছেন তা নিশ্চিত করুন৷ সমস্ত ক্রোম প্রক্রিয়া থেকে প্রস্থান করতে, ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
চালানোর চেষ্টা করুন৷ 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 স্থানীয় টেস্টিং অ্যাপ UI দেখুন
আপনি ফ্ল্যাগ দিয়ে খোলা ক্রোম ব্রাউজার ইনস্ট্যান্সে অ্যাপ UI http://localhost:3000-এ পাওয়া যাবে। আপনি যদি একটি ভিন্ন হোস্টনাম সহ একটি VM ব্যবহার করেন তবে আপনি যে ঠিকানাটিতে যান তা ভিন্ন হতে পারে।
অ্যাপের উপরের সারিতে, "নিয়ন্ত্রণ" প্যানেলে বিভিন্ন নিলাম কনফিগারেশন অনুকরণ করার জন্য বোতাম রয়েছে। অন্য দুটি প্যানেলে বিজ্ঞাপনদাতা এবং প্রকাশকের সাইট থেকে আইফ্রেম রয়েছে৷
আপনি যখন বিজ্ঞাপনদাতার পৃষ্ঠা আইফ্রেমে "লোড ডিএসপি ট্যাগ" বোতামে ক্লিক করেন, তখন প্রতিটি ডিএসপি থেকে একটি স্ক্রিপ্ট পৃষ্ঠায় যোগ করা হয়। এই স্ক্রিপ্টগুলি ব্যবহারকারীকে আগ্রহের গোষ্ঠীতে যুক্ত করে। Chrome DevTools খুলুন, এবং DSP ট্যাগ দ্বারা যুক্ত হওয়া আগ্রহের গোষ্ঠীগুলি পরীক্ষা করতে "অ্যাপ্লিকেশন / স্টোরেজ / আগ্রহের গোষ্ঠীগুলি" দেখুন:
তারপর, বিভিন্ন ধরনের নিলাম অনুকরণ করতে "নিয়ন্ত্রণ" প্যানেলের বোতামগুলিতে ক্লিক করুন৷
যদি B&A পরিষেবা এবং স্থানীয় টেস্টিং অ্যাপ সঠিকভাবে সেট আপ করা হয়, তাহলে পূর্ববর্তী বিজ্ঞাপনটি "প্রকাশক সাইট iframe" প্যানেলে রেন্ডার করা হয়।
5.3 স্থানীয় টেস্টিং অ্যাপ নিলাম কনফিগারেশন
কম্প্যানিয়ন লোকাল টেস্টিং অ্যাপে, নিম্নলিখিত অংশগ্রহণকারীদের হোস্ট করা হয়, পোর্ট নম্বর দ্বারা আলাদা করা হয় (একটি ভিন্ন পোর্টকে ক্রস-অরিজিন হিসাবে বিবেচনা করা হয়):
অংশগ্রহণকারী | বর্ণনা | বন্দর |
বিজ্ঞাপনদাতা | পৃষ্ঠায় DSP ট্যাগ লোড করে | |
প্রকাশক | পৃষ্ঠায় SSP ট্যাগ লোড করে | |
| অন-ডিভাইস ক্রেতা | |
| অন-ডিভাইস ক্রেতা | |
| B&A ক্রেতা | |
| B&A ক্রেতা | |
| শীর্ষ-স্তরের বিক্রেতা | |
| অন-ডিভাইস-শুধু বিক্রেতা | |
| B&A-শুধু বিক্রেতা | |
| মিশ্র-মোড বিক্রেতা | |
চারটি ডিএসপি আছে:
-
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 সেট করুন | বিডিং পরিষেবা | | |
বিএফই সার্ভিস | | | |
নিলাম পরিষেবা | | | |
SFE পরিষেবা | | | |
সেট বি | বিডিং পরিষেবা | | |
বিএফই সার্ভিস | | | |
নিলাম পরিষেবা | | | |
SFE পরিষেবা | | | |
অ্যাপ | স্থানীয় টেস্টিং অ্যাপ | সব | |
- সেট A-তে, ক্রেতা পরিষেবাগুলি
DSP-X
দ্বারা এবং বিক্রেতার পরিষেবাগুলিSSP-BA
দ্বারা ব্যবহৃত হয় - B সেটে, ক্রেতা পরিষেবাগুলি
DSP-Y
দ্বারা ব্যবহৃত হয় এবং বিক্রেতার পরিষেবাগুলিSSP-MIX
দ্বারা ব্যবহৃত হয়
স্থানীয় টেস্টিং অ্যাপ এবং B&A পরিষেবাগুলির মধ্যে যোগাযোগের জন্য, একটি ডকার ব্রিজ নেটওয়ার্ক ব্যবহার করা হয়। স্থানীয় টেস্টিং অ্যাপের সেটআপ স্ক্রিপ্ট দ্বারা ba-dev
সেতু নেটওয়ার্ক তৈরি করা হয়েছে। B&A পরিষেবাগুলিকে 192.168.84.0
এর সাবনেটে একটি IP ঠিকানা দেওয়া হয়েছে।
উদাহরণস্বরূপ, যখন আপনি অ্যাপ্লিকেশন থেকে সেট A-এর 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-dev-support repository-এ একটি সমস্যা খুলুন ।
6.2 আরও জানুন
- ওয়েবের জন্য B&A আর্কিটেকচার সম্পর্কে আরও জানুন
- ওয়েবের জন্য B&A-এর সাথে বিক্রেতার ইন্টিগ্রেশন সম্পর্কে আরও জানুন