1. מבוא
שירותי בידינג ומכרזים (B&A) כוללים 4 שירותים לקונים ולמוכרים שמטרתם להקל על מכרז של קהל מוגן:
הטכנולוגיות שבהן הקונים משתמשים:
- שירות קצה לקונים
- Bidding Service
Seller stack:
- שירות ממשק קצה של מוכר
- Auction Service
בשיעור הזה תלמדו איך להגדיר ולבדוק את ההגדרה מקצה לקצה בסביבה המקומית. ההדרכה הזו צפויה להימשך כשעה, לא כולל הזמן שנדרש ליצירת השירות הראשוני.
גם אם אתם עובדים רק על הקוד של צד הקונה או על הקוד של צד המוכר, כדאי להגדיר את התהליך מקצה לקצה בסביבה המקומית כדי להבין טוב יותר איך מחסניות הקונה והמוכר פועלות יחד. אם תגדירו את שתי החבילות, תוכלו להיות בטוחים יותר בהמשך כשמשלבים עם חבילת הקונים או המוכרים של צד אחר. בדיקת השירותים באופן מקומי גם חוסכת לכם עלויות פיתוח.
בשיעור הזה נשתמש באפליקציית הבדיקה המקומית של B&A ככלי עזר.
אפליקציית הבדיקה המקומית הנלווית מארחת משאבים שונים לקונים ולמוכרים שמשמשים במכרז של B&A. האפליקציה מספקת גם ממשק משתמש בכתובת http://localhost:3000 שבו אפשר לדמות הגדרות שונות של מכרזים.
2. הגדרת הסביבה
2.1 הכנת מחשב Linux
משתמשים במכונת Linux מקומית או מקצים מכונת Linux וירטואלית של ספק שירותי הענן שבחרתם. כדי לשפר את זמן הבנייה, מומלץ להשתמש ב-16 ליבות לפחות, ועדיף ב-32 ליבות ומעלה.
שימו לב: אנחנו נטען דף HTML מ-http://localhost:3000 במחשב הזה. אם המכונה הווירטואלית לא מספקת ממשק משתמש גרפי, צריך לוודא שהיציאה 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, קבוצת Docker מעניקה למשתמש הרשאות ברמת הבסיס. למידע נוסף, אפשר לקרוא את המדריך בנושא Docker ללא sudo.
2.3 מפעילים את אפליקציית הבדיקה המקומית הנלווית
האפליקציה הנלווית מספקת משאבים כמו סקריפטים של בידינג או ניקוד לדוגמה, ונקודות קצה לדוגמה של BYOS K/V. צריך להפעיל את האפליקציה לפני שמפעילים את שירותי ה-B&A כדי שהמשאבים ייטענו בשירותים.
מושכים את מאגר האפליקציות לבדיקה מקומית:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
מהרמה הבסיסית (root) של המאגר, מריצים את סקריפט ההגדרה:
./setup
סקריפט ההגדרה ייצור את רשת Docker, ייצור אישורי SSL וייצור את תמונת אפליקציית הבדיקה.ba-dev
אחרי שה-build יסתיים בהצלחה, מריצים את סקריפט ההתחלה:
./start
3. פיתוח והרצה של B&A באופן מקומי
3.1 מורידים את התפריט הנפתח B&A Services (שירותי 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 של גרסת ה-build לפיתוח (non_prod) עבור Google Cloud (gcp) של כל 4 השירותים. אם צריך, מעדכנים את הדגל --platform לספק שירותי הענן הרצוי. מידע נוסף על דגלי ה-build זמין בקובץ build_and_test_all_docker.
הגרסה הראשונית עשויה להימשך שעתיים אם משתמשים במכונה עם 64 ליבות, וזמן הבנייה גדל באופן ליניארי לפי מספר הליבות. אם אתם משתמשים במחשב עם 32 ליבות, התהליך עשוי להימשך 4 שעות. אם משתמשים במכונה עם 16 ליבות, יכול להיות שייקח 8 שעות.
שימו לב: בבנייה הבאה נעשה שימוש במטמון, וכל בנייה אמורה להימשך כ-5 עד 20 דקות.
שני מתכנתים מתחמקים מעבודה בזמן שמתבצעת בנייה.
(פגשתי את רנדל מונרו מ-xkcd בזמן שכתבתי את ה-codelab הזה, ואמרתי לו שהוספתי את הקומיקס הזה כאן)
3.3 הרצת השירותים
לצורך הבדיקה, נפעיל 8 שירותים (4 שירותים בכל מחסנית). כל פקודה מוגדרת לשימוש במשאבים שמסופקים על ידי אפליקציית הבדיקה המקומית. מומלץ מאוד להשתמש במנהל חלונות כמו tmux.
פותחים לפחות 8 חלונות טרמינל נוספים ומריצים את הפקודות הבאות בכל סשן.
שימו לב: השרת של אפליקציית הבדיקה המקומית צריך לפעול כבר בתהליך נפרד, כי סקריפטים של הצעות מחיר ושל ניקוד יוגשו על ידי האפליקציה.
3.3.1 הגדרת פקודות A
שירות | פקודה |
|
|
|
|
|
|
|
|
3.3.2 הגדרת פקודות B
שירות | פקודה |
|
|
|
|
|
|
|
|
3.3.2 משתני סביבה לסקריפטים מקומיים להפעלה
אפשר להשתמש במשתני הסביבה הבאים כדי לשלוט בהתנהגות של ההפעלה.
משתנה סביבה | זמינות | תיאור |
| כל השירותים | הדגלים להגדרה עבור פקודת Docker |
| כל השירותים | כשבודקים במחשב המקומי, יכול להיות שצריך להשתמש באישור בחתימה עצמית, שלא עובר את בדיקת האימות של עמית SSL ב- ברירת המחדל היא |
| כל השירותים | רמת יומני השירות. רמה גבוהה יותר מספקת יותר יומנים. 0 הוא הערך הנמוך ביותר ו-10 הוא הערך הגבוה ביותר. ברירת המחדל היא |
| Bidding Service | היציאה של Bidding Service. ברירת המחדל היא |
| Bidding Service | כתובת ה-URL של לוגיקת הבידינג |
| Bidding Service | תעבורת נתונים יוצאת (egress) לאימון מודלים |
| Bidding Service | ארגומנטים להסקת מסקנות לגבי בידינג |
| שירות BFE | היציאה של שירות BFE. ברירת המחדל היא |
| שירות BFE | כתובת ה-K/V של הקונה ב-BYOS |
| שירות BFE | כתובת TEE K/V של הקונה |
| שירות BFE | הכתובת של שירות הבידינג של הקונה |
| Auction Service | היציאה של Auction Service. ברירת המחדל היא |
| Auction Service | כתובת ה-URL של לוגיקת הניקוד |
| Auction Service | כתובת ה-URL של הדוח על זכייה של קונה |
| Auction Service | סקריפט לדיווח על זכייה של קונה |
| Auction Service | סקריפט לדיווח על זכייה של קונה ב-PAS |
| שירות SFE | היציאה של שירות SFE. ברירת המחדל היא |
| שירות SFE | כתובת שירות המכרז של המוכר |
| שירות SFE | כתובת ה-K/V של המוכר ב-BYOS |
| שירות 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 הבאה מאוכלסת בהגדרת המכרז של 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 בתיקיית הבסיס של מאגר Set A's B&A Services(סקריפט ה-build של B&A יעתיק את הקבצים בתיקיית הבסיס של המאגר לתיקייה /src/workspace של תמונת ה-Docker).
4.1.2 התקשרות אל SFE באמצעות Secure Invoke
מריצים את הפקודה הבאה מתיקיית הבסיס של מאגר 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 בקשת GetBids BFE
{
"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.
4.2.2 קריאה ל-BFE באמצעות 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 מוגדרות בצורה נכונה, 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(). המטען הייעודי (payload) הזה נוצר על ידי הדפדפן, נשלח מהתג ל-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 response from 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 אל Auction Service
אחרי שהמערכת מקבלת את הצעות המחיר, מודול 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 תגובה מ-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 תשובת 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
חשוב: לפני שפותחים את Chrome משורת הפקודה עם הדגלים B&A, צריך לוודא שיצאתם מכל המופעים של Chrome. כדי לצאת מכל התהליכים של Chrome, מנסים להריץ את הפקודה ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9 משורת הפקודה.
5.2 כניסה לממשק המשתמש של אפליקציית הבדיקה המקומית
ממשק המשתמש של האפליקציה נמצא בכתובת http://localhost:3000 במופע של דפדפן Chrome שפתחתם באמצעות הדגלים. הכתובת המדויקת שאליה אתם ניגשים עשויה להיות שונה אם אתם משתמשים במכונה וירטואלית עם שם מארח שונה.
צילום מסך של אפליקציית הבדיקה המקומית שמוצגת בדפדפן
בשורה העליונה של האפליקציה, בחלונית Controls (אמצעי בקרה) יש לחצנים לסימולציה של תצורות שונות של מכרזים. שתי החלוניות האחרות מכילות מסגרות iframe מאתרי המפרסם והמוציא לאור.
צילום מסך של קבוצות של נושאים בכלי הפיתוח ל-Chrome.
לאחר מכן, לוחצים על הלחצנים בחלונית 'אמצעי בקרה' כדי לדמות סוגים שונים של מכרזים.
אם שירותי B&A ואפליקציית הבדיקה המקומית מוגדרים בצורה נכונה, המודעה הקודמת תוצג בחלונית Publisher site iframe (מודעת 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מפעיל מכירה פומבית של מודעות בית בלבד- מערכת
SSP-MIXמפעילה מכרז במצב משולב -
SSP-TOPמפעיל מכרז עם כמה אתרי מכירהSSP-OD/BA/MIXמשתתפים כמוכרי רכיבים במכרז מרובה אתרי מכירה שלSSP-TOP
5.4 הגדרה של שירותי בידינג ומכרזים
ב-Codelab הזה, אנחנו מריצים שני סטים של B&A זה לצד זה.
הגדרה | שירות | משתתף | כתובת רשת אחת ( |
קבוצה א' | Bidding Service |
|
|
שירות BFE |
|
| |
Auction Service |
|
| |
שירות SFE |
|
| |
קבוצה ב' | Bidding Service |
|
|
שירות BFE |
|
| |
Auction Service |
|
| |
שירות SFE |
|
| |
אפליקציה | אפליקציית בדיקה מקומית | הכול |
|
- בסט A, שירותי הקונה נמצאים בשימוש של
DSP-Xושירותי המוכר נמצאים בשימוש שלSSP-BA - בסט B, שירותי הקונה נמצאים בשימוש של
DSP-Yושירותי המוכר נמצאים בשימוש שלSSP-MIX
כדי לתקשר בין האפליקציה לבדיקה מקומית לבין שירותי B&A, נעשה שימוש ברשת גשר של Docker. רשת הגישור ba-dev נוצרת על ידי סקריפט ההגדרה של Local Testing App. לשירותי 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.
- אם יש לכם שאלה לגבי שירותי הבידינג והמכרזים, אפשר לפתוח בעיה במאגר של שירותי הבידינג והמכרזים.