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

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

সংক্ষিপ্ত বিবরণ

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

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

বিএন্ডএ-এর জন্য আগ্রহী গোষ্ঠী

পেলোড অপ্টিমাইজেশন প্রয়োগ করা একটি 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 এবং অন-ডিভাইস ইন্টারেস্ট গ্রুপ কনফিগারেশনের মধ্যে পার্থক্যগুলি হল:

ক্ষেত্র বিএন্ডএ আইজি ডিভাইসে থাকা আইজি বিএন্ডএ নিলাম পেলোডে অন্তর্ভুক্ত
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 ফ্ল্যাগ ব্যবহার করে এগুলি বাদ দেওয়ার পরামর্শ দেওয়া হচ্ছে। বাদ দেওয়া সংকেতগুলি K/V পরিষেবা ব্যবহার করে সরবরাহ করা যেতে পারে।
  • adRenderId ফিল্ডটি সংশ্লিষ্ট renderURL সাথে সেট করা আছে, কিন্তু শুধুমাত্র adRenderId টি B&A নিলাম পেলোডের অংশ হবে। নিলামের সময় পরে generateBid() থেকে ফিরে আসা রেন্ডার URLটি IG-তে সংজ্ঞায়িত রেন্ডার URL এর সাথে মিলতে হবে।
  • রিপোর্টিং আইডিগুলি B&A IG-তে সংজ্ঞায়িত করা হয়েছে, কিন্তু B&A নিলাম পেলোডে অন্তর্ভুক্ত নয়। নিলামের সময় পরে generateBid() থেকে ফিরে আসা রিপোর্টিং আইডিটি IG-তে সংজ্ঞায়িত রেন্ডার URL-এর সাথে মিলতে হবে।
  • ad.metadata এবং রিপোর্টিং আইডিগুলি B&A নিলাম পেলোডে অন্তর্ভুক্ত করা হয় না, এবং পরিবর্তে, সেই ডেটাগুলি বিশ্বস্ত কী/মান পরিষেবা ব্যবহারের মাধ্যমে উপলব্ধ হয়।

মনে রাখবেন যে ads renderURL এবং রিপোর্টিং আইডিগুলি এখনও ইন্টারেস্ট গ্রুপ কনফিগারেশনে সংজ্ঞায়িত করা হয়, যদিও সেগুলি নিলাম অনুরোধ পেলোডে অন্তর্ভুক্ত হয় না, কারণ ব্রাউজার পরীক্ষা করে যে বিডিং সার্ভিসের 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() থেকে ফেরত আসা রেন্ডার URL অবশ্যই ইন্টারেস্ট গ্রুপ কনফিগারেশনে সংজ্ঞায়িত রেন্ডার URL এর সাথে মিলবে। বিজ্ঞাপন প্রযুক্তিবিদরা 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

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

বিএন্ডএ-তে অগ্রাধিকারের জন্য অতিরিক্ত সংকেত ব্যবহার করা যেতে পারে:

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

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

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

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

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

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

একটি পদ্ধতি যা গ্রহণ করা যেতে পারে তা হল বিশ্বস্ত বিডিং সিগন্যাল কীগুলিতে একটি অনন্য শনাক্তকারী অন্তর্ভুক্ত করা এবং তারপরে সংশ্লিষ্ট ডেটা আপনার সার্ভারে পাঠানো যাতে এটি কী/মান পরিষেবাতে লোড করা যায়। তবে, প্রকৃত বাস্তবায়ন বিজ্ঞাপন প্রযুক্তির উপর নির্ভর করে এবং 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() থেকে রেন্ডার URL ফেরত দিন

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

একটি পদ্ধতি যা গ্রহণ করা যেতে পারে তা হল একটি বেস URL বজায় রাখা এবং interestGroup এবং trustedBiddingSignals থেকে তথ্য দিয়ে টেমপ্লেটটি পূরণ করা।

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

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() থেকে ফেরত পাঠানো হয়। ফেরত দেওয়া আইডিগুলি অবশ্যই আগ্রহ গোষ্ঠীতে সংজ্ঞায়িত আইডিগুলির সাথে মিলবে।

এই উদাহরণে, বিজ্ঞাপন ১ নির্বাচন করা হয়েছে, এবং এর সাথে সম্পর্কিত রেন্ডার আইডি generateBid() থেকে ফেরত পাঠানো হয়েছে:

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

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

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

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

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

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

নিম্নলিখিত সম্পদগুলি আপনার জন্য উপলব্ধ

আরও জানুন

প্রশ্ন আছে?