1. परिचय
बिडिंग और नीलामी सेवाएं (बीए) में, खरीदारों और सेलर के लिए चार सेवाएं शामिल हैं. इनकी मदद से, Protected Audience नीलामी की सुविधा मिलती है:
खरीदार स्टैक:
- खरीदार के लिए फ़्रंट-एंड सेवा
- बिडिंग सेवा
सेलर स्टैक:
- सेलर फ़्रंट-एंड सेवा
- नीलामी सेवा
इस कोडलैब में, आपको अपने लोकल एनवायरमेंट में एंड-टू-एंड सेटअप को सेट अप करने और उसकी जांच करने का तरीका बताया गया है. इसमें करीब एक घंटा लग सकता है. हालांकि, इसमें सेवा बनाने में लगने वाला समय शामिल नहीं है.
भले ही, आप सिर्फ़ बाय-साइड कोड या सेल-साइड कोड पर काम करते हों, लेकिन अपने लोकल एनवायरमेंट में एंड-टू-एंड फ़्लो सेट अप करना फ़ायदेमंद होता है. इससे, यह बेहतर तरीके से समझा जा सकता है कि खरीदार और सेलर स्टैक, एक-दूसरे के साथ कैसे काम करते हैं. दोनों स्टैक सेट अप करने पर, किसी दूसरे पक्ष के खरीदार या सेलर स्टैक के साथ इंटिग्रेट करने पर, आपको ज़्यादा भरोसा हो सकता है. सेवाओं को स्थानीय तौर पर टेस्ट करने से, डेवलपमेंट की लागत भी कम हो जाती है.
इस कोडलैब में, हम B&A Local Testing ऐप्लिकेशन का इस्तेमाल, वॉकथ्रू के साथी के तौर पर करेंगे.
साथ में काम करने वाले स्थानीय टेस्टिंग ऐप्लिकेशन में, बिडिंग और नीलामी में इस्तेमाल होने वाले, खरीदार और सेलर के अलग-अलग संसाधन होस्ट किए जाते हैं. ऐप्लिकेशन में http://localhost:3000
पर एक यूज़र इंटरफ़ेस (यूआई) भी दिया गया है. यहां अलग-अलग ऑक्शन कॉन्फ़िगरेशन को सिम्युलेट किया जा सकता है.
2. एनवायरमेंट सेटअप करना
2.1 Linux मशीन तैयार करना
किसी स्थानीय Linux मशीन का इस्तेमाल करें या अपनी पसंद की क्लाउड सेवा देने वाली कंपनी की Linux वर्चुअल मशीन (वीएम) का प्रावधान करें. बिल्ड में लगने वाले समय को कम करने के लिए, कम से कम 16 कोर का सुझाव दिया जाता है. हालांकि, 32 से ज़्यादा कोर का इस्तेमाल करना बेहतर होता है.
ध्यान दें कि हम इस मशीन के 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 कंपैनियन Local Testing ऐप्लिकेशन शुरू करना
साथी ऐप्लिकेशन, मॉक बिडिंग/स्कोरिंग स्क्रिप्ट और मॉक K/V BYOS एंडपॉइंट जैसे संसाधन उपलब्ध कराता है. B&A सेवाओं को चलाने से पहले, ऐप्लिकेशन को शुरू किया जाना चाहिए, ताकि संसाधनों को सेवाओं में लोड किया जा सके.
लोकल टेस्टिंग ऐप्लिकेशन का डेटा स्टोर खींचकर नीचे लाएं:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
रिपॉज़िटरी के रूट से, सेटअप स्क्रिप्ट चलाएं:
./setup
सेटअप स्क्रिप्ट, ba-dev
Docker नेटवर्क बनाएगी, एसएसएल सर्टिफ़िकेट जनरेट करेगी, और टेस्ट ऐप्लिकेशन इमेज बनाएगी.
बिल्ड पूरा होने के बाद, स्टार्ट स्क्रिप्ट चलाएं:
./start
3. B&A को स्थानीय तौर पर बनाना और चलाना
3.1 B&A Services को पुल-डाउन करें
हम एक ही मशीन पर B&A Services के दो सेट चलाएंगे. इसलिए, हम रिपॉज़िटरी को दो अलग-अलग फ़ोल्डर में डाउनलोड करेंगे.
पहला सेट:
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 फ़ोल्डर के रूट फ़ोल्डर से यह कमांड चलाएं:
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 Platform (gcp
) के डेवलपमेंट बिल्ड (non_prod
) का local
इंस्टेंस बनाएगा. अगर ज़रूरी हो, तो --platform
फ़्लैग को अपनी पसंद के क्लाउड सेवा देने वाली कंपनी पर अपडेट करें. बिल्ड फ़्लैग के बारे में ज़्यादा जानने के लिए, build_and_test_all_docker
फ़ाइल देखें.
64-कोर मशीन का इस्तेमाल करने पर, शुरुआती बिल्ड में दो घंटे लग सकते हैं. साथ ही, कोर की संख्या के हिसाब से बिल्ड में लगने वाला समय भी बढ़ता जाता है. अगर आपके पास 32-कोर वाली मशीन है, तो इसमें चार घंटे लग सकते हैं. अगर 16-कोर मशीन का इस्तेमाल किया जा रहा है, तो इसमें आठ घंटे लग सकते हैं.
ध्यान दें कि बाद के बिल्ड, कैश मेमोरी का इस्तेमाल करते हैं. साथ ही, हर बिल्ड में करीब 5 से 20 मिनट लग सकते हैं.
(इस कोडलैब को लिखते समय, मेरी मुलाकात xkcd के रैंडल मुनरो से हुई. मैंने उन्हें बताया कि मैंने यहां यह कॉमिक जोड़ी है)
3.3 सेवाएं चलाना
टेस्टिंग के लिए, हम आठ सेवाएं चलाएंगे (हर स्टैक में चार सेवाएं). हर निर्देश, लोकल टेस्टिंग ऐप्लिकेशन से मिले संसाधनों का इस्तेमाल करने के लिए सेट अप किया जाता है. हमारा सुझाव है कि tmux
जैसे विंडो मैनेजर का इस्तेमाल करें.
कम से कम आठ अन्य टर्मिनल विंडो खोलें और हर सेशन में ये कमांड चलाएं.
ध्यान दें कि लोकल टेस्टिंग ऐप्लिकेशन सर्वर पहले से ही किसी अलग प्रोसेस में चल रहा होना चाहिए, क्योंकि बिडिंग और स्कोरिंग स्क्रिप्ट, ऐप्लिकेशन से भेजी जाएंगी.
3.3.1 A कमांड सेट करना
सेवा | कमांड |
|
|
|
|
|
|
|
|
3.3.2 सेट B के निर्देश
सेवा | कमांड |
|
|
|
|
|
|
|
|
3.3.2 लोकल स्टार्ट स्क्रिप्ट के लिए एनवायरमेंट वैरिएबल
स्टार्ट-अप व्यवहार को कंट्रोल करने के लिए, इन एनवायरमेंट वैरिएबल का इस्तेमाल किया जा सकता है.
Env var | उपलब्धता | ब्यौरा |
| सभी सेवाएं | docker कमांड के लिए सेट किए जाने वाले फ़्लैग |
| सभी सेवाएं | अपनी लोकल मशीन पर जांच करते समय, आपको अपने-आप हस्ताक्षर किए गए सर्टिफ़िकेट का इस्तेमाल करना पड़ सकता है. यह सर्टिफ़िकेट, डिफ़ॉल्ट रूप से, यह |
| सभी सेवाएं | सेवा लॉग का लेवल. ज़्यादा लेवल पर ज़्यादा लॉग मिलते हैं. 0 सबसे कम और 10 सबसे ज़्यादा है. डिफ़ॉल्ट रूप से, यह |
| बिडिंग सेवा | बिडिंग सेवा का पोर्ट. डिफ़ॉल्ट रूप से |
| बिडिंग सेवा | बिडिंग लॉजिक का यूआरएल |
| बिडिंग सेवा | मॉडल को ट्रेनिंग देने के लिए डेटा एक्सग्रेस |
| बिडिंग सेवा | बिडिंग के अनुमान के लिए आर्ग्युमेंट |
| BFE सेवा | बीएफ़ई सेवा का पोर्ट. डिफ़ॉल्ट रूप से |
| BFE सेवा | खरीदार का BYOS K/V पता |
| BFE सेवा | खरीदार का टीईई के/वी पता |
| BFE सेवा | खरीदार की बिडिंग सेवा का पता |
| नीलामी सेवा | Auction Service का पोर्ट. डिफ़ॉल्ट रूप से |
| नीलामी सेवा | स्कोरिंग लॉजिक का यूआरएल |
| नीलामी सेवा | खरीदार की जीत की रिपोर्टिंग का यूआरएल |
| नीलामी सेवा | Buyer's win reporting script |
| नीलामी सेवा | PAS के लिए, खरीदार की जीत की रिपोर्टिंग स्क्रिप्ट |
| SFE सेवा | SFE सेवा का पोर्ट. डिफ़ॉल्ट रूप से |
| SFE सेवा | सेलर की नीलामी सेवा का पता |
| SFE सेवा | सेलर का BYOS K/V पता |
| SFE सेवा | सेलर का टीईई के/वी पता |
| SFE सेवा | सेलर की जगह |
| SFE सेवा | खरीदार के बीएफ़ई पते |
4. कमांड लाइन से Secure Invoke की मदद से टेस्ट करना
4.1 SFE टेस्टिंग
सीधे कमांड लाइन से सेवाओं को कॉल करने के लिए, B&A Services पैकेज में शामिल Secure Invoke टूल का भी इस्तेमाल किया जा सकता है.
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]"
}
]
}
}
}
}
फ़ाइल को सेट A के B&A Services रिपॉज़िटरी के रूट फ़ोल्डर में sfe-test.json
के तौर पर सेव करें. B&A बिल्ड स्क्रिप्ट, रिपॉज़िटरी के रूट फ़ोल्डर में मौजूद फ़ाइलों को Docker इमेज के /src/workspace
फ़ोल्डर में कॉपी कर देगी.
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 बीएफ़ई (बिना फ़िल्टर वाला ईमेल) की जांच
4.2.1 बीएफ़ई 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
के तौर पर सेव करें.
4.2.2 Secure Invoke की मदद से बीएफ़ई को कॉल करना
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 स्टैक सही तरीके से सेट अप किए गए हैं, तो बीएफ़ई यह रिस्पॉन्स दिखाता है:
{"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
बीएफ़ई से अनुरोध करना
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
बीएफ़ई से मिला जवाब
बीएफ़ई, बिड के साथ जवाब देता है:
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 से मिला जवाब
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 खोलने से पहले, पक्का करें कि आपने सभी Chrome इंस्टेंस से पूरी तरह से बाहर निकल लिया हो. Chrome की सभी प्रोसेस से बाहर निकलने के लिए, कमांड लाइन से ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
चलाकर देखें.
5.2 लोकल टेस्टिंग ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) पर जाएं
ऐप्लिकेशन का यूज़र इंटरफ़ेस (यूआई), http://localhost:3000 पर देखा जा सकता है. यह यूआई, Chrome ब्राउज़र के उस इंस्टेंस में दिखेगा जिसे आपने फ़्लैग के साथ खोला था. अगर किसी दूसरे होस्टनेम वाले वर्चुअल मशीन का इस्तेमाल किया जा रहा है, तो हो सकता है कि आपके विज़िट किए गए पते का सटीक पता अलग हो.
ऐप्लिकेशन की सबसे ऊपर वाली पंक्ति में, "कंट्रोल" पैनल में अलग-अलग नीलामी कॉन्फ़िगरेशन को सिम्युलेट करने के लिए बटन होते हैं. अन्य दो पैनल में, विज्ञापन देने वाले और पब्लिशर की साइटों के iframe होते हैं.
विज्ञापन देने वाले के पेज के iframe में "डीएसपी टैग लोड करें" बटन पर क्लिक करने पर, हर डीएसपी की एक स्क्रिप्ट पेज में जुड़ जाती है. ये स्क्रिप्ट, उपयोगकर्ता को दिलचस्पी के ग्रुप में जोड़ती हैं. Chrome DevTools खोलें और DSP टैग से जुड़े इंटरेस्ट ग्रुप की जांच करने के लिए, "ऐप्लिकेशन / स्टोरेज / इंटरेस्ट ग्रुप" पर जाएं:
इसके बाद, अलग-अलग तरह की नीलामियों को सिम्युलेट करने के लिए, "कंट्रोल" पैनल में मौजूद बटन पर क्लिक करें.
अगर B&A सेवाएं और लोकल टेस्टिंग ऐप्लिकेशन सही तरीके से सेट अप किए गए हैं, तो पिछला विज्ञापन "पब्लिशर साइट के iframe" पैनल में रेंडर किया जाता है.
5.3 लोकल टेस्टिंग ऐप्लिकेशन की नीलामी का कॉन्फ़िगरेशन
साथ में काम करने वाले लोकल टेस्टिंग ऐप्लिकेशन में, इन लोगों को होस्ट किया जाता है. इनके बीच अंतर, पोर्ट नंबर से किया जाता है. किसी दूसरे पोर्ट को क्रॉस-ऑरिजिन माना जाता है:
भागीदार | ब्यौरा | पोर्ट |
विज्ञापन देने वाला | पेज पर डीएसपी टैग लोड करता है |
|
प्रकाशक | पेज पर एसएसपी टैग लोड करता है |
|
| उपयोगकर्ता के डिवाइस पर खरीदारी करने वाला व्यक्ति |
|
| उपयोगकर्ता के डिवाइस पर खरीदारी करने वाला व्यक्ति |
|
| B&A का खरीदार |
|
| B&A का खरीदार |
|
| टॉप लेवल सेलर |
|
| सिर्फ़ डिवाइस पर मौजूद सेलर |
|
| सिर्फ़ B&A सेलर |
|
| अलग-अलग तरीकों से प्रॉडक्ट बेचने वाला सेलर |
|
चार डीएसपी हैं:
DSP-A
औरDSP-B
, डिवाइस पर होने वाली नीलामियों में हिस्सा लेते हैंDSP-X
औरDSP-Y
, बिडिंग और ऑप्टिमाइज़ेशन नीलामियों में हिस्सा लेते हैं
चार एसएसपी हैं और हर सेलर एक अलग नीलामी कॉन्फ़िगरेशन चलाता है:
SSP-OD
, सिर्फ़ डिवाइस पर होने वाली नीलामी चलाता हैSSP-BA
सिर्फ़ B&A नीलामी चलाता हैSSP-MIX
मिक्स्ड-मोड नीलामी चलाता हैSSP-TOP
एक से ज़्यादा सेलर वाली नीलामी करता हैSSP-OD/BA/MIX
,SSP-TOP
की मल्टी-सेलर नीलामी में कॉम्पोनेंट सेलर के तौर पर हिस्सा लेते हैं
पूरी जानकारी के लिए, डिज़ाइन डायग्राम देखें.
5.4 बिडिंग और नीलामी सेवाओं का कॉन्फ़िगरेशन
इस कोडलैब में, हम एक साथ बीए और एबी के दो सेट चलाते हैं.
सेट करें | सेवा | भागीदार |
|
सेट A | बिडिंग सेवा |
|
|
BFE सेवा |
|
| |
नीलामी सेवा |
|
| |
SFE सेवा |
|
| |
सेट B | बिडिंग सेवा |
|
|
BFE सेवा |
|
| |
नीलामी सेवा |
|
| |
SFE सेवा |
|
| |
ऐप्लिकेशन | लोकल टेस्टिंग ऐप्लिकेशन | सभी |
|
- सेट A में, खरीदार की सेवाओं का इस्तेमाल
DSP-X
करता है और सेलर की सेवाओं का इस्तेमालSSP-BA
करता है - सेट B में, खरीदार की सेवाओं का इस्तेमाल
DSP-Y
करता है और सेलर की सेवाओं का इस्तेमालSSP-MIX
करता है
लोकल टेस्टिंग ऐप्लिकेशन और B&A सेवाओं के बीच कम्यूनिकेट करने के लिए, Docker ब्रिज नेटवर्क का इस्तेमाल किया जाता है. ba-dev
ब्रिज नेटवर्क, Local Testing ऐप्लिकेशन की सेटअप स्क्रिप्ट से बनाया जाता है. B&A सेवाओं को 192.168.84.0
के सबनेट में एक आईपी पता असाइन किया जाता है.
उदाहरण के लिए, ऐप्लिकेशन से सेट A के 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 रिपॉज़िटरी में कोई समस्या दर्ज करें.
- अगर आपको बिडिंग और नीलामी सेवाओं के बारे में कोई सवाल पूछना है, तो बिडिंग और नीलामी सेवाओं के रिपॉज़िटरी में कोई समस्या दर्ज करें.
- अगर आपको Privacy Sandbox के बारे में कोई सामान्य सवाल पूछना है, तो privacy-sandbox-dev-support रिपॉज़िटरी में कोई समस्या दर्ज करें.
6.2 ज़्यादा जानें
- वेब के लिए B&A आर्किटेक्चर के बारे में ज़्यादा जानें
- वेब के लिए B&A के साथ सेलर इंटिग्रेशन के बारे में ज़्यादा जानें