खरीदार के तौर पर B&A के साथ इंटिग्रेट करना

बिडिंग और नीलामी (बी एंड ए) सेवाएं, विज्ञापन खरीदारों और बेचने वालों के लिए सेवाओं का एक सेट है. यह सुरक्षित ऑडियंस (पीए) नीलामी की सुविधा देने के लिए, भरोसेमंद एक्सीक्यूशन एनवायरमेंट (टीईई) में चलती है. डेवलपर गाइड में बताया गया है कि Chrome के लिए, खरीदार B&A PA नीलामी के साथ कैसे इंटिग्रेट कर सकता है.

खास जानकारी

B&A Services की मदद से, सुरक्षित ऑडियंस की नीलामी में हिस्सा लेने के लिए, खरीदार इंटरेस्ट ग्रुप (आईजी) को अपडेट करता है. इससे नीलामी में लगने वाले समय को कम करने के लिए, पेलोड को ऑप्टिमाइज़ किया जा सकता है.

पेलोड ऑप्टिमाइज़ेशन के लिए, खरीदार को ये काम करने होंगे:

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 IG डिवाइस पर इंस्टॉल किया गया IG ऐप्लिकेशन 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() से मिलने वाला रेंडर यूआरएल, आईजी में बताए गए रेंडर यूआरएल से मेल खाना चाहिए.
  • रिपोर्टिंग आईडी, B&A IG में तय किए जाते हैं. हालांकि, इन्हें B&A ऑक्शन पेलोड में शामिल नहीं किया जाता. नीलामी के दौरान, generateBid() से मिलने वाला रिपोर्टिंग आईडी, IG में बताए गए रेंडर यूआरएल से मेल खाना चाहिए.
  • ad.metadata और रिपोर्टिंग आईडी, बिडिंग और ऑप्टिमाइज़ेशन (बीए) नीलामी के पेलोड में शामिल नहीं होते. इसके बजाय, यह डेटा भरोसेमंद कुंजी/वैल्यू सेवा के इस्तेमाल से उपलब्ध होता है.

ध्यान दें कि ads में मौजूद renderURL और रिपोर्टिंग आईडी, अब भी इंटरेस्ट ग्रुप कॉन्फ़िगरेशन में तय किए जाते हैं. हालांकि, ये नीलामी अनुरोध के पेलोड में शामिल नहीं होते, क्योंकि ब्राउज़र यह जांच करता है कि बिडिंग सेवा के generateBid() फ़ंक्शन से मिले रेंडर यूआरएल और रिपोर्टिंग आईडी, इंटरेस्ट ग्रुप में तय की गई वैल्यू से मेल खाते हैं या नहीं.

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) रखता है. आइडेंटिफ़ायर, 12 बाइट या उससे कम का DOMString होना चाहिए. अगर आइडेंटिफ़ायर को 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() एक्सीक्यूशन के दौरान बिड के लिए विज्ञापन रेंडर यूआरएल और विज्ञापन कॉम्पोनेंट रेंडर यूआरएल जनरेट किया जा सके.

दिलचस्पी के ग्रुप की प्राथमिकताएं सेट करना

Chrome की मदद से, खरीदार अपनी पसंद के ग्रुप को प्राथमिकता दे सकते हैं. अगर सेलर ने हर खरीदार के लिए पेलोड के साइज़ की सीमा तय की है और वह सीमा पूरी हो जाती है, तो सेलर के लिए 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 से ज़्यादा नहीं हो सकती. अगर ग्रुप एक घंटे से ज़्यादा पुराना है, तो 60 दिखाया जाता है.
deviceSignals.ageInHoursMax24 इस वैल्यू से, एक जैसी पसंद के हिसाब से बनाए गए ग्रुप की उम्र के बारे में पता चलता है. यह उम्र, 24 घंटे से ज़्यादा नहीं हो सकती. अगर ग्रुप एक दिन से ज़्यादा पुराना है, तो 24 दिखेगा.
deviceSignals.ageInDaysMax30 इस वैल्यू से, एक जैसी पसंद के हिसाब से बनाए गए ग्रुप की उम्र के बारे में पता चलता है. यह उम्र, ज़्यादा से ज़्यादा 30 दिन की हो सकती है. अगर ग्रुप 30 दिन से ज़्यादा पुराना है, तो 30 दिखेगा.

ज़्यादा जानकारी के लिए, GitHub पर मौजूद एक्सप्लेनर पर जाएं.

भरोसेमंद बिडिंग सिग्नल सेट अप करना

B&A नीलामी के पेलोड से कुछ डेटा हटा दिया जाएगा. इसलिए, हटाए गए डेटा को generateBid() फ़ंक्शन में भरोसेमंद बिडिंग सिग्नल के तौर पर देने के लिए, कुंजी/वैल्यू सेवा का इस्तेमाल किया जा सकता है.

K/V सेवा, यहां दिए गए डेटा को उपलब्ध करा सकती है:

  • userBiddingSignals अगर खरीदार ने इसका इस्तेमाल किया है
  • हर विज्ञापन से जुड़ा metadata
  • हर विज्ञापन से जुड़ा adRenderId
  • रिपोर्टिंग आईडी
एक जैसी पसंद के हिसाब से बनाए गए ग्रुप से हटाया गया डेटा, खरीदार के कलेक्शन सर्वर पर भेजा जा सकता है. कलेक्शन सर्वर, डेटा को की/वैल्यू सेवा पर भेजता है. बाद में, ब्राउज़र उस डेटा को की/वैल्यू सेवा से लोड करता है
दूसरी इमेज: भरोसेमंद सिग्नल सेटअप करने का उदाहरण

भरोसेमंद बिडिंग सिग्नल की कुंजियों में एक यूनीक आइडेंटिफ़ायर शामिल किया जा सकता है. इसके बाद, उससे जुड़ा डेटा अपने सर्वर पर भेजा जा सकता है, ताकि उसे की/वैल्यू सेवा में लोड किया जा सके. हालांकि, एपीआई को लागू करने का तरीका विज्ञापन टेक्नोलॉजी पर निर्भर करता है.

नीचे दिए गए उदाहरण में, लागू किए जा सकने वाले एक तरीके के बारे में बताया गया है:

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'
          }   
        },
      ]
    }
  })
});

उदाहरण में, किसी आईजी के लिए यूनीक आइडेंटिफ़ायर तय किया गया है और यह भरोसेमंद सिग्नल की कुंजी का हिस्सा बन जाता है. आईजी की कुंजी और उससे जुड़ी वैल्यू को आपके सर्वर पर भेजा जाता है, ताकि उन्हें की/वैल्यू सेवा में लोड किया जा सके. नीलामी के दौरान, ब्राउज़र भरोसेमंद सिग्नल फ़ेच करता है और उन्हें खरीदार के 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() से रेंडर किए गए यूआरएल को दिखाएं

B&A नीलामी के पेलोड में ads ऑब्जेक्ट को शामिल नहीं किया गया है. इसलिए, generateBid() से मिलने वाले रेंडर यूआरएल को फिर से बनाया जाना चाहिए. रेंडर यूआरएल को फिर से कैसे बनाया जाता है, यह आपके लागू करने के तरीके से तय होता है. साथ ही, दिखाया गया यूआरएल, इंटरेस्ट ग्रुप में बताए गए रेंडर यूआरएल से मेल खाना चाहिए.

एक तरीका यह है कि कोई बेस यूआरएल बनाएं और टेंप्लेट को 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() में उपलब्ध हो जाते हैं. इस जानकारी का इस्तेमाल, यूआरएल को फिर से बनाने के लिए किया जा सकता है:

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
  }
}

रिपोर्टिंग आईडी, reportWin() से buyerReportingSignals के बीच उपलब्ध हो जाता है:

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

अगर generateBid() से buyerReportingId नहीं मिलता है, तो buyerReportingId के बजाय buyerReportingSignals में interestGroupName वैल्यू उपलब्ध होती है.

ज़्यादा जानने के लिए, रिपोर्टिंग आईडी की गाइड पर जाएं.

अगले चरण

आपके लिए ये संसाधन उपलब्ध हैं

ज़्यादा जानें

कोई सवाल पूछना चाहते हैं?