1. Giới thiệu
Dịch vụ đặt giá thầu và phiên đấu giá (B&A) bao gồm 4 dịch vụ để người mua và người bán hỗ trợ phiên đấu giá Protected Audience:
Ngăn xếp người mua:
- Dịch vụ giao diện người dùng cho người mua
- Dịch vụ đặt giá thầu
Ngăn xếp người bán:
- Dịch vụ giao diện người dùng dành cho người bán
- Dịch vụ đấu giá
Lớp học lập trình này sẽ hướng dẫn bạn thiết lập và kiểm thử chế độ thiết lập toàn diện trong môi trường cục bộ. Quy trình hướng dẫn này dự kiến sẽ mất khoảng 1 giờ, không bao gồm thời gian tạo bản dựng dịch vụ ban đầu.
Mặc dù bạn có thể chỉ làm việc trên mã bên mua hoặc mã bên bán, nhưng bạn nên thiết lập quy trình toàn diện trong môi trường cục bộ để hiểu rõ hơn cách ngăn xếp bên mua và bên bán hoạt động với nhau. Bằng cách thiết lập cả hai ngăn xếp, bạn có thể tự tin hơn sau này khi tích hợp với ngăn xếp người mua hoặc người bán tương ứng của bên khác. Việc kiểm thử các dịch vụ trên máy cũng giúp bạn tiết kiệm chi phí phát triển.
Trong lớp học lập trình này, chúng ta sẽ sử dụng Ứng dụng kiểm thử cục bộ B&A làm ứng dụng đồng hành trong hướng dẫn.
Ứng dụng kiểm thử cục bộ đồng hành lưu trữ nhiều tài nguyên của người mua và người bán được dùng trong phiên đấu giá B&A. Ứng dụng này cũng cung cấp giao diện người dùng tại http://localhost:3000
, nơi bạn có thể mô phỏng nhiều cấu hình đấu giá.
2. Thiết lập môi trường
2.1 Chuẩn bị máy Linux
Sử dụng máy Linux cục bộ hoặc cấp phép máy ảo Linux của nhà cung cấp dịch vụ đám mây mà bạn chọn. Để cải thiện thời gian xây dựng, bạn nên có ít nhất 16 lõi và tốt nhất là 32 lõi trở lên.
Xin lưu ý rằng chúng ta sẽ tải một trang HTML từ http://localhost:3000
của máy này. Nếu máy ảo không cung cấp giao diện người dùng đồ hoạ, hãy đảm bảo máy cục bộ của bạn có thể truy cập vào cổng 3000
để bạn có thể kết nối với máy ảo.
2.2 Cài đặt Docker
Chúng ta sử dụng Docker để chạy các dịch vụ và ứng dụng kiểm thử cục bộ.
Chúng ta sẽ sử dụng tập lệnh tiện lợi để cài đặt Docker trong môi trường thử nghiệm.
# 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
Cảnh báo: Với chế độ thiết lập không cần sudo, nhóm Docker sẽ cấp đặc quyền cấp gốc cho người dùng. Hãy đọc hướng dẫn về Docker không cần sudo để tìm hiểu thêm.
2.3 Khởi động Ứng dụng kiểm thử cục bộ đồng hành
Ứng dụng đồng hành cung cấp các tài nguyên như tập lệnh đặt giá thầu/đánh giá mô phỏng và điểm cuối BYOS K/V mô phỏng. Bạn nên khởi động ứng dụng trước khi chạy các dịch vụ B&A để có thể tải tài nguyên vào các dịch vụ đó.
Kéo xuống Kho lưu trữ ứng dụng kiểm thử cục bộ:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
Từ thư mục gốc của kho lưu trữ, hãy chạy tập lệnh thiết lập:
./setup
Tập lệnh thiết lập sẽ tạo mạng Docker ba-dev
, tạo chứng chỉ SSL và tạo hình ảnh ứng dụng kiểm thử.
Sau khi tạo bản dựng thành công, hãy chạy tập lệnh khởi động:
./start
3. Tạo và chạy B&A trên máy
3.1 Kéo xuống Dịch vụ B&A
Chúng ta sẽ chạy hai bộ Dịch vụ B&A trên cùng một máy, vì vậy, chúng ta sẽ tải kho lưu trữ xuống hai thư mục khác nhau.
Tập hợp A:
Kéo xuống kho lưu trữ B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Tập B
Kéo xuống kho lưu trữ B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Tạo dịch vụ
Từ thư mục gốc của mỗi thư mục B&A, hãy chạy lệnh sau để tạo cả 4 dịch vụ:
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
Lệnh trên sẽ tạo một thực thể local
của bản dựng phát triển (non_prod
) cho Google Cloud Platform (gcp
) của cả 4 dịch vụ. Cập nhật cờ --platform
cho nhà cung cấp dịch vụ đám mây mà bạn chọn nếu cần. Để tìm hiểu thêm về cờ bản dựng, hãy kiểm tra tệp build_and_test_all_docker
.
Bản dựng ban đầu có thể mất 2 giờ nếu bạn sử dụng máy 64 nhân và thời gian tạo bản dựng sẽ tăng theo số lượng nhân. Nếu bạn đang dùng máy 32 nhân, thì quá trình này có thể mất 4 giờ. Nếu bạn đang sử dụng máy 16 nhân, quá trình này có thể mất 8 giờ.
Xin lưu ý rằng các bản dựng tiếp theo sẽ sử dụng bộ nhớ đệm và mỗi bản dựng sẽ mất khoảng 5 đến 20 phút.
Truyện tranh xkcd có liên quan:
(Tôi đã gặp Randall Munroe của xkcd trong khi viết lớp học lập trình này và nói với anh rằng tôi đã thêm truyện tranh này vào đây)
3.3 Chạy các dịch vụ
Để kiểm thử, chúng ta sẽ chạy 8 dịch vụ (4 dịch vụ cho mỗi ngăn xếp). Mỗi lệnh được thiết lập để sử dụng các tài nguyên do Ứng dụng kiểm thử cục bộ cung cấp. Bạn nên sử dụng trình quản lý cửa sổ như tmux
.
Mở ít nhất 8 cửa sổ dòng lệnh khác và chạy các lệnh sau trong mỗi phiên.
Xin lưu ý rằng máy chủ Ứng dụng kiểm thử cục bộ phải đang chạy trong một quy trình riêng biệt, vì các tập lệnh đặt giá thầu và tính điểm sẽ do ứng dụng phân phát.
3.3.1 Đặt lệnh A
Dịch vụ | Lệnh |
|
|
|
|
Dịch vụ đấu giá |
|
|
|
3.3.2 Lệnh nhóm B
Dịch vụ | Lệnh |
|
|
|
|
Dịch vụ đấu giá |
|
|
|
3.3.2 Biến môi trường cho tập lệnh khởi động cục bộ
Bạn có thể sử dụng các biến môi trường sau đây để kiểm soát hành vi khởi động.
Biến môi trường | Phạm vi cung cấp | Mô tả |
| Tất cả dịch vụ | Cờ cần đặt cho lệnh docker |
| Tất cả dịch vụ | Khi kiểm thử trên máy cục bộ, bạn có thể cần sử dụng chứng chỉ tự ký không vượt qua quy trình kiểm tra xác minh ngang hàng SSL của Giá trị mặc định là |
| Tất cả dịch vụ | Cấp nhật ký dịch vụ. Cấp cao hơn cung cấp nhiều nhật ký hơn. 0 là mức thấp nhất và 10 là mức cao nhất. Giá trị mặc định là |
| Dịch vụ đặt giá thầu | Cổng của Dịch vụ đặt giá thầu. Mặc định là |
| Dịch vụ đặt giá thầu | URL của logic đặt giá thầu |
| Dịch vụ đặt giá thầu | Lưu lượng dữ liệu đi để huấn luyện mô hình |
| Dịch vụ đặt giá thầu | Đối số cho tính năng đặt giá thầu suy luận |
| Dịch vụ BFE | Cổng của Dịch vụ BFE. Mặc định là |
| Dịch vụ BFE | Địa chỉ K/V BYOS của người mua |
| Dịch vụ BFE | Địa chỉ K/V TEE của người mua |
| Dịch vụ BFE | Địa chỉ Dịch vụ đặt giá thầu của người mua |
| Dịch vụ đấu giá | Cổng của Dịch vụ đấu giá. Mặc định là |
| Dịch vụ đấu giá | URL của logic tính điểm |
| Dịch vụ đấu giá | URL báo cáo chiến thắng của người mua |
| Dịch vụ đấu giá | Tập lệnh báo cáo chiến thắng của người mua |
| Dịch vụ đấu giá | Tập lệnh báo cáo chiến thắng của người mua cho PAS |
| Dịch vụ SFE | Cổng của Dịch vụ SFE. Mặc định là |
| Dịch vụ SFE | Địa chỉ của Dịch vụ đấu giá của người bán |
| Dịch vụ SFE | Địa chỉ K/V BYOS của người bán |
| Dịch vụ SFE | Địa chỉ K/V TEE của người bán |
| Dịch vụ SFE | Nguồn gốc của người bán |
| Dịch vụ SFE | Địa chỉ BFE của người mua |
4. Kiểm thử bằng tính năng Gọi bảo mật từ dòng lệnh
4.1 Kiểm thử SFE
Bạn cũng có thể sử dụng công cụ Secure Invoke (Gọi bảo mật) có trong gói Dịch vụ B&A để gọi trực tiếp các dịch vụ từ dòng lệnh.
4.1.2 Tải trọng SelectAd
SFE
Yêu cầu JSON sau đây đã được điền sẵn thông tin thiết lập phiên đấu giá B&A của một người bán 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]"
}
]
}
}
}
}
Lưu tệp dưới dạng sfe-test.json
trong thư mục gốc của kho lưu trữ Dịch vụ B&A của Tập hợp A(tập lệnh bản dựng B&A sẽ sao chép các tệp trong thư mục gốc của kho lưu trữ vào thư mục /src/workspace
của hình ảnh Docker).
4.1.2 Gọi SFE bằng tính năng Gọi an toàn
Chạy lệnh sau từ thư mục gốc của kho lưu trữ Dịch vụ 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
Nếu thiết lập đúng ngăn xếp B&A, bạn sẽ nhận được phản hồi thành công sau:
{"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 Kiểm thử BFE
4.2.1 Yêu cầu 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"
}
Lưu tệp dưới dạng bfe-test.json
trong thư mục gốc của kho lưu trữ Dịch vụ B&A.
4.2.2 Gọi BFE bằng Lệnh gọi bảo mật
Chạy lệnh sau từ thư mục gốc của kho lưu trữ Dịch vụ 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
Nếu bạn thiết lập đúng ngăn xếp B&A, BFE sẽ trả về phản hồi sau:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Kiểm tra nhật ký SFE
Truy cập vào dòng lệnh và kiểm tra nhật ký SFE. Chúng ta sẽ xem xét một số nhật ký đáng chú ý trong kết quả.
4.3.1 Tải trọng đã mã hoá của yêu cầu SelectAd
Trong kết quả nhật ký SFE này, chúng ta thấy tải trọng được mã hoá của lệnh gọi navigator.getInterestGroupAdAuctionData()
. Tải trọng này do trình duyệt tạo, được gửi từ thẻ đến SAS, sau đó SAS chuyển tiếp tải trọng đó đến 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 Tải trọng đã giải mã
Trong kết quả này, chúng ta thấy tải trọng đã giải mã của lệnh gọi 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 Yêu cầu GetBids
đến BFE
Yêu cầu GetBids
được gửi từ SFE đến 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 Phản hồi GetBids
từ BFE
BFE phản hồi bằng giá thầu:
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 Yêu cầu ScoreAds
đến Dịch vụ đấu giá
Sau khi nhận được giá thầu, SFE sẽ thực hiện lệnh gọi ScoreAds
đến Dịch vụ đấu giá cho mỗi giá thầu:
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 Phản hồi ScoreAds
từ Dịch vụ đấu giá
Dịch vụ đấu giá của người bán phản hồi bằng điểm mức độ mong muốn:
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 Phản hồi SelectAd
từ SFE
Phản hồi SelectAd
của SFE được mã hoá và gửi đến 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. Kiểm thử bằng Ứng dụng kiểm thử cục bộ trên trình duyệt
5.1 Mở Chrome
Đọc bài viết của Chromium về cách khởi động Chrome từ dòng lệnh và khởi động Chrome bằng các cờ sau:
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
Cờ này được đặt để tải khoá điều phối viên mô phỏng mà chúng tôi đã lưu trữ tại https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json
Quan trọng: Hãy đảm bảo bạn đã thoát hoàn toàn khỏi tất cả các phiên bản Chrome trước khi mở phiên bản đó từ dòng lệnh bằng cờ B&A. Để thoát khỏi tất cả các quy trình của Chrome, hãy thử chạy ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
từ dòng lệnh.
5.2 Truy cập vào giao diện người dùng của ứng dụng kiểm thử cục bộ
Bạn có thể tìm thấy giao diện người dùng của ứng dụng tại http://localhost:3000 trong phiên bản trình duyệt Chrome mà bạn đã mở bằng các cờ. Địa chỉ chính xác mà bạn truy cập có thể khác nếu bạn đang sử dụng một máy ảo có tên máy chủ khác.
Ở hàng trên cùng của ứng dụng, bảng điều khiển "Chế độ điều khiển" chứa các nút để mô phỏng nhiều cấu hình đấu giá. Hai bảng điều khiển còn lại chứa các iframe từ trang web của nhà quảng cáo và nhà xuất bản.
Khi bạn nhấp vào nút "Tải thẻ DSP" trong iframe của trang nhà quảng cáo, một tập lệnh từ mỗi DSP sẽ được thêm vào trang. Các tập lệnh đó sẽ thêm người dùng vào các nhóm mối quan tâm. Mở Công cụ của Chrome cho nhà phát triển rồi truy cập vào "Application / Storage / Interest Groups" (Ứng dụng/Bộ nhớ/Nhóm mối quan tâm) để kiểm tra các nhóm mối quan tâm mà thẻ DSP đã tham gia:
Sau đó, hãy nhấp vào các nút trong bảng điều khiển "Chế độ điều khiển" để mô phỏng nhiều loại phiên đấu giá.
Nếu bạn thiết lập đúng Dịch vụ B&A và Ứng dụng kiểm thử cục bộ, thì quảng cáo trước đó sẽ hiển thị trong bảng điều khiển "iframe trang web của nhà xuất bản".
5.3 Cấu hình phiên đấu giá trong Ứng dụng kiểm thử cục bộ
Trong ứng dụng kiểm thử cục bộ đồng hành, các bên tham gia sau đây được lưu trữ, phân biệt theo số cổng (một cổng khác được coi là nhiều nguồn gốc):
Người hoặc tổ chức tham gia | Mô tả | Cổng |
Nhà quảng cáo | Tải thẻ DSP trên trang |
|
Nhà xuất bản | Tải các thẻ SSP trên trang |
|
| Người mua trên thiết bị |
|
| Người mua trên thiết bị |
|
| Người mua B&A |
|
| Người mua B&A |
|
| Người bán cấp cao nhất |
|
| Người bán chỉ trên thiết bị |
|
| Người bán chỉ bán hàng mới và hàng đã qua sử dụng |
|
| Người bán kết hợp nhiều phương tiện |
|
Có 4 DSP:
DSP-A
vàDSP-B
tham gia phiên đấu giá trên thiết bịDSP-X
vàDSP-Y
tham gia phiên đấu giá B&A
Có 4 SSP và mỗi người bán chạy một cấu hình phiên đấu giá khác nhau:
SSP-OD
chạy phiên đấu giá chỉ trên thiết bịSSP-BA
chạy phiên đấu giá chỉ dành cho B&ASSP-MIX
chạy phiên đấu giá ở chế độ kết hợpSSP-TOP
chạy phiên đấu giá nhiều người bánSSP-OD/BA/MIX
tham gia với tư cách là người bán thành phần của phiên đấu giá nhiều người bán củaSSP-TOP
Để biết toàn bộ cấu trúc, hãy xem sơ đồ thiết kế.
5.4 Cấu hình Dịch vụ đặt giá thầu và phiên đấu giá
Trong lớp học lập trình này, chúng ta sẽ chạy song song hai bộ B&A.
Chuẩn bị | Dịch vụ | Người hoặc tổ chức tham gia | Địa chỉ mạng |
Tập hợp A | Dịch vụ đặt giá thầu |
|
|
Dịch vụ BFE |
|
| |
Dịch vụ đấu giá |
|
| |
Dịch vụ SFE |
|
| |
Tập B | Dịch vụ đặt giá thầu |
|
|
Dịch vụ BFE |
|
| |
Dịch vụ đấu giá |
|
| |
Dịch vụ SFE |
|
| |
Ứng dụng | Ứng dụng kiểm thử cục bộ | Tất cả |
|
- Trong Tập hợp A,
DSP-X
sử dụng dịch vụ của người mua vàSSP-BA
sử dụng dịch vụ của người bán - Trong Tập hợp B,
DSP-Y
sử dụng dịch vụ của người mua vàSSP-MIX
sử dụng dịch vụ của người bán
Để giao tiếp giữa Ứng dụng kiểm thử cục bộ và Dịch vụ B&A, bạn có thể sử dụng mạng cầu Docker. Mạng cầu ba-dev
được tạo bằng tập lệnh thiết lập của Ứng dụng kiểm thử cục bộ. Các dịch vụ B&A được chỉ định một địa chỉ IP trong mạng con của 192.168.84.0
.
Ví dụ: khi bạn gọi SFE của Tập hợp A từ ứng dụng, địa chỉ mạng của 192.168.84.104:50053
sẽ được sử dụng. Khi bạn tải tập lệnh đặt giá thầu mô phỏng từ DSP-X vào BFE, https://192.168.84.100:5003/generate-bid.js
sẽ được sử dụng.
6. Tóm tắt
Giờ đây, chúng tôi hy vọng bạn đã làm quen với việc chạy ngăn xếp Dịch vụ B&A cục bộ trên máy của mình và hiểu rõ hơn về cách các dịch vụ giao tiếp với nhau.
6.1. Hỗ trợ kỹ thuật
- Nếu bạn có câu hỏi về cách thiết lập Ứng dụng kiểm thử cục bộ, hãy mở một vấn đề trong kho lưu trữ LTA.
- Nếu bạn có câu hỏi về Dịch vụ đặt giá thầu và Phiên đấu giá, hãy mở một vấn đề trong kho lưu trữ Dịch vụ B&A.
- Nếu bạn có câu hỏi chung về Hộp cát về quyền riêng tư, hãy mở một vấn đề trong kho lưu trữ hỗ trợ nhà phát triển privacy-sandbox-dev-support.
6.2 Tìm hiểu thêm
- Tìm hiểu thêm về cấu trúc B&A cho web
- Tìm hiểu thêm về tính năng tích hợp của người bán với B&A dành cho web