संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
आपका ऐप्लिकेशन, Google से मिले बिड रिक्वेस्ट को प्रोसेस करने के बाद, जवाब बनाकर भेजेगा. इस गाइड में, रिस्पॉन्स बनाने के लिए अपने ऐप्लिकेशन को कोड करने का तरीका बताया गया है.
Protobuf BidResponse मैसेज बनाना
Authorized Buyers, एचटीटीपी POST के मैसेज बॉडी के तौर पर BidRequest भेजता है. अगर आपका बिडिंग एंडपॉइंट, प्रोटोबफ़ फ़ॉर्मैट का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है, तो आपके ऐप्लिकेशन को Content-Type हेडर को application/octet-stream पर सेट करके जवाब भेजना होगा. साथ ही, मैसेज के मुख्य हिस्से में सीरियलाइज़ किया गया प्रोटोकॉल बफ़र होना चाहिए. प्रोटोकॉल बफ़र, BidResponse मैसेज होता है, जैसा कि openrtb.proto में बताया गया है. आपका ऐप्लिकेशन हर BidRequest के जवाब में, पार्स किया जा सकने वाला BidResponse दिखाना चाहिए. टाइम आउट और ऐसे जवाब जिन्हें पार्स नहीं किया जा सकता उन्हें गड़बड़ियां माना जाता है. साथ ही, Google उन बिडर को सीमित कर देता है जिनकी गड़बड़ी की दर ज़्यादा होती है.
अगर आपको किसी इंप्रेशन पर बिड नहीं करनी है, तो आपको खाली एचटीटीपी
204 रिस्पॉन्स दिखाना होगा. openrtb.proto को रेफ़रंस डेटा पेज से पाया जा सकता है.
क्रिएटिव आईडी
आपका BidResponse, BidResponse.seatbid.bid.crid फ़ील्ड (64 बाइट की सीमा) के ज़रिए किसी क्रिएटिव की जानकारी देता है. अगर एक जैसे क्रिएटिव में कोई खास बात अलग-अलग है, तो इस फ़ील्ड के लिए उन क्रिएटिव की वैल्यू भी अलग-अलग होनी चाहिए. इनमें साइज़, एलान किया गया यूआरएल, क्रिएटिव एट्रिब्यूट, और वेंडर टाइप वगैरह शामिल हैं. दूसरे शब्दों में, आपको किसी भी दो विज्ञापनों के लिए अलग-अलग क्रिएटिव आईडी देने होंगे:
अलग तरह से दिखना या व्यवहार करना.
अलग-अलग इमेज में रेंडर करें.
अलग-अलग तरीकों से रेंडर किए जाते हैं. उदाहरण के लिए, एक विज्ञापन में इमेज है, जबकि दूसरे में वीडियो है.
अपना ऐप्लिकेशन डिज़ाइन करते समय, आपको आइडेंटिफ़ायर जनरेट करने का एक व्यवस्थित तरीका तय करना चाहिए. यह तरीका, सबमिट किए जाने वाले क्रिएटिव के हिसाब से होना चाहिए.
विज्ञापन की अहम जानकारियां
Google का सुझाव है कि आप अपने विज्ञापन की विशेषताओं और टारगेटिंग के बारे में बताने के लिए, क्रिएटिव एट्रिब्यूट का एलान करें. इसके लिए, BidResponse.seatbid.bid.apis और BidResponse.seatbid.bid.attr के कॉम्बिनेशन या BidResponse.seatbid.bid.ext.attribute एक्सटेंशन का इस्तेमाल करें. यहां एट्रिब्यूट की जानकारी देने का तरीका बताया गया है:
VPAID
BidResponse.seatbid.bid.apis को VPAID_1 या
VPAID_2 पर सेट करें. JSON फ़ॉर्मैट के लिए, इसे 1 या 2 पर सेट किया जा सकता है.
MRAID
JSON फ़ॉर्मैट के लिए, BidResponse.seatbid.bid.apis को
MRAID_1 या 3 पर सेट करें.
SIZELESS
JSON फ़ॉर्मैट के लिए, BidResponse.seatbid.bid.attr को
RESPONSIVE या 18 पर सेट करें.
PLAYABLE
इसकी जानकारी, BidResponse.seatbid.bid.attr को USER_INTERACTIVE पर सेट करके दी जाती है. इसके अलावा, JSON फ़ॉर्मैट के लिए 13 पर सेट किया जा सकता है.
अपने क्रिएटिव में मिली प्रॉपर्टी के बारे में सुझाव, शिकायत या राय पाने के तरीके के बारे में जानने के लिए, क्रिएटिव से जुड़ा संसाधन देखें.
ओपन बिडिंग फ़ील्ड
ओपन बिडिंग में हिस्सा लेने वाले एक्सचेंज और नेटवर्क बिडिंग की मदद से बिडिंग करने वाले लोग, स्टैंडर्ड रीयल-टाइम बिडिंग में हिस्सा लेने वाले Authorized Buyers की तरह ही बिड रिस्पॉन्स भेजते हैं. ओपन बिडिंग के ग्राहक, कुछ अतिरिक्त फ़ील्ड तय कर सकते हैं. साथ ही, कुछ मौजूदा फ़ील्ड का इस्तेमाल अन्य कामों के लिए किया जा सकता है. इनमें ये शामिल हैं:
OpenRTB
Authorized Buyers
विवरण
BidResponse.imp[].pmp.deals[].id
BidResponse.ad[].adslot[].exchange_deal_id
एक्सचेंज के नेमस्पेस से मिला डील आईडी, जो इस बिड से जुड़ा है और पब्लिशर को रिपोर्ट किया गया है.
अगर ओपन बिडर के तौर पर एक्सचेंज, मध्यस्थ है, तो तीसरे पक्ष के खरीदार की जानकारी की पहचान करने के लिए इस्तेमाल किया जाने वाला टोकन. इसे तीसरे पक्ष के खरीदार से हासिल किया जाता है. बिड रिस्पॉन्स में इसे बिना किसी बदलाव के Google को भेजा जाना चाहिए.
सुझाव
अपने सर्वर पर, हमेशा चालू रहने वाले एचटीटीपीएस कनेक्शन (जिन्हें "कनेक्शन को चालू रखना" या
"कनेक्शन का फिर से इस्तेमाल करना" भी कहा जाता है) चालू करें. टाइम आउट को कम से कम 10 सेकंड पर सेट करें. ज़्यादा वैल्यू से कई मामलों में फ़ायदा होता है. Google आपके ऐप्लिकेशन के इंतज़ार का समय जांचने के दौरान, इसकी पुष्टि करता है. ऐसा इसलिए, क्योंकि अनुमति पा चुके खरीदार, ज़्यादा अनुरोध भेजते हैं. साथ ही, उन्हें हर अनुरोध के लिए अलग टीसीपी कनेक्शन बनाने में लगने वाले समय से बचना होता है.
बिड जीतने के बजाय, इंप्रेशन के रेंडर होने का समय ट्रैक करने के लिए, वैकल्पिक इंप्रेशन ट्रैकिंग यूआरएल शामिल करें. विज्ञापन दिखाए जाने और विज्ञापन दिखाए जाने के बाद उपयोगकर्ताओं के ग्राहक में बदलने के बीच के अंतर की वजह से, इससे ट्रैकिंग के ज़्यादा सटीक आंकड़े मिलते हैं.
बिडर कोड को ऐसे फ़ील्ड पर निर्भर न रखें जो अब काम नहीं करते. ऐसा करने पर, आपकी बिड गड़बड़ियों की वजह से अस्वीकार हो सकती हैं.
अपने BidResponse में BidResponse.seatbid.bid.w और
BidResponse.seatbid.bid.h शामिल करें. कई विज्ञापन साइज़ वाले अनुरोध के लिए,
BidResponse में ये फ़ील्ड शामिल होने चाहिए. ऐसा न करने पर, इसे नीलामी से हटा दिया जाएगा.
अपने जवाब का साइज़ 8K से कम रखें. बहुत बड़े रिस्पॉन्स से, नेटवर्क के रिस्पॉन्स में लगने वाला समय बढ़ सकता है और टाइम आउट हो सकता है.
अहम जानकारी: सैंपल में दिखाए गए Protobuf मैसेज, यहां ऐसे टेक्स्ट के तौर पर दिखाए गए हैं जिसे कोई भी पढ़ सकता है. हालांकि, मैसेज को इस तरह से नहीं भेजा जाता. Google या OpenRTB Protobuf फ़ॉर्मैट का इस्तेमाल करते समय, सिर्फ़ क्रम में लगाए गए BidResponse मैसेज ही स्वीकार किए जाएंगे.
यहां दिए गए C++ कोड का इस्तेमाल करके, BidResponse मैसेज बनाया और क्रम से लगाया जा सकता है:
BidResponse bid_response;
// fill in bid response with bid information
string post_response;
if (bid_response.SerializeToString(&post_response)) {
// respond to the POST with post_response as the content
} else {
// return an error to the POST
}
क्रिएटिव की जानकारी दें
बिड रिस्पॉन्स में यह जानकारी होती है कि आपकी बिड जीतने पर कौनसा क्रिएटिव दिखाया जाएगा. आपकी बिड में, इस्तेमाल किए जा सकने वाले विज्ञापन फ़ॉर्मैट (एएमपी, वीडियो, नेटिव) में से कोई एक शामिल होना चाहिए. इस उदाहरण में, हम html_snippet फ़ील्ड का इस्तेमाल करके क्रिएटिव की जानकारी देते हैं.
इसके अलावा, विज्ञापन फ़ॉर्मैट के आधार पर, इनमें से किसी फ़ील्ड का इस्तेमाल करके भी अपना क्रिएटिव तय किया जा सकता है:
SDK टूल से रेंडर किया गया विज्ञापन
BidResponse.seatbid.bid.ext.sdk_rendered_ad
एएमपी
BidResponse.seatbid.bid.amp_ad_url
वीडियो
BidResponse.seatbid.bid.adm
नेटिव
BidResponse.seatbid.bid.adm_native
BidResponse.seatbid.bid.adm फ़ील्ड में एचटीएमएल स्निपेट का इस्तेमाल करके, अपने सर्वर पर होस्ट किए जा रहे विज्ञापन की जानकारी दें. स्निपेट को वेब पेज में डाले गए iFrame में शामिल किया जाता है. इससे, पेज लोड होने पर विज्ञापन को वापस पाया और रेंडर किया जाता है. आपको एचटीएमएल स्निपेट को इस तरह से बनाना होगा कि विज्ञापन (बैनर या इंटरस्टीशियल), आईएफ़आरईम में सही तरीके से रेंडर हो. साथ ही, वह उस विज्ञापन स्लॉट के लिए सही साइज़ में हो जिसके लिए बिडिंग की जा रही है.
इसके अलावा, बिड रिस्पॉन्स में बताया गया विज्ञापन साइज़, बिड रिक्वेस्ट में मौजूद साइज़ के किसी एक कॉम्बिनेशन से पूरी तरह मेल खाना चाहिए, जब:
विज्ञापन, सामान्य बैनर हो (वीडियो, नेटिव या इंटरस्टीशियल नहीं).
बिड लगाने वाले व्यक्ति या कंपनी ने बिड रिस्पॉन्स में साइज़ की जानकारी दी हो. जब अनुरोध में एक से ज़्यादा साइज़ मौजूद हों, तो साइज़ की जानकारी देना ज़रूरी है.
हालांकि, इंटरस्टीशियल विज्ञापनों के लिए यह शर्त लागू नहीं होती. इंटरस्टीशियल विज्ञापनों की चौड़ाई, स्क्रीन की चौड़ाई का कम से कम 50% और ऊंचाई, स्क्रीन की ऊंचाई का कम से कम 40% होनी चाहिए.
सही तरीके से रेंडर होने वाले किसी भी मान्य एचटीएमएल कोड का इस्तेमाल करके, एचटीएमएल स्निपेट क्रिएटिव तय किया जा सकता है. हालांकि, BidResponse मैसेज बनाएं सेक्शन में crid फ़ील्ड की जानकारी देने से जुड़ी पाबंदियों को ध्यान में रखें.
इसका एक इस्तेमाल, विज्ञापन को रेंडर करने के लिए आपके सर्वर से फ़ेच किए गए यूआरएल के आर्ग्युमेंट में अतिरिक्त जानकारी डालना है. इससे, इंप्रेशन के बारे में मनमुताबिक डेटा को अपने सर्वर पर वापस भेजा जा सकता है.
मैक्रो, फ़ॉर्मैट किए गए टेक्स्ट होते हैं. इन्हें बिड रिस्पॉन्स के कुछ फ़ील्ड में जोड़ा जाता है. इन फ़ील्ड में यूआरएल होते हैं, जिन्हें विज्ञापन दिखाने के समय काम की वैल्यू से बदल दिया जाता है. उदाहरण के लिए, अगर आपकी जीतने वाली बिड में, बिड के साथ शामिल एचटीएमएल स्निपेट क्रिएटिव में AUCTION_PRICE मैक्रो शामिल था, तो मैक्रो को ऐसी वैल्यू से बदल दिया जाएगा जिसे डिक्रिप्ट करके, नीलामी में इंप्रेशन के लिए चुकाई गई रकम का पता लगाया जा सकता है.
मैक्रो को इन फ़ील्ड में शामिल किया जा सकता है:
BidResponse.seatbid.bid.adm
मैक्रो, एचटीएमएल स्निपेट, नेटिव, वीडियो यूआरएल, और वीडियो VAST के लिए काम करते हैं
एक्सएमएल फ़ॉर्मैट.
अगर आपको एक से ज़्यादा बिलिंग यूआरएल की ज़रूरत है, तो BidResponse.seatbid.bid.burl के बजाय इसका इस्तेमाल करें.
उदाहरण के लिए, क्रिएटिव को फ़ेच करने के लिए इस्तेमाल किए गए यूआरएल में ${MACRO} को एम्बेड करके, एचटीएमएल स्निपेट के हिस्से के तौर पर मैक्रो शामिल किया जा सकता है. यहां MACRO, OpenRTB स्पेसिफ़िकेशन में बताए गए काम करने वाले मैक्रो में से एक है.
Google आरटीबी मैक्रो
Google, OpenRTB स्पेसिफ़िकेशन में मौजूद मैक्रो के अलावा, अन्य मैक्रो का भी इस्तेमाल करता है. इनका फ़ॉर्मैट अलग होता है और इन्हें यूआरएल में एम्बेड करने पर, ये %%MACRO%% के तौर पर दिखते हैं. नीचे दी गई टेबल में इन मैक्रो के बारे में बताया गया है:
चार बाइट के किसी रैन्डम, बिना हस्ताक्षर वाले इंटीजर को स्ट्रिंग में बदला गया है.
CLICK_URL_UNESC
विज्ञापन के लिए, बिना एस्केप किए गए क्लिक यूआरएल. स्निपेट में, तीसरे पक्ष के क्लिक यूआरएल का एस्केप्ट किया गया वर्शन, मैक्रो के बाद सीधे तौर पर दिखना चाहिए.
उदाहरण के लिए, अगर तीसरे पक्ष का क्लिक यूआरएल
http://my.adserver.com/some/path/handleclick?click=clk है, तो मैक्रो को कॉल करने के बाद, तीसरे पक्ष के क्लिक यूआरएल के सिंगल-एस्केप्ड वर्शन के साथ, नीचे दिए गए कोड का इस्तेमाल किया जा सकता है:
यूआरएल, पहले Google के साथ क्लिक को रजिस्टर करेगा और फिर तीसरे पक्ष के क्लिक यूआरएल पर रीडायरेक्ट करेगा.
CLICK_URL_ESC
विज्ञापन के लिए, एस्केप्ट किया गया क्लिक यूआरएल. अगर आपको पहले वैल्यू को किसी दूसरे सर्वर से पास करना है, जो फिर रीडायरेक्ट करेगा, तो CLICK_URL_UNESC के बजाय इसका इस्तेमाल करें.
उदाहरण के लिए, इस कोड का इस्तेमाल एचटीएमएल स्निपेट में किया जा सकता है:
इससे my.adserver.com के साथ क्लिक रजिस्टर हो जाएगा. इसके बाद, google_click_url पैरामीटर में पास किए गए यूआरएल पर रीडायरेक्ट करने की ज़िम्मेदारी my.adserver.com की होगी. यह मान लिया जाता है कि
my.adserver.com,
google_click_url पैरामीटर को अनएस्केप करता है.
%%CLICK_URL_ESC%% के बाद, डबल-एस्केप किया गया यूआरएल जोड़ा जा सकता है. my.adserver.com के ज़रिए यूआरएल को अनएस्केप करने के बाद, google_click_url में जोड़े गए यूआरएल का एक-एस्केप किया गया वर्शन बच जाता है. जब
google_click_url फ़ेच किया जाएगा, तो उसे एक बार फिर से अनएस्केप किया जाएगा
और फिर रीडायरेक्ट किया जाएगा.
CLICK_URL_ESC_ESC
विज्ञापन के लिए, दो बार एस्केप किया गया यूआरएल. अगर आपको पहले वैल्यू को किसी दूसरे सर्वर से पास करना है, जो फिर रीडायरेक्ट करेगा, तो CLICK_URL_UNESC के बजाय इसका इस्तेमाल करें.
उदाहरण के लिए, इस कोड का इस्तेमाल एचटीएमएल स्निपेट में किया जा सकता है:
अगर बिड रिक्वेस्ट के लिए एसएसएल की ज़रूरत नहीं है, तो इसे http: तक बड़ा किया जाता है. अगर बिड रिक्वेस्ट के लिए एसएसएल की ज़रूरत है, तो इसे
https: तक बड़ा किया जाता है.
SITE
कॉन्टेंट यूआरएल का यूआरएल-एस्केप किया गया डोमेन या गुमनाम इन्वेंट्री के लिए गुमनाम आईडी.
SITE_URL
समर्थन नहीं होना या रुकना. इसे SITE मैक्रो से बदल दिया गया है, जो एक जैसी सुविधाएं देता है.
TZ_OFFSET
टाइम ज़ोन का ऑफ़सेट.
VERIFICATION
प्रोडक्शन के लिए अलग-अलग वैल्यू और पुष्टि की प्रोसेस के दौरान, क्रिएटिव को स्कैन किए जाने का समय. इसका फ़ॉर्मैट यह है:
%%?VERIFICATION:true-val:false-val%%, जहां मैक्रो को छोड़कर, true-val और
false-val के लिए कोई भी वैल्यू इस्तेमाल की जा सकती है. इनमें खाली स्ट्रिंग भी शामिल है. हमारा सुझाव है कि ओपन बिडिंग के लिए, एक्सचेंज इस मैक्रो का इस्तेमाल करें. ऐसा करने के बाद, मांग पक्ष के प्लैटफ़ॉर्म को बदलाव करने की ज़रूरत नहीं है.
उदाहरण के लिए, अगर किसी क्रिएटिव में
%%?VERIFICATION:-1:5000%% शामिल किया गया है, तो टेक्स्ट बदलने की सुविधा, विज्ञापन दिखाने के दौरान 5000 और पुष्टि करने वाली प्रोसेस के दौरान -1 होगी. इससे, इन दोनों सेट के बीच अंतर करने में मदद मिलती है.
WINNING_PRICE
खाते की मुद्रा के माइक्रो में, कोड में बदले गए इंप्रेशन की लागत (यानी सीपीएम के बजाय सीपीआई). उदाहरण के लिए, 5 डॉलर का विजेता सीपीएम,5,000, 000 माइक्रो सीपीएम या 5,000 माइक्रो सीपीआई के बराबर होता है. इस मामले में, WINNING_PRICE की डिकोड की गई वैल्यू 5,000 होगी.
जीतने वाली कीमत, सीपीआई में दी गई है.
Google की ज़रूरी शर्त है कि तीसरे पक्ष के दिखाए गए विज्ञापन के क्रिएटिव में, CLICK_URL_UNESC या
CLICK_URL_ESC मैक्रो का इस्तेमाल किया जाए. Google, क्लिक ट्रैकिंग के लिए CLICK_URL मैक्रो का इस्तेमाल करता है.
मैक्रो में यूआरएल को एस्केप करने के लिए, इस स्कीम का इस्तेमाल किया जाता है:
स्पेस वर्ण को प्लस साइन (+) से बदल दिया जाता है.
अक्षर और अंक (0-9, a-z, A-Z) और सेट !()*,-./:_~ के वर्ण में कोई बदलाव नहीं होता.
अन्य सभी वर्णों को %XX से बदल दिया जाता है. यहां XX, वर्ण को दिखाने वाली हेक्साडेसिमल संख्या है.
पब्लिशर के लिए पाबंदियां और ज़रूरी शर्तें
बिड रिक्वेस्ट में, उन पाबंदियों और ज़रूरी शर्तों के बारे में जानकारी शामिल होती है जो पब्लिशर, नीलामी में क्रिएटिव पर लगाते हैं.
BidRequest.bcat
इस फ़ील्ड में बताई गई ब्लॉक की गई कैटगरी की तुलना, रीयल-टाइम बिडिंग एपीआई के detectedCategories फ़ील्ड का इस्तेमाल करके, सबमिट किए गए क्रिएटिव के लिए पता लगाई गई कैटगरी से की जा सकती है.
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
आम तौर पर, यह हमेशा true पर सेट रहेगा, क्योंकि
Google को सभी क्रिएटिव के लिए एसएसएल की ज़रूरत होती है.
BidRequest.imp.{audio/banner/native/video}
BidRequest.imp.{audio/banner/native/video}.api
BidRequest.imp.{audio/banner/native/video}.battr
BidRequest.imp.{audio/banner/video}.mimes
कभी भी ऐसे विज्ञापन के लिए बिड न लगाएं जिसमें पाबंदी वाली सुविधा शामिल हो. अनुमति वाली सुविधाओं के लिए, जैसे कि वेंडर टाइप, सिर्फ़ तब विज्ञापन दिखाएं, जब उसका वेंडर टाइप BidRequest में मौजूद allowed_vendor_type सूची में हो. आपकी बिड में सिर्फ़ वे विज्ञापन फ़ॉर्मैट शामिल किए जाने चाहिए जिन्हें बिड रिक्वेस्ट में BidRequest.imp.banner जैसे फ़ील्ड में जानकारी भरकर तय किया गया है. ज़्यादा जानकारी के लिए, BidRequest प्रोटोकॉल बफ़र की परिभाषा में इन फ़ील्ड के लिए दी गई टिप्पणियां देखें.
अगर BidResponse में कोई विज्ञापन दिखाया जाता है, तो आपको BidResponse में BidResponse.seatbid.bid.attr, BidResponse.seatbid.bid.cat, और BidResponse.seatbid.bid.adomain या BidResponse.seatbid.bid.adm_native.link.url फ़ील्ड को सही तरीके से सेट करना होगा. अगर किसी विज्ञापन में इन फ़ील्ड के लिए लागू होने वाली कई वैल्यू हैं, तो आपको हर वैल्यू शामिल करनी होगी. ज़्यादा जानकारी के लिए, BidResponse प्रोटोकॉल बफ़र की परिभाषा में इन फ़ील्ड के लिए टिप्पणियां देखें.
जिन जवाबों में ये फ़ील्ड सेट नहीं होते उन्हें खारिज कर दिया जाता है.
Open Measurement
Open Measurement की मदद से, तीसरे पक्ष के उन वेंडर को चुना जा सकता है जो मोबाइल ऐप्लिकेशन के एनवायरमेंट में दिखाए जाने वाले विज्ञापनों के लिए, मेज़रमेंट और पुष्टि करने की सेवाएं स्वतंत्र तौर पर उपलब्ध कराते हैं.
इन विज्ञापन फ़ॉर्मैट का इस्तेमाल किया जा सकता है: वीडियो, बैनर, और इंटरस्टीशियल विज्ञापन. इन फ़ॉर्मैट वाले बिड रिस्पॉन्स में, Open Measurement का इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, Open Measurement SDK के सहायता केंद्र का लेख पढ़ें.
बिड रिस्पॉन्स के सैंपल
नीचे दिए गए सेक्शन में, अलग-अलग तरह के विज्ञापनों के लिए बिड रिस्पॉन्स के सैंपल दिखाए गए हैं.
id:"96Z599PGNvp7Mr99138Fm0"seatbid{bid{id:"NQb32Ge7Rtt84wFn2p8"impid:"1"price:0.153584adid:"test_creative_id_272596"adomain:"google.com"crid:"test_creative_id_272596"cat:"IAB13-7"burl:"https://test.com/imp?id=123456"adm_native{ver:"1.2"assets{id:1required:truetitle{text:"Luxury Mars Cruises"}}assets{id:2required:truedata{value:"Visit the planet in a luxury spaceship."}}assets{id:3required:falsedata{value:"Book today"}}assets{id:4required:truedata{value:"Galactic Luxury Cruises"}}assets{id:5required:trueimg{url:"https://native.test.com/image?id=123456"w:1200h:627}}link{url:"https://www.google.com"}eventtrackers{event:IMPRESSIONmethod:IMGurl:"https://test.com/event?id=123456"}privacy:"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED"}[com.google.doubleclick.bid]{ad_choices_destination_url:"https://test.com/preferences"billing_id:29846056590dsa{behalf:"TEST_ADVERTISER"paid:"TEST_PAYING_ENTITY"adrender:false}}}bid{id:"4vwb23qm6iqU6w6G978"impid:"1"price:0.153584adid:"test_creative_id_272596"adomain:"google.com"crid:"test_creative_id_272596"cat:"IAB21"burl:"https://test.com/imp?id=123456"adm_native{ver:"1.2"assets{id:1required:truetitle{text:"Luxury Mars Cruises"}}assets{id:2required:truedata{value:"Visit the planet in a luxury spaceship."}}assets{id:3required:falsedata{value:"Book today"}}assets{id:4required:truedata{value:"Galactic Luxury Cruises"}}assets{id:5required:trueimg{url:"https://native.test.com/image?id=123456"w:1200h:627}}link{url:"https://www.google.com"}eventtrackers{event:IMPRESSIONmethod:IMGurl:"https://test.com/event?id=123456"}privacy:"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED"}[com.google.doubleclick.bid]{ad_choices_destination_url:"https://test.com/preferences"dsa{behalf:"TEST_ADVERTISER"paid:"TEST_PAYING_ENTITY"adrender:false}}}seat:"4528:1161:591635"group:false}bidid:"hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC"cur:"USD"
OpenRTB JSON
उदाहरण दिखाएं
{"id":"96Z599PGNvp7Mr99138Fm0","seatbid":[{"bid":[{"id":"NQb32Ge7Rtt84wFn2p8","impid":"1","price":0.153584,"adid":"test_creative_id_272596","adomain":["google.com"],"crid":"test_creative_id_272596","cat":["IAB13-7"],"burl":"https://test.com/imp?id=123456","ext":{"ad_choices_destination_url":"https://test.com/preferences","billing_id":"29846056590","dsa":{"behalf":"TEST_ADVERTISER","paid":"TEST_PAYING_ENTITY","adrender":0}},"adm":"{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}"},{"id":"4vwb23qm6iqU6w6G978","impid":"1","price":0.153584,"adid":"test_creative_id_272596","adomain":["google.com"],"crid":"test_creative_id_272596","cat":["IAB21"],"burl":"https://test.com/imp?id=123456","ext":{"ad_choices_destination_url":"https://test.com/preferences","dsa":{"behalf":"TEST_ADVERTISER","paid":"TEST_PAYING_ENTITY","adrender":0}},"adm":"{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}"}],"seat":"4528:1161:591635","group":0}],"bidid":"hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC","cur":"USD"}
ad{adslot{id:1max_cpm_micros:158000billing_id:41106584355deal_id:1}click_through_url:"google.com"attribute:70buyer_creative_id:"test_creative_id_251451"advertiser_name:"Google"native_ad{headline:"Luxury Mars Cruises"body:"Visit the planet in a luxury spaceship."call_to_action:"Book today"advertiser:"Galactic Luxury Cruises"image{url:"https://native.test.com/image?id=123456"width:1200height:222}app_icon{url:"https://native.test.com/icon?id=123456"width:512height:512}star_rating:4.300000190734863click_link_url:"https://www.google.com"}impression_tracking_url:"https://test.com/imp?id=123456"impression_tracking_url:"https://test.com/imp?id=123456"event_notification_token:"token"skadn{version:"4.0"network:"l6x39K4z"itunesitem:"731305960"sourceapp:"627009739"fidelities{fidelity_type:STOREKIT_RENDERED_ADSnonce:"9216faff-74a9-4b35-badc-66878c35f67c"timestamp:1728975919221signature:"b0USXkmg02Q3v6p301kYOHG36CCOWWdEo52RHRttB9t8PTNi79qL17E4D6h7UeUSuq479oTK13G2Ev34MJlU86C5vY1SMVw2"}fidelities{fidelity_type:VIEW_THROUGH_ADSnonce:"9216faff-74a9-4b35-badc-66878c35f67c"timestamp:1728975919221signature:"4Cf4NH6239z9f3wa8j6420Z7H0UISYxyxN5720444dkq6457I5FY0Jg8bk1xge2P8YgiDp74l2738136v2g1A8D50331IRm0"}source_identifier:1}click_tracking_urls:"https://google.com/rtb/click?imp_id=55d2112c-4947-4da5-bc37-b79ebf4577dd"advertised_app_id:"APP_ID_OMITTED"app_promotion_type:INSTALLS}processing_time_ms:63
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2025-02-12 (UTC) को अपडेट किया गया."],[[["Bid responses must be serialized `BidResponse` protocol buffers with the `Content-Type` header set to `application/octet-stream` for Protobuf, and a parsable `BidResponse` is required for each `BidRequest`, while an empty HTTP 204 response signals no bid."],["Each creative needs a unique `crid` (creative ID) limited to 64 bytes, and this ID must be unique across creatives if there are differences in size, declared URL, attributes, vendor types, appearance, behavior, or rendering method."],["Ad characteristics should be declared using `BidResponse.seatbid.bid.apis`, `BidResponse.seatbid.bid.attr`, or `BidResponse.seatbid.bid.ext.attribute`, with specific values indicating VPAID, MRAID, SIZELESS, or PLAYABLE attributes, respectively, and additional attributes from `buyer-declarable-creative-attributes.txt`."],["Responses should remain under 8KB, utilize persistent HTTPS connections with at least a 10-second timeout, and employ `BidResponse.seatbid.bid.burl` or `BidResponse.seatbid.bid.ext.impression_tracking_url` for tracking impressions."],["The `BidResponse` must accurately set creative attributes (`BidResponse.seatbid.bid.attr`), categories (`BidResponse.seatbid.bid.cat`), and advertiser domain (`BidResponse.seatbid.bid.adomain`) or native ad link (`BidResponse.seatbid.bid.adm_native.link.url`), as responses lacking these are discarded."]]],[]]