একজন ক্রেতা হিসাবে B&A এর সাথে একীভূত হন

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

ওভারভিউ

B&A পরিষেবাগুলির সাথে একটি সুরক্ষিত শ্রোতা নিলামে অংশগ্রহণ করতে, ক্রেতা উন্নত নিলাম বিলম্বের জন্য পেলোড অপ্টিমাইজ করতে আগ্রহের গোষ্ঠী (IG) আপডেট করে৷

নিম্নলিখিত পেলোড অপ্টিমাইজেশান কাজগুলি ক্রেতার দ্বারা প্রয়োজন:

B&A জন্য আগ্রহ গ্রুপ

পেলোড অপ্টিমাইজেশান প্রয়োগ করা একটি B&A PA নিলামের জন্য নিম্নোক্ত একটি উদাহরণ আগ্রহ গ্রুপ কনফিগারেশন:

navigator.joinAdInterestGroup({
  name: 'example-ig',
  owner: 'https://dsp.example',

  // An ID is mapped to each render URL
  ads: [
    {
      renderURL: 'https://dsp.example/ad.html',
      adRenderId: '12345678' // 12 characters max,
      buyerReportingId: 'brid123', // Optional
      buyerAndSellerReportingId: 'bsrid123', // Optional
      selectableBuyerAndSellerReportingId: ['sbsrid123', 'sbsrid456'], // Optional
    },
  ],
  adComponents: [
    {
      renderURL: 'https://dsp.example/ad-component.html',
      adRenderId: 'abcdefgh'
    },
  ],

  // Flags are set to omit data in the B&A auction payload
  auctionServerRequestFlags: ['omit-ads', 'omit-user-bidding-signals'],

  // Data not included in the B&A auction payload can be fetched as trusted signals
  // The following is an example of how the keys could look, but the actual
  // implementation is up to the ad tech
  trustedBiddingSignalsKeys: [
    'exampleUserBiddingSignalsKey',
    'exampleAdRenderIdKey',
    'exampleAdMetadataKey',
    'exampleAdReportingIdKey',
  ],

  // Optionally, interest groups can be prioritized
  priority: 0.0,
});

B&A এবং অন-ডিভাইস ইন্টারেস্ট গ্রুপ কনফিগগুলির মধ্যে পার্থক্যগুলি হল:

ক্ষেত্র বিএন্ডএ আইজি অন-ডিভাইস আইজি B&A নিলাম পেলোড অন্তর্ভুক্ত
auctionServerRequestFlags ব্যবহৃত ব্যবহার করা হয়নি না
userBiddingSignals সুপারিশ করা হয় না ব্যবহৃত না, যদি omit-user-bidding-signals ফ্ল্যাগ সেট করা থাকে
ads এবং adComponents মধ্যে adRenderId ব্যবহৃত ব্যবহার করা হয়নি যদি omit-ads ফ্ল্যাগ সেট করা থাকে, ads adRenderId শুধুমাত্র পেলোডের browserSignals.prevWins এ উপলব্ধ। adComponents এ সংজ্ঞায়িত adRenderId পেলোডে অন্তর্ভুক্ত করা হয় না।

যদি omit-ads ফ্ল্যাগ সেট করা না থাকে, browserSignals.prevWins , interestGroup.adRenderIds এবং interestGroup.adComponentRenderIds এ উপলব্ধ।

ads এবং adComponents মধ্যে renderURL ব্যবহৃত ব্যবহৃত না
ads এবং adComponents মধ্যে metadata ব্যবহার করা হয়নি ব্যবহৃত না
ads আইডি রিপোর্টিং ব্যবহৃত ব্যবহৃত না
  • auctionServerRequestFlags ক্ষেত্রটি পতাকা সেট করার অনুমতি দেয় যা ব্রাউজারকে B&A নিলাম পেলোডে কিছু ডেটা বাদ দিতে বলে।
  • userBiddingSignals মানটি আগ্রহের গোষ্ঠীতে সংজ্ঞায়িত করা যেতে পারে, কিন্তু omit-user-bidding-signals পতাকা ব্যবহার করে সেগুলি বাদ দেওয়ার পরামর্শ দেওয়া হয়। বাদ দেওয়া সংকেতগুলি কে/ভি পরিষেবা ব্যবহার করে সরবরাহ করা যেতে পারে।
  • adRenderId ক্ষেত্রটি সংশ্লিষ্ট renderURL এর সাথে সেট করা আছে, কিন্তু শুধুমাত্র adRenderId B&A নিলাম পেলোডের অংশ হয়ে যাবে। নিলামের সময় পরবর্তীতে generateBid() থেকে যে রেন্ডার ইউআরএল ফিরে এসেছে তা অবশ্যই IG-তে সংজ্ঞায়িত রেন্ডার ইউআরএলের সাথে মেলে।
  • রিপোর্টিং আইডিগুলি B&A IG-তে সংজ্ঞায়িত করা হয়েছে, কিন্তু B&A নিলাম পেলোডে অন্তর্ভুক্ত নয়। নিলামের সময় পরবর্তীতে generateBid() থেকে ফিরে আসা রিপোর্টিং আইডি অবশ্যই IG-তে সংজ্ঞায়িত রেন্ডার ইউআরএলের সাথে মিলবে।
  • ad.metadata এবং রিপোর্টিং আইডিগুলি B&A নিলাম পেলোডে অন্তর্ভুক্ত করা হয় না এবং পরিবর্তে, সেই ডেটাগুলি বিশ্বস্ত কী/মান পরিষেবা ব্যবহারের মাধ্যমে উপলব্ধ হয়৷

মনে রাখবেন যে renderURL এবং ads রিপোর্টিং আইডিগুলি এখনও আগ্রহের গোষ্ঠী কনফিগারে সংজ্ঞায়িত করা হয়েছে, যদিও সেগুলি নিলামের অনুরোধ পেলোডে অন্তর্ভুক্ত করা হয়নি, কারণ ব্রাউজার পরীক্ষা করে যে বিডিং পরিষেবার generateBid() ফাংশন থেকে প্রত্যাবর্তিত রেন্ডার URL এবং রিপোর্টিং আইডিগুলি আগ্রহ গ্রুপে সংজ্ঞায়িত মানগুলির সাথে মেলে৷

joinAdInterestGroup() টাস্ক

joinAdInterestGroup() কলের জন্য নিম্নলিখিত কাজগুলি সম্পাদন করতে হবে৷

সার্ভার অনুরোধ পতাকা সেট

joinAdInterestGroup() কনফিগারেশনের auctionServerRequestFlags ফিল্ড নিম্নলিখিত ফ্ল্যাগগুলি গ্রহণ করে:

পতাকা বর্ণনা
omit-user-bidding-signals omit-user-bidding-signals পতাকা নিলাম পেলোডে userBiddingSignals অবজেক্টটিকে বাদ দেয়।

যদি পতাকা সেট না করা হয়, স্বার্থ গোষ্ঠীতে সংজ্ঞায়িত userBiddingSignals মান বিডিং পরিষেবার generateBid() এর মধ্যে উপলব্ধ হবে৷

omit-ads omit-ads ফ্ল্যাগ ব্রাউজারকে নিলাম পেলোডে ads এবং adComponents বাদ দিতে বলে৷

adRenderId browserSignals prevWins প্রপার্টিতে পাওয়া যাবে।

যদি পতাকা সেট করা না থাকে, তাহলে generateBid() এর interestGroup আর্গুমেন্টের adRenderIds এবং adComponentRenderIds ক্ষেত্রগুলিতে সংশ্লিষ্ট বিজ্ঞাপন রেন্ডার আইডি থাকবে৷

ক্রেতাদের omit-ads পতাকা বেছে নেওয়ার জন্য এটি অত্যন্ত বাঞ্ছনীয়। ভবিষ্যতে কোনো সময়ে, ক্লায়েন্টের কাছ থেকে রেন্ডার আইডি এবং বিজ্ঞাপন উপাদান রেন্ডার আইডি পাস করা আরও পেলোড অপ্টিমাইজেশানের জন্য অবহেলিত হতে পারে।

বাদ দেওয়া ডেটা trustedBiddingSignals সিগন্যালে প্রাসঙ্গিক তথ্য উপলব্ধ করে পরিচালনা করা হয়। পতাকা পৃথকভাবে ব্যবহার করা যেতে পারে, এবং একসাথে ব্যবহার করতে হবে না।

উদাহরণ ব্যবহার:

navigator.joinAdInterestGroup({
  auctionServerRequestFlags: ['omit-user-bidding-signals', 'omit-ads'],
});

বিজ্ঞাপন রেন্ডার আইডি সেট করুন

B&A নিলাম পেলোডের আকার কমাতে, আগ্রহের গোষ্ঠীর ads এবং adComponents বাদ দেওয়া হয়, এবং ফলস্বরূপ, এই বস্তুগুলি বিডিং পরিষেবাতে চলমান generateBid() ফাংশনের মধ্যে উপলব্ধ নয়৷

অনুপস্থিত বিজ্ঞাপন তথ্য পরিচালনা করতে, ক্রেতা আগ্রহ গ্রুপ কনফিগারেশনে প্রতিটি বিজ্ঞাপনের সাথে যুক্ত একটি শনাক্তকারী ( adRenderId এবং adComponentRenderId ) বজায় রাখে। শনাক্তকারীকে অবশ্যই একটি DOMString হতে হবে যা 12 বাইট দীর্ঘ বা তার কম। যদি শনাক্তকারী Base64 এনকোড করা হয়, তাহলে এর দৈর্ঘ্য 12 বাইট লম্বা বা তার কম হতে হবে।

বিজ্ঞাপন রেন্ডার আইডি সহ একটি উদাহরণ আগ্রহ গ্রুপ:

navigator.joinAdInterestGroup({
  ads: [
    {
      renderURL: 'https://dsp.example/ad.html',
      adRenderId: '12345678' // 12 characters max
    },
  ],
  adComponents: [
    {
      renderURL: 'https://dsp.example/ad-component.html',
      adComponentRenderId: 'abcdefgh'
    },
  ],
});

বিজ্ঞাপনের সাথে যুক্ত adRenderId generateBid()prevWins.browserSignals এ উপলব্ধ হয়।

যদিও renderURL রিকোয়েস্ট পেলোডে অন্তর্ভুক্ত করা হয়নি, generateBid() থেকে প্রত্যাবর্তিত রেন্ডার ইউআরএল অবশ্যই ইন্টারেস্ট গ্রুপ কনফিগারেশনে সংজ্ঞায়িত রেন্ডার ইউআরএলের সাথে মেলে। বিজ্ঞাপন প্রযুক্তিগুলি trustedBiddingSignals সিগন্যালে বিজ্ঞাপন মেটাডেটা এবং অন্যান্য তথ্য ফেরত পাঠাতে পারে, যাতে generateBid() সম্পাদনের সময় বিডের জন্য বিজ্ঞাপন রেন্ডার URL এবং বিজ্ঞাপন উপাদান রেন্ডার URL তৈরি করা যেতে পারে৷

স্বার্থ গ্রুপ অগ্রাধিকার সেট করুন

ক্রোম ক্রেতাদের আগ্রহের গোষ্ঠীগুলিকে অগ্রাধিকার দেওয়ার অনুমতি দেয়৷ যদি বিক্রেতার দ্বারা সেট করা প্রতি-ক্রেতার পেলোড আকারের সীমা পৌঁছে যায়, তাহলে বিক্রেতার জন্য B&A নিলাম পেলোড তৈরি করা হলে একক ক্রেতার জন্য নিম্ন অগ্রাধিকারের সুদের গোষ্ঠীগুলিকে বাদ দিতে সুদ গোষ্ঠীর অগ্রাধিকার মানগুলি ব্যবহার করা হয়। বিভিন্ন ক্রেতার মধ্যে আগ্রহের গোষ্ঠী নির্বাচন করার জন্য, ব্রাউজার ক্রমিক পেলোডের আকারের উপর ভিত্তি করে সিদ্ধান্ত নেয়। ডিফল্টরূপে, প্রতিটি ক্রেতাকে সমান আকার দেওয়া হয়। মনে রাখবেন যে প্রকৃত অগ্রাধিকার B&A সার্ভারগুলিতে ঘটে এবং যখন অনুরোধ পেলোড তৈরি হয় তখন নয়৷

নিলামের সময় ক্রেতার অগ্রাধিকার ভেক্টর ( priorityVector ) এবং বিক্রেতার অগ্রাধিকার সংকেত ( prioritySignals ) ব্যবহার করে অগ্রাধিকার গণনা করা হয়। ক্রেতার বিক্রেতার অগ্রাধিকার সংকেতগুলিকে ওভাররাইড করার ক্ষমতা রয়েছে।

সম্পত্তি বর্ণনা
অগ্রাধিকার ভেক্টর ক্রেতা K/V পরিষেবা থেকে priorityVector কী-এর মান হিসাবে ভেক্টরগুলি সরবরাহ করে
অগ্রাধিকার সংকেত বিক্রেতা নিলাম কনফিগারেশনের priority_signals সেট করে সংকেত সরবরাহ করে
অগ্রাধিকার সংকেত ওভাররাইড করে ক্রেতা নিলাম কনফিগারেশনে PerBuyerConfig এর priority_signals_overrides ক্ষেত্রে ওভাররাইড সরবরাহ করে।

নিলামের সময়, ব্রাউজার অগ্রাধিকারের জন্য priorityVector এবং অগ্রাধিকার prioritySignals মিলে যাওয়া কীগুলির স্পার্স ডট পণ্য গণনা করে। নিম্নলিখিত চিত্রে, অগ্রাধিকারটি (4 * 2) + (3 * -1) দ্বারা গণনা করা হয়েছে যা 8 + -3 এ হ্রাস করা হয়েছে, তাই নিলামের সময় এই স্বার্থ গোষ্ঠীর অগ্রাধিকার হল 5

অগ্রাধিকার ভেক্টর এবং অগ্রাধিকার সংকেত বস্তুর প্রতিটি কী একে অপরের দ্বারা গুণিত হয়, তারপর অগ্রাধিকার গণনা করার জন্য ফলাফলগুলিকে একত্রিত করা হয়
চিত্র 1 : ক্রেতার ভেক্টর এবং বিক্রেতার সংকেত ব্যবহার করে অগ্রাধিকার গণনা

B&A-তে অগ্রাধিকার দেওয়ার জন্য অতিরিক্ত সংকেতগুলিও উপলব্ধ রয়েছে:

সংকেত বর্ণনা
deviceSignals.one মান সর্বদা 1, এবং ডট পণ্যে একটি ধ্রুবক যোগ করার জন্য দরকারী।
deviceSignals.ageInMinutes মানটি 0 এবং 43,200 এর মধ্যে একটি পূর্ণসংখ্যা হিসাবে মিনিটে আগ্রহের গোষ্ঠীর বয়স (সবচেয়ে সাম্প্রতিক আগ্রহের গোষ্ঠীতে যোগদানের সময়) বর্ণনা করে।
deviceSignals.ageInMinutesMax60 মানটি ageInMinutes সিগন্যালের মতোই বর্ণনা করে, তবে সর্বাধিক 60-এ। যদি গ্রুপটি 1 ঘন্টার বেশি হয়, তাহলে 60 ফেরত দেওয়া হয়।
deviceSignals.ageInHoursMax24 মানটি আগ্রহের গোষ্ঠীর বয়সকে ঘন্টায় বর্ণনা করে, সর্বোচ্চ 24 ঘন্টা। যদি গ্রুপটি এক দিনের বেশি পুরানো হয়, তাহলে 24 ফেরত দেওয়া হয়।
deviceSignals.ageInDaysMax30 মানটি সুদের গ্রুপের বয়সকে দিনে বর্ণনা করে, সর্বোচ্চ 30 দিনে। যদি গ্রুপের বয়স 30 দিনের বেশি হয়, তাহলে 30 ফেরত দেওয়া হয়।

আরও জানতে, GitHub-এ ব্যাখ্যাকারীর কাছে যান।

বিশ্বস্ত বিডিং সংকেত সেট আপ করুন

যেহেতু কিছু ডেটা B&A নিলাম পেলোড থেকে বাদ দেওয়া হবে, তাই আপনি বাদ দেওয়া ডেটাগুলিকে generateBid() ফাংশনে বিশ্বস্ত বিডিং সংকেত সরবরাহ করতে কী/মান পরিষেবা ব্যবহার করতে পারেন।

নিম্নলিখিত বাদ দেওয়া ডেটা K/V পরিষেবা দ্বারা সরবরাহ করা যেতে পারে:

  • userBiddingSignals যদি ক্রেতা ব্যবহার করেন
  • প্রতিটি বিজ্ঞাপনের সাথে যুক্ত metadata
  • adRenderId প্রতিটি বিজ্ঞাপনের সাথে যুক্ত
  • রিপোর্টিং আইডি
আগ্রহ গ্রুপ থেকে বাদ দেওয়া ডেটা ক্রেতার সংগ্রহ সার্ভারে পাঠানো যেতে পারে। সংগ্রহ সার্ভার কী/মান পরিষেবাতে ডেটা পুশ করে এবং পরবর্তী সময়ে, ব্রাউজার সেই ডেটাগুলি কী/মান পরিষেবা থেকে লোড করে
চিত্র 2 : বিশ্বস্ত সংকেত সেটআপের উদাহরণ

একটি পদ্ধতি যা নেওয়া যেতে পারে তা হল বিশ্বস্ত বিডিং সিগন্যাল কীগুলিতে একটি অনন্য শনাক্তকারী অন্তর্ভুক্ত করা এবং তারপরে সংশ্লিষ্ট ডেটা আপনার সার্ভারে প্রেরণ করা যাতে এটি কী/মান পরিষেবাতে লোড করা যায়। যাইহোক, প্রকৃত বাস্তবায়ন বিজ্ঞাপন প্রযুক্তির উপর নির্ভর করে এবং API প্রেসক্রিপটিভ নয়।

নিম্নলিখিত উদাহরণ একটি পদ্ধতির বর্ণনা করে যা বাস্তবায়ন করা যেতে পারে:

const ad1RenderURL = 'https://dsp.example/ad-1.html';
const ad2RenderURL = 'https://dsp.example/ad-2.html';
const ad1RenderId = 'render-id-1';
const ad2RenderId = 'render-id-2';
const ad1ReportingId = 'reporting-id-1';
const ad2ReportingId = 'reporting-id-2';

// Generate a unique identifier
const id = crypto.randomUUID();

// Define the keys with the unique ID
const trustedSignalsKeyForIG = `interest-group-${id}`

// Set the keys in the interest group
navigator.joinAdInterestGroup({
  // …
  ads: [
    {
      renderURL: ad1RenderURL,
      adRenderId: ad1RenderId,
      buyerReportingId: ad1ReportingId
    },
    {
      renderURL: ad2RenderURL,
      adRenderId: ad2RenderId,
      buyerReportingId: ad2ReportingId
    },
  ],
  trustedBiddingSignalsKeys: [
    trustedSignalsKeyForIG
  ]
});

// Send the associated data to your server to be loaded into the Key/Value Service
fetch('https://dsp.example/kv/load', {
  method: 'POST',
  body: JSON.stringify({
    id,
    [trustedSignalsKeyForIG]: {
      userBiddingSignals: {
        favoriteColor: 'blue'
      },
      ads: [
        {
          renderURL: ad1RenderURL,
          adRenderId: ad1RenderId,
          buyerReportingId: ad1ReportingId,
          metadata: {
            color: 'red'
          }   
        },
        {
          renderURL: ad2RenderURL,
          adRenderId: ad2RenderId,
          buyerReportingId: ad2ReportingId,
          metadata: {
            color: 'blue'
          }   
        },
      ]
    }
  })
});

উদাহরণে, একটি অনন্য শনাক্তকারী একটি IG-এর জন্য সংজ্ঞায়িত করা হয় এবং বিশ্বস্ত সংকেত কী-এর অংশ হয়ে ওঠে। IG-এর কী এবং তাদের সম্পর্কিত মানগুলি কী/মান পরিষেবাতে লোড করার জন্য আপনার সার্ভারে পাঠানো হয়। নিলামের সময় পরবর্তী সময়ে, ব্রাউজার বিশ্বস্ত সংকেতগুলি নিয়ে আসে এবং সেগুলিকে ক্রেতার generateBid() ফাংশনে উপলব্ধ করে।

প্রয়োজনে K/V থেকে আগ্রহ গ্রুপ আপডেট সংকেত ফেরত দিন

বিশ্বস্ত সংকেতের জন্য updateIfOlderThanMs কীটি স্বাভাবিক দৈনিক ব্যবধানের আগে আগ্রহের গোষ্ঠী আপডেট করতে ব্যবহৃত হয়। যদি updateIfOlderThanMs কী-এর জন্য প্রত্যাবর্তিত মিলিসেকেন্ডের মান অতিক্রম করার সময়কালের মধ্যে আগ্রহের গোষ্ঠীতে যোগদান বা আপডেট করা না হয়, তাহলে আগ্রহের গোষ্ঠীটি updateURL পদ্ধতির সাথে আপডেট করা হবে। মনে রাখবেন যে Chrome প্রতি 10 মিনিটে একবারের বেশি আগ্রহের গোষ্ঠীগুলিকে আপডেট করবে না।

যদি B&A নিলাম একটি বিজয়ী বিজ্ঞাপন ফেরত দেয় যা ব্রাউজারে সঞ্চিত আগ্রহ গোষ্ঠীতে সংজ্ঞায়িত বিজ্ঞাপনগুলির একটির সাথে মেলে না, তাহলে ব্রাউজার নিলামে ব্যর্থ হবে৷ updateIfOlderThanMs প্রক্রিয়াটি নিশ্চিত করতে কার্যকর হতে পারে যে ব্রাউজার এবং B&A নিলাম আগ্রহের গোষ্ঠীতে বিজ্ঞাপনের সেটে সম্মত হয়।

আরও জানতে ব্যাখ্যাকারীর কাছে যান।

generateBid()

generateBid() কলের জন্য নিম্নলিখিত কাজগুলি সম্পাদন করতে হবে।

ব্রাউজার সংকেত পড়ুন

B&A generateBid() কলে পাস করা browserSignals অবজেক্টটি নিচের মত দেখাচ্ছে:

{
  topWindowHostname: 'advertiser.example',
  seller: 'https://ssp.example',
  topLevelSeller: 'https://ssp-top.example',
  joinCount: 5,
  bidCount: 24,
  recency: 1684134092,

  // prevWins is [timeInSeconds, adRenderId]
  prevWins: [
    [9342, 'render-id-1'],
    [1314521, 'render-id-2']
  ],

  // Compiled WebAssembly code
  wasmHelper: WebAssembly.Module

  // Data-Version value from K/V response, if available
  dataVersion: 1,
}

নিম্নলিখিত পরিবর্তিত বা নতুন বৈশিষ্ট্য browserSignals উপলব্ধ:

সম্পত্তি বর্ণনা
prevWins prevWins হল সময় এবং বিজ্ঞাপনের টিপলসের একটি অ্যারে। সময়টি গত 30 দিনে সংশ্লিষ্ট বিজ্ঞাপনের আগের জয়ের পর থেকে অতিক্রান্ত সেকেন্ডের প্রতিনিধিত্ব করে।

ad বস্তুর পরিবর্তে adRenderId প্রদান করার জন্য এটি সংশোধন করা হয়েছে।

wasmHelper biddingWasmHelperURL থেকে সরবরাহ করা কোডের কম্পাইল করা অবজেক্ট।
dataVersion একটি বিশ্বস্ত সার্ভার ঐচ্ছিকভাবে একটি সাংখ্যিক Data-Version প্রতিক্রিয়া শিরোনাম অন্তর্ভুক্ত করতে পারে যা generateBid() এ উপলব্ধ হয়।

আরও জানতে GitHub-এ ব্যাখ্যাকারী পড়ুন।

generateBid() থেকে রেন্ডার ইউআরএল ফেরত দিন

যেহেতু ads বস্তুটি B&A নিলাম পেলোডে বাদ দেওয়া হয়েছে, তাই generateBid() থেকে ফেরত দেওয়া রেন্ডার ইউআরএল আবার তৈরি করতে হবে। কিভাবে রেন্ডার ইউআরএল পুনরায় তৈরি করা হয় তা আপনার বাস্তবায়ন দ্বারা নির্ধারিত হয় এবং ফেরত দেওয়া ইউআরএল অবশ্যই ইন্টারেস্ট গ্রুপে সংজ্ঞায়িত রেন্ডার ইউআরএলের সাথে মেলে।

একটি পদ্ধতি যা নেওয়া যেতে পারে তা হল একটি বেস ইউআরএল বজায় রাখা এবং টেমপ্লেটটি interestGroup এবং trustedBiddingSignals থেকে তথ্য দিয়ে তৈরি করা।

এই উদাহরণে, আমরা রঙ এবং পণ্যের উপর ভিত্তি করে 4টি বিজ্ঞাপন সংজ্ঞায়িত করছি:

await navigator.joinAdInterestGroup({
  ads: [
    { renderURL: 'https://dsp.example/red-shirt-ad.html', adRenderId: 'arid1'},
    { renderURL: 'https://dsp.example/blue-shirt-ad.html', adRenderId: 'arid2'},
    { renderURL: 'https://dsp.example/red-pants-ad.html', adRenderId: 'arid3'},
    { renderURL: 'https://dsp.example/blue-pants-ad.html', adRenderId: 'arid4'},
  ],
  trustedBiddingSignalKeys: [
    'userBiddingSignals-someUniqueId',
    // ...and more
  ]
})

তারপরে আমরা কী/মান পরিষেবাতে লোড করার জন্য ব্যবহারকারীর পছন্দের রঙ এবং পণ্যের তথ্য পাঠাই:

fetch('https://dsp.example/kv/load', {
  body: JSON.stringify({
    'userBiddingSignals-someUniqueId': {
      favoriteColor: 'blue',
      favoriteProduct: 'shirt'
    }
  })
})

পরবর্তী সময়ে, যখন নিলাম চলে, বিশ্বস্ত বিডিং সিগন্যালগুলি generateBid() এ উপলব্ধ হয় এবং সেই তথ্যটি URL পুনর্গঠনের জন্য ব্যবহার করা যেতে পারে:

function generateBid(..., trustedBiddingSignals, browserSignals) {
  const { userBiddingSignals } = trustedBiddingSignals
  const { favoriteColor, favoriteProduct } = userBiddingSignals

  return {
    bid: 1,
    render: `https://dsp.example/${favoriteColor}-${favoriteProduct}-ad.html`
  }
}

generateBid() থেকে রিপোর্টিং আইডি ফেরত দিন

যেহেতু রিপোর্টিং আইডিগুলি B&A নিলাম পেলোডে অন্তর্ভুক্ত করা হয় না, তাই আইডিটি বিশ্বস্ত বিডিং সংকেতের মাধ্যমে generateBid() করতে উপলব্ধ হয়৷ একবার কোন রিপোর্টিং আইডি ব্যবহার করতে হবে তা নির্ধারণ করা হলে, generateBid() থেকে নির্বাচিত রিপোর্টিং আইডি ফেরত দেওয়া হয়। প্রত্যাবর্তিত আইডিগুলি অবশ্যই আগ্রহের গোষ্ঠীতে সংজ্ঞায়িত আইডিগুলির সাথে মেলে৷

এই উদাহরণে, বিজ্ঞাপন 1 বেছে নেওয়া হয়েছে, এবং এর সংশ্লিষ্ট রেন্ডার আইডি generateBid() থেকে ফেরত দেওয়া হয়েছে :

generateBid(..., trustedBiddingSignals, ) {
  const { ad1ReportingId, ad2reportingId } = trustedBiddingSignals;
  // ...
  return {
    bid: 1,
    render: 'https://dsp.example/ad-1.html'
    buyerReportingId: ad1reportingId
  }
}

প্রত্যাবর্তিত রিপোর্টিং আইডি buyerReportingSignals মাধ্যমে reportWin() এ উপলব্ধ হয়:

reportWin(..., buyerReportingSignals) {
  const { buyerReportingId } = buyerReportingSignals;
}

যদি generateBid() থেকে buyerReportingId ফেরত না দেওয়া হয়, তাহলে interestGroupName মানটি buyerReportingId এর পরিবর্তে buyerReportingSignals এ উপলব্ধ।

আরও জানতে রিপোর্টিং আইডি গাইড দেখুন।

পরবর্তী পদক্ষেপ

নিম্নলিখিত সংস্থান আপনার জন্য উপলব্ধ

আরও জানুন

প্রশ্ন আছে?