বিডিং অ্যান্ড অকশন (বিএন্ডএ) পরিষেবা হল বিজ্ঞাপন ক্রেতা এবং বিক্রেতাদের জন্য পরিষেবার একটি সেট যা একটি বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্ট (টিইই) তে পরিচালিত হয় যাতে একটি সুরক্ষিত দর্শক (পিএ) নিলাম সহজতর হয়। এই ডেভেলপারের নির্দেশিকা ব্যাখ্যা করে যে কীভাবে একজন বিক্রেতা বিএন্ডএ-এর জন্য একটি Chrome PA নিলামের সাথে একীভূত হতে পারেন।
ওয়াকথ্রু

পদক্ষেপগুলি নিম্নরূপ সংক্ষিপ্ত করা যেতে পারে:
- ব্রাউজার থেকে এনক্রিপ্ট করা পেলোড পেতে
getInterestGroupAdAuctionData()এ কল করুন। -
fetch('https://your-ad-server.example')এ কল করুন এবং এনক্রিপ্ট করা পেলোড সহ ইউনিফাইড নিলাম অনুরোধটি আপনার SAS-এ পাঠান। - B&A নিলাম পরিচালনার জন্য আপনার SAS থেকে SFE এর
SelectAd()অপারেশনে কল করুন। - প্রতিক্রিয়ার হ্যাশ সহ B&A নিলামের ফলাফল পৃষ্ঠায় ফেরত দিন।
- সিঙ্গেল-সেলার, মিক্সড-মোড, অথবা মাল্টি-সেলার PA নিলাম চালানোর জন্য ব্রাউজারে
runAdAuction()কল করুন এবং সার্ভার-সাইড B&A নিলামের ফলাফল কলটিতে পাঠান।
এনক্রিপ্ট করা বিজ্ঞাপন নিলামের ডেটা পান

সার্ভার-সাইড B&A নিলাম চালানোর জন্য প্রয়োজনীয় ডেটা পেতে, প্রকাশক পৃষ্ঠায় বিক্রেতার জাভাস্ক্রিপ্ট কোড navigator.getInterestGroupAdAuctionData() কল করে।
const adAuctionData = await navigator.getInterestGroupAdAuctionData({
seller: 'https://ssp.example', // Required
requestSize: 51200,
coordinatorOrigin: 'https://publickeyservice.pa.gcp.privacysandboxservices.com/',
perBuyerConfig: {
'https://dsp-x.example': { targetSize: 8192 },
'https://dsp-y.example': { targetSize: 8192 }
}
});
const { requestId, request } = adAuctionData;
| মাঠ | বিবরণ |
|---|---|
seller | প্রয়োজনীয় । নিলাম পরিচালনাকারী বিক্রেতার উৎপত্তি। এই মানটি পরবর্তীতে runAdAuction() কলে seller মানের সাথে মিলতে হবে। |
requestSize | ঐচ্ছিক । সমস্ত ক্রেতার ডেটার সর্বোচ্চ পেলোড সাইজ সেট করে। আরও জানতে ব্যাখ্যাকারীর অনুরোধের আকার বিভাগটি দেখুন। |
perBuyerConfig | ঐচ্ছিক । প্রতিটি ক্রেতার জন্য কনফিগারেশন সেট করে, এবং কোন ক্রেতারা B&A নিলামে অংশগ্রহণ করবে তাও নিয়ন্ত্রণ করে। যদি |
targetSize | যদি requestSize সেট করা থাকে তাহলে ঐচ্ছিক । যদি perBuyerConfig এ ক্রেতার উৎপত্তি সেট করা থাকে কিন্তু requestSize সেট না থাকে তাহলে প্রয়োজন ।ক্রেতার ডেটার সর্বোচ্চ পেলোড সাইজ সেট করে। আরও জানতে ব্যাখ্যাকারীর অনুরোধের আকার বিভাগটি দেখুন। |
coordinatorOrigin | ঐচ্ছিক , কিন্তু শেষ পর্যন্ত প্রয়োজন হবে। সেট না থাকলে ডিফল্টভাবে https://publickeyservice.pa.gcp.privacysandboxservices.com থাকে।পেলোড এনক্রিপ্ট করার জন্য কী আনার জন্য সমন্বয়কারীকে সেট করে। আরও জানতে ব্যাখ্যাকারীর সমন্বয়কারী বিভাগটি দেখুন। |
কল করা হলে, ব্রাউজারটি perBuyerConfig এ তালিকাভুক্ত ক্রেতাদের আগ্রহের গোষ্ঠীগুলি পড়ে এবং ক্রেতার ডেটা এনক্রিপ্ট করে। এই ক্রেতার ডেটাতে বিডিংয়ের জন্য ব্যবহার করার জন্য ক্রস-সাইট তথ্য থাকে এবং TEE-এর বাইরে ডিক্রিপ্ট করা যায় না। পেলোড অপ্টিমাইজেশনের জন্য, শুধুমাত্র আগ্রহের গোষ্ঠীর নাম, বিশ্বস্ত বিডিং সিগন্যাল কী এবং ব্রাউজার সিগন্যালগুলি পেলোডে অন্তর্ভুক্ত থাকে।
getInterestGroupAdAuctionData() কলের মাধ্যমে ফেরত পাঠানো বিজ্ঞাপন নিলাম ডেটা অবজেক্টে, requestId স্ট্রিং এবং এনক্রিপ্ট করা request বাইট অ্যারে উপলব্ধ।

ব্রাউজারে নিলাম শেষ করার জন্য যখন runAdAuction() কল করা হয়, তখন requestId স্ট্রিংটি পরে ব্যবহার করা হয়। এনক্রিপ্ট করা request পেলোডটি ইউনিফাইড নিলাম অনুরোধের অংশ হিসাবে বিক্রেতা বিজ্ঞাপন পরিষেবাতে পাঠানো হয়।
এই কলের একটি উদাহরণ দেখতে, স্থানীয় টেস্টিং অ্যাপের বিক্রেতা জাভাস্ক্রিপ্ট কোডটি দেখুন।
SAS-তে একীভূত নিলামের অনুরোধ পাঠান।

একটি ইউনিফাইড নিলাম অনুরোধ হল এমন একটি অনুরোধ যাতে প্লেইনটেক্সট প্রাসঙ্গিক নিলাম পেলোড এবং PA B&A নিলাম পেলোড থাকে। PA B&A নিলাম পেলোড হল এনক্রিপ্ট করা request ডেটা যা ব্রাউজারটি getInterestGroupAdAuctionData() কলে তৈরি করে। এই অনুরোধটি SAS-এ পাঠানো হয়, যেখানে প্রাসঙ্গিক নিলাম এবং PA B&A নিলাম সাজানো হয়।
fetch('https://ssp.example/ad-auction', {
method: 'POST',
adAuctionHeaders: true,
body: JSON.stringify({
contextualAuctionPayload: { somePayload },
protectedAudienceAuctionPayload: encodeBinaryData(request)
}),
});
SAS-এ অনুরোধ পাঠানোর জন্য, পৃষ্ঠা থেকে একটি fetch() কল করা হয়:
- কলটিতে অবশ্যই
adAuctionHeaders: trueবিকল্পটি অন্তর্ভুক্ত থাকতে হবে, যা ব্রাউজারকে পরবর্তী সময়ে যখনrunAdAuction()ব্রাউজারে নিলাম শেষ করার জন্য ডাকা হয় তখন এই কলের প্রতিক্রিয়া যাচাই করার জন্য সংকেত দেয়। - ফেচ রিকোয়েস্টের অরিজিন অবশ্যই
getInterestGroupAdAuctionData()এবংrunAdAuction()কলগুলিতে প্রদত্তsellerঅরিজিনের সাথে মিলতে হবে।
কলের মূল অংশে রয়েছে:
- প্রাসঙ্গিক নিলাম পরিচালনার জন্য SAS দ্বারা ব্যবহৃত প্লেইনটেক্সট প্রাসঙ্গিক নিলাম পেলোড।
- সার্ভার-সাইড বিএন্ডএ নিলাম পরিচালনার জন্য SAS দ্বারা SFE-তে এনক্রিপ্ট করা প্রোটেক্টেড অডিয়েন্স নিলাম পেলোড পাঠানো হবে।
এই কলের একটি উদাহরণ দেখতে, স্থানীয় টেস্টিং অ্যাপের বিক্রেতা জাভাস্ক্রিপ্ট কোডটি দেখুন।
Base64 এনকোডিং এবং ডিকোডিং
getInterestGroupAdAuctionData() কল থেকে ফিরে আসা এনক্রিপ্ট করা request পেলোডটি Uint8Array এর একটি উদাহরণ, যা একটি ডেটা টাইপ যা JSON পরিচালনা করতে পারে না। JSON ফর্ম্যাটে বাইট অ্যারে পাঠাতে, আপনি বাইনারি ডেটাতে একটি base64 এনকোডিং প্রয়োগ করে এটিকে একটি স্ট্রিংয়ে রূপান্তর করতে পারেন।
জাভাস্ক্রিপ্ট ব্রাউজার API window atob() এবং btoa() ফাংশন প্রদান করে যা বাইনারি ডেটা এবং base64-এনকোডেড ASCII স্ট্রিংয়ের মধ্যে রূপান্তর করে। ( atob মানে ASCII-থেকে-বাইনারি, এবং btoa মানে বাইনারি-থেকে-ASCII)।
base64-এনকোডেড স্ট্রিং-এ বাইনারি ডেটা এনকোড করতে btoa() কল করুন যা দেখতে নিচের মতো দেখাচ্ছে:
function encodeBinaryData(data) {
return btoa(String.fromCharCode.apply(null, data));
}
এই fetch কল থেকে ফিরে আসা এনক্রিপ্ট করা B&A নিলামের ফলাফলটিও একটি base64 এনকোডিংয়ে রয়েছে, তাই আপনাকে এটিকে বাইনারি ডেটাতে ডিকোড করতে হবে। base64-এনকোডেড ASCII স্ট্রিংকে বাইনারি ডেটাতে ডিকোড করতে atob() কল করুন:
function decodeBase64String(base64string) {
return new Uint8Array(
atob(base64string)
.split('')
.map((char) => char.charCodeAt(0))
);
}
তবে, একটি base64-এনকোডেড স্ট্রিং সাধারণত মূল ডেটার চেয়ে প্রায় 33% বড় হয়। আপনি যদি আরও ল্যাটেন্সি উন্নতি চান, তাহলে বাইনারি ডেটা পাঠানোর জন্য JSON ছাড়া অন্য কোনও ফর্ম্যাট ব্যবহার করুন।
বিএন্ডএ নিলাম পরিচালনা করতে SFE এর SelectAd কল করুন।

একবার বিক্রেতা বিজ্ঞাপন পরিষেবা পৃষ্ঠা থেকে একীভূত নিলাম অনুরোধ পাওয়ার পরে, প্রাসঙ্গিক নিলাম বিজয়ী নির্ধারণ করতে এবং PA B&A নিলামে পাস করার জন্য ক্রেতার সংকেত সংগ্রহ করতে প্রথমে প্রাসঙ্গিক নিলাম পরিচালিত হয়। তারপরে, অনুরোধ পেলোড সহ SAS থেকে SFE এর SelectAd অপারেশন কল করে B&A নিলাম শুরু করা হয়। মনে রাখবেন যে ধাপ #2- এ SAS-এর কাছে পৃষ্ঠার অনুরোধ থেকে কিছু মেটাডেটা SFE-তে ফরোয়ার্ড করা হয়।
SelectAdRequest পেলোড তৈরি করুন
SelectAd কলের অনুরোধ পেলোড নিম্নলিখিতভাবে তৈরি করা যেতে পারে:
const selectAdRequest = {
auction_config: {
seller: 'https://ssp.example',
auction_signals: '{"testKey":"someValue"}',
seller_signals: '{"testKey":"someValue"}',
buyer_list: [
'https://dsp-x.example',
'https://dsp-y.example',
],
per_buyer_config: {
'https://dsp-x.example': { buyer_signals: '{"testKey": "someValue"}' },
'https://dsp-y.example': { buyer_signals: '{"testKey": "someValue"}' },
},
},
client_type: 'CLIENT_TYPE_BROWSER',
protected_auction_ciphertext: decodeBase64string(request)
};
মনে রাখবেন যে ব্রাউজার থেকে এনক্রিপ্ট করা বিজ্ঞাপন নিলামের ডেটা যদি base64-এনকোডেড থাকে, তাহলে gRPC ব্যবহার করে SFE-তে অনুরোধ পাঠানো হলে এটিকে বাইনারি ডেটাতে ডিকোড করতে হবে। যদি HTTP ব্যবহার করে অনুরোধ পাঠানো হয়, তাহলে এনক্রিপ্ট করা বিজ্ঞাপন নিলামের ডেটা তার base64-এনকোডেড আকারে থাকতে পারে।
SelectAd অনুরোধে সংজ্ঞায়িত অন্যান্য ক্ষেত্রগুলি দেখতে, SelectAdRequest এর প্রোটো সংজ্ঞাটি দেখুন।
মিশ্র-মোড এবং উপাদান নিলামের জন্য শীর্ষ-স্তরের বিক্রেতা ক্ষেত্র সেট করুন
যদি বিক্রেতা একটি মিশ্র-মোড নিলাম পরিচালনা করেন অথবা একটি মাল্টি-সেলার নিলামে কম্পোনেন্ট বিক্রেতা হিসেবে অংশগ্রহণ করেন, তাহলে অনুরোধে top_level_seller ক্ষেত্রটি সংজ্ঞায়িত করতে হবে।
আপনি যদি মিশ্র-মোড বিক্রেতা হন, তাহলে top_level_seller মানটি আপনার উৎস:
const selectAdRequest = {
auction_config: {
seller: 'https://ssp-mix.example',
top_level_seller: 'https://ssp-mix.example',
}
}
আপনি যদি একজন কম্পোনেন্ট বিক্রেতা হন, তাহলে top_level_seller মান হল মাল্টি-সেলার নিলামের শীর্ষ-স্তরের বিক্রেতা:
const selectAdRequest = {
auction_config: {
seller: 'https://ssp-mix.example',
top_level_seller: 'https://ssp-top.example',
}
}
SFE এর SelectAd কল করুন
SAS থেকে SFE তে কল করা যেতে পারে gRPC অথবা HTTP ব্যবহার করে।
জিআরপিসি কল
একটি gRPC ক্লায়েন্টের সাথে নোডে Express ব্যবহার করে SFE-তে gRPC অনুরোধটি নিম্নরূপ দেখাচ্ছে:
import grpc from '@grpc/grpc-js';
// Load proto definition
const packageDefinition = protoLoader.loadSync(protoPath, { keepCase: true, enums: String });
const {
privacy_sandbox: {
bidding_auction_servers: { SellerFrontEnd }
}
} = grpc.loadPackageDefinition(packageDefinition);
// Instantiate the gRPC client
const sfeGrpcClient = new SellerFrontEnd('192.168.84.104:50067', grpc.credentials.createInsecure());
// Send SelectAd request
sfeGrpcClient.selectAd(selectAdRequest,(error, response) => {
// Handle SFE response
});
SFE ক্লায়েন্টের প্রোটো সংজ্ঞা স্থানীয় টেস্টিং অ্যাপ রিপোজিটরিতে পাওয়া যাবে।
এনভয় প্রক্সিতে HTTP কল
SFE-তে HTTP POST অনুরোধটি /v1/selectAd পাথে পাঠানো হয় এবং এটি দেখতে নিচের মতো:
fetch('https://ssp-ba.example/sfe/v1/selectAd', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(selectAdRequest),
});
মেটাডেটা ফরোয়ার্ড করুন
SAS-এ পৃষ্ঠার কল থেকে নিম্নলিখিত মেটাডেটা SAS-এর SelectAd কলে SFE-তে যোগ করা উচিত:
-
Accept-Language -
User-Agent - আইপি ঠিকানা
যখন মেটাডেটা SFE-তে পাঠানো হয়, তখন তাদের অবশ্যই নিম্নলিখিত অ-মানক হেডারগুলি ব্যবহার করতে হবে কারণ gRPC User-Agent হেডার পরিবর্তন করতে পারে:
-
X-Accept-Language -
X-User-Agent -
X-BnA-Client-IP
একটি gRPC ক্লায়েন্টের সাথে নোডে Express ব্যবহার করে মেটাডেটা কীভাবে ফরোয়ার্ড করা যেতে পারে তার একটি উদাহরণ নিচে দেওয়া হল:
sellerAdService.post('/ad-auction', (req, res) => {
// …
const metadata = new grpc.Metadata();
metadata.add('X-Accept-Language', req.header('Accept-Language'));
metadata.add('X-User-Agent', req.header('User-Agent'));
metadata.add('X-BnA-Client-IP', req.ip);
const sfeGrpcClient = createSfeGrpcClient();
sfeGrpcClient.selectAd(selectAdRequest, metadata, callbackFn);
})
HTTP কল ব্যবহার করে মেটাডেটা কীভাবে ফরোয়ার্ড করা যায় তার একটি উদাহরণ নিচে দেওয়া হল:
sellerAdService.post('/ad-auction', (req, res) => {
// …
fetch('https://ssp-ba.example/sfe/v1/selectAd', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Accept-Language': req.header('Accept-Language'),
'X-User-Agent': req.header('User-Agent'),
'X-BnA-Client-IP': req.ip
},
body: JSON.stringify(selectAdRequest)
});
})
সার্ভার-অর্কেস্ট্রেটেড মাল্টি-সেলার নিলাম
আপনি যদি একজন শীর্ষ-স্তরের বিক্রেতা হন যিনি সার্ভার-অর্কেস্ট্রেটেড মাল্টি-সেলার নিলাম পরিচালনা করেন, তাহলে SelectAd কল করার আগে GetComponentAuctionCiphertexts কলটি SFE-তে করা হয়। প্রতিক্রিয়াটিতে পুনরায় এনক্রিপ্ট করা উপাদান নিলাম পেলোড থাকে যা উপাদান বিক্রেতার বিজ্ঞাপন পরিষেবাগুলিতে পাঠানো হয়। ফিরে আসা উপাদান B&A বিজ্ঞাপন নিলামের ফলাফলগুলি শীর্ষ-স্তরের বিক্রেতার SFE-এর SelectAd কলে সরবরাহ করা হয়।
আরও জানতে GitHub-এ মাল্টি-সেলার ব্যাখ্যাকারী দেখুন।
বিএন্ডএ নিলামের ফলাফল পৃষ্ঠায় ফেরত দিন।

B&A নিলাম শেষ হওয়ার পর, এনক্রিপ্ট করা নিলামের ফলাফল SAS-এ ফেরত পাঠানো হয় এবং SAS ধাপ #2- এ পৃষ্ঠা থেকে এনক্রিপ্ট করা নিলামের ফলাফলের সাথে একীভূত নিলামের অনুরোধের জবাব দেয়। পৃষ্ঠার SAS প্রতিক্রিয়ায়, এনক্রিপ্ট করা নিলামের ফলাফলের base64url -encoded SHA-256 হ্যাশটি Ad-Auction-Result প্রতিক্রিয়া শিরোনামে সেট করা হয়। ক্লায়েন্টে নিলাম শেষ করার সময় পেলোড যাচাই করার জন্য ব্রাউজার দ্বারা এই হ্যাশটি ব্যবহার করা হয়।
নোডে বেস৬৪ এনকোডিং সহ একটি SHA-256 হ্যাশ তৈরি করা এইরকম দেখাচ্ছে:
import { createHash } from 'crypto';
createHash('sha256')
.update(binaryData, 'base64')
.digest('base64url');
রেসপন্স হেডারে হ্যাশ সংযুক্ত করে নিলামের ফলাফল পৃষ্ঠায় ফিরিয়ে দিলে নিচের মতো দেখাবে:
sellerAdService.post('/ad-auction', (req, res) => {
// …
sfeGrpcClient.selectAd(selectAdRequest, metadata, (error, response) => {
const { auction_result_ciphertext } = response;
const ciphertextShaHash = createHash('sha256')
.update(auction_result_ciphertext, 'base64')
.digest('base64url');
res.set('Ad-Auction-Result', ciphertextShaHash);
res.json({
protectedAudienceAuctionResult: encodeBinaryData(auction_result_ciphertext),
contextualAuctionResult: getContextualAuctionResult()
});
});
})
যেহেতু এটি ধাপ #২ এর পৃষ্ঠা থেকে করা একীভূত নিলাম অনুরোধের একটি প্রতিক্রিয়া, তাই প্রাসঙ্গিক নিলামের ফলাফলও প্রতিক্রিয়াতে অন্তর্ভুক্ত করা হয়েছে।
হেডার পুনরাবৃত্তি করে অথবা হ্যাশগুলিকে আলাদা করে Ad-Auction-Result মধ্যে একাধিক হ্যাশ অন্তর্ভুক্ত করা যেতে পারে। নিম্নলিখিত দুটি প্রতিক্রিয়া হেডার সমতুল্য:
Ad-Auction-Result: ungWv48Bz-pBQUDeXa4iI7ADYaOWF3qctBD_YfIAFa0=,9UTB-u-WshX66Xqz5DNCpEK9z-x5oCS5SXvgyeoRB1k=
Ad-Auction-Result: ungWv48Bz-pBQUDeXa4iI7ADYaOWF3qctBD_YfIAFa0=
Ad-Auction-Result: 9UTB-u-WshX66Xqz5DNCpEK9z-x5oCS5SXvgyeoRB1k=
এই কলের একটি উদাহরণ দেখতে, স্থানীয় টেস্টিং অ্যাপের বিক্রেতা সার্ভার কোডটি দেখুন।
নিলাম সম্পন্ন করতে runAdAuction() কল করুন।

SAS থেকে ফিরে আসা একীভূত নিলাম প্রতিক্রিয়ায় এনক্রিপ্ট করা B&A নিলাম ফলাফল অন্তর্ভুক্ত থাকে। ব্রাউজারে নিলাম শেষ করার জন্য এই পেলোডটি runAdAuction() কলে পাস করা হয়। ধাপ #1 -এ getInterestGroupAdAuctionData() কল থেকে requestId মানটিও নিলামে পাস করা হয়।
// Get the encrypted ad auction data (Step #1)
const { requestId, request } = navigator.getInterestGroupAdAuctionData(adAuctionDataConfig)
// Send unified auction request (Step #2)
const response = await fetch('https://ssp-ba.example/ad-auction', {
method: 'POST',
body: JSON.stringify({
adAuctionRequest: encodeBinaryData(request),
}),
});
const { protectedAudienceAuctionResult } = await response.json();
// Finish the auction in the browser
await navigator.runAdAuction({
// pass in "requestId" and "protectedAudienceAuctionResult"
// the config structure will differ based on the auction configuration
});
runAdAuction() কলে পাস করা নিলাম কনফিগারেশনের কাঠামো বিক্রেতার নির্বাচিত নিলাম কনফিগারেশনের উপর নির্ভর করে ভিন্ন হয়।
একক-বিক্রেতা নিলাম
একটি একক-বিক্রেতা B&A নিলাম চালানোর জন্য, runAdAuction() কলের নিলাম কনফিগারেশনটি নিম্নলিখিতভাবে তৈরি করা হয়:
await navigator.runAdAuction({
seller: 'https://ssp-ba.example',
requestId,
serverResponse: protectedAudienceAuctionResult,
});
requestId ফিল্ডটি getInterestGroupAdAuctionData() কল দ্বারা ফেরত পাঠানো requestId গ্রহণ করে। serverResponse ফিল্ডটি ধাপ #3 এ চলমান B&A নিলামের একটি বাইট অ্যারে গ্রহণ করে।
এই কলের একটি উদাহরণ দেখতে, স্থানীয় টেস্টিং অ্যাপের বিক্রেতা জাভাস্ক্রিপ্ট কোডটি দেখুন।
মিশ্র-মোড নিলাম
একটি মিশ্র-মোড B&A নিলাম পরিচালনার জন্য যেখানে ডিভাইসে থাকা এবং B&A ক্রেতা উভয়ই অংশগ্রহণ করতে পারে, runAdAuction() কলের নিলাম কনফিগারেশনটি নিম্নলিখিতভাবে তৈরি করা হয়:
await navigator.runAdAuction({
seller: 'https://ssp-mix.example',
decisionLogicURL: 'https://ssp-mix.example/score-ad.js',
componentAuctions: [
// B&A auction result
{
seller: 'https://ssp-mix.example',
requestId,
serverResponse: protectedAudienceAuctionResult,
},
// On-device auction config
{
seller: 'https://ssp-mix.example',
decisionLogicURL: 'https://ssp-mix.example/on-device-score-ad.js',
interestGroupBuyers: [
'https://dsp-a.example', // On-device buyer
'https://dsp-a.example', // On-device buyer
],
},
]
});
মিশ্র-মোড নিলামের সুবিধার্থে, B&A নিলামের ফলাফল এবং অন-ডিভাইস নিলাম কনফিগারেশন componentAuctions ফিল্ডে পাস করা হয়। মিশ্র-মোড নিলামে, শীর্ষ-স্তরের কনফিগারেশন এবং কম্পোনেন্ট কনফিগারেশন উভয়ের জন্যই seller মূল্য একই থাকে।
এই কলের একটি উদাহরণ দেখতে, স্থানীয় টেস্টিং অ্যাপের বিক্রেতা জাভাস্ক্রিপ্ট কোডটি দেখুন।
বহু-বিক্রেতা নিলাম
আপনি যদি একজন শীর্ষ-স্তরের বিক্রেতা হন যিনি একটি ডিভাইস-অর্কেস্ট্রেটেড মাল্টি-সেলার নিলাম পরিচালনা করেন, তাহলে প্রতিটি উপাদান বিক্রেতা তাদের B&A নিলামের ফলাফল এবং ডিভাইসে নিলামের কনফিগারেশন জমা দেবেন।
await navigator.runAdAuction({
seller: 'https://ssp-top.example',
decisionLogicURL: 'https://ssp-top.example/score-ad.js',
componentAuctions: [
// SSP-BA's B&A-only auction result
{
seller: 'https://ssp-ba.example',
requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
serverResponse: Uint8Array(560) [193, 120, 4, …] // Encrypted B&A auction result
},
// SSP-MIX's B&A auction result
{
seller: 'https://ssp-mix.example',
requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
serverResponse: Uint8Array(560) [133, 20, 4, …] // Encrypted B&A auction result
}.
// SSP-MIX's on-device auction config
{
seller: 'https://ssp-mix.example',
interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
decisionLogicURL: 'https://ssp-mix.example/score-ad.js',
}
// SSP-OD's on-device auction config
{
seller: 'https://ssp-od.example',
interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
decisionLogicURL: 'https://ssp-od.example/score-ad.js',
}
]
})
এই কলের একটি উদাহরণ দেখতে, স্থানীয় টেস্টিং অ্যাপের বিক্রেতা জাভাস্ক্রিপ্ট কোডটি দেখুন।
পরবর্তী পদক্ষেপ
এই নির্দেশিকাটি পড়ার পর, আপনি নিম্নলিখিত পদক্ষেপগুলি নিতে পারেন:
আরও জানুন
- আরও গভীরভাবে বোঝার জন্য, GitHub-এ নিম্নলিখিত ব্যাখ্যাগুলি দেখুন:
- ওয়েবের জন্য B&A আর্কিটেকচার সম্পর্কে আরও জানুন
- এন্ড-টু-এন্ড লোকাল টেস্টিং কোডল্যাব অনুসরণ করে B&A সহ সুরক্ষিত দর্শকদের সাথে পরীক্ষা করুন।
প্রশ্ন আছে?
- বিডিং এবং নিলাম পরিষেবা সম্পর্কে আপনার যদি কোন প্রশ্ন থাকে, তাহলে B&A পরিষেবা সংগ্রহস্থলে একটি সমস্যা খুলুন ।