หลังจากที่แอปพลิเคชันประมวลผลคำขอราคาเสนอจาก Google แล้ว แอปพลิเคชันจะต้องสร้าง
และส่งการตอบกลับ คู่มือนี้อธิบายวิธีเขียนโค้ดแอปพลิเคชันเพื่อสร้าง
การตอบกลับ
สร้างข้อความ BidResponse
หากต้องการส่งราคาเสนอ แอปพลิเคชันการเสนอราคาต้องตอบกลับคำขอราคาเสนอด้วย BidResponse ที่มี Bid ในรูปแบบที่คุณกำหนดค่าไว้
หากใช้รูปแบบ JSON การตอบกลับต้องตั้งค่าส่วนหัว Content-Type เป็น application/json; charset=utf-8 และรวม JSON BidResponse ไว้ในเนื้อหา หากใช้รูปแบบ Protobuf แอปพลิเคชันต้องตั้งค่าส่วนหัว Content-Type เป็น application/octet-stream และรวม BidResponse ที่ซีเรียลไลซ์ไว้ในเนื้อหา
หากต้องการสร้างและซีเรียลไลซ์ BidResponse สำหรับรูปแบบ Protobuf
คุณต้องสร้างและใช้ไลบรารี Protobuf ตาม
openrtb.proto และ openrtb-adx.proto ซึ่ง
ใช้ฟิลด์ BidResponse OpenRTB มาตรฐานและส่วนขยายของ Google
ใน Protobuf ตามลำดับ ดูได้ใน
Protos และข้อมูลอ้างอิง
หากไม่ต้องการเสนอราคาสำหรับการแสดงผล คุณต้องส่งการตอบกลับ HTTP
204 ที่ว่างเปล่า แอปพลิเคชันของคุณต้องส่งการตอบกลับสำหรับทุก
BidRequest การหมดเวลาและการตอบกลับที่แยกวิเคราะห์ไม่ได้ถือเป็นข้อผิดพลาด และ Google จะควบคุมผู้เสนอราคาที่มีอัตราข้อผิดพลาดสูง
รหัสครีเอทีฟโฆษณา
BidResponse ระบุครีเอทีฟโฆษณาผ่านฟิลด์
BidResponse.seatbid.bid.crid (จำกัด 128 ไบต์) แม้ว่าครีเอทีฟโฆษณาจะคล้ายกัน แต่ก็ต้องมีค่าที่ไม่ซ้ำกันสำหรับฟิลด์นี้หากมีความแตกต่างในลักษณะที่สำคัญ ซึ่งรวมถึงแต่ไม่จำกัดเพียงขนาด, URL ที่ประกาศ, แอตทริบิวต์ครีเอทีฟโฆษณา และประเภทผู้ให้บริการ กล่าวคือ คุณต้องกำหนดรหัสครีเอทีฟโฆษณาที่แตกต่างกันให้กับโฆษณา 2 รายการที่
มีลักษณะหรือการทำงานที่แตกต่างกัน
แสดงผลเป็นรูปภาพต่างๆ
แสดงผลด้วยวิธีต่างๆ (เช่น โฆษณาหนึ่งประกอบด้วยรูปภาพ
ขณะที่อีกโฆษณาเป็นวิดีโอ)
เมื่อออกแบบแอปพลิเคชัน คุณควรตัดสินใจเลือกวิธีสร้างตัวระบุอย่างเป็นระบบซึ่งสอดคล้องกับประเภทครีเอทีฟโฆษณาที่คุณวางแผนจะส่ง
แอตทริบิวต์โฆษณา
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
ตั้งค่า BidResponse.seatbid.bid.apis เป็น
MRAID_1 หรือ 3 สำหรับรูปแบบ JSON
SIZELESS
ตั้งค่า BidResponse.seatbid.bid.attr เป็น
RESPONSIVE หรือ 18 สำหรับรูปแบบ JSON
PLAYABLE
โดยระบุด้วยการตั้งค่า BidResponse.seatbid.bid.attr
เป็น USER_INTERACTIVE หรือ 13 สำหรับรูปแบบ JSON
ดูคำอธิบายเกี่ยวกับวิธีรับความคิดเห็นเกี่ยวกับพร็อพเพอร์ตี้ที่ตรวจพบของครีเอทีฟโฆษณาได้ในแหล่งข้อมูลครีเอทีฟโฆษณา
ฟิลด์การเสนอราคาแบบเปิด
การตอบกลับราคาเสนอที่ส่งโดยผู้เสนอราคาของ Exchange และเครือข่ายที่เข้าร่วมการเสนอราคาแบบเปิด
จะคล้ายกับการตอบกลับของ Authorized Buyers ที่เข้าร่วมการเสนอราคาแบบเรียลไทม์
มาตรฐาน ลูกค้าการเสนอราคาแบบเปิดสามารถระบุฟิลด์เพิ่มเติมจำนวนเล็กน้อย
และฟิลด์ที่มีอยู่บางรายการอาจมีการใช้งานแบบอื่น ซึ่งรวมถึงรายการต่อไปนี้
ช่อง
รายละเอียด
BidResponse.imp.pmp.deals.id
รหัสดีลจากเนมสเปซของ Exchange ที่เชื่อมโยงกับราคาเสนอนี้
และรายงานต่อผู้เผยแพร่โฆษณา
หมายเหตุ: ระบบจะส่งฟิลด์นี้ไปยังผู้เข้าร่วมโปรแกรมเบต้าแบบจำกัดผู้ใช้งานเท่านั้น
BidResponse.seatbid.bid.ext.exchange_deal_type
ประเภทดีลที่รายงานต่อผู้เผยแพร่โฆษณา ซึ่งส่งผลต่อวิธีจัดการดีลในการประมูล
หมายเหตุ: ระบบจะส่งฟิลด์นี้ไปยังผู้เข้าร่วมโปรแกรมเบต้าแบบจำกัดผู้ใช้งานเท่านั้น
BidResponse.seatbid.bid.ext.third_party_buyer_token
โทเค็นที่ใช้เพื่อระบุข้อมูลผู้ซื้อบุคคลที่สามปลายทางหาก Exchange ในฐานะผู้เสนอราคาในการเสนอราคาแบบเปิดเป็นตัวกลาง ซึ่งได้มาจาก
ผู้ซื้อบุคคลที่สาม และต้องส่งไปยัง Google โดยไม่มีการเปลี่ยนแปลงในการเสนอราคา
ตอบ
คำแนะนำ
ตัวอย่างการเสนอราคาตอบ
ตัวอย่างต่อไปนี้แสดงตัวอย่างที่มนุษย์อ่านได้ของคำขอ Protobuf และ JSON
Protobuf ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
การตอบกลับที่แปลงเป็นอนุกรม
id : "1lY5z94y6Bz404R9H0ZN38"
seatbid {
bid {
id : "n1KLe2Q26Xyu431W1PU"
impid : "1"
price : 1.0575798749923706
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
crid : "test_creative_id_666097"
dealid : "0"
w : 339
h : 53
burl : "https://test.com/imp?id=123456"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 86548870602
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 7
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "1lY5z94y6Bz404R9H0ZN38" ,
"seatbid" : [
{
"bid" : [
{
"id" : "n1KLe2Q26Xyu431W1PU" ,
"impid" : "1" ,
"price" : 1.0575798749923706 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"crid" : "test_creative_id_666097" ,
"dealid" : "0" ,
"w" : 339 ,
"h" : 53 ,
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "86548870602" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 7
}
}
สำคัญ: ข้อความ Protobuf ที่แสดงใน
ตัวอย่างจะแสดงเป็นข้อความที่มนุษย์อ่านได้ที่นี่ อย่างไรก็ตาม วิธีดังกล่าวไม่ใช่
วิธีส่งข้อความผ่านสาย เมื่อใช้รูปแบบ Protobuf ของ OpenRTB
ระบบจะยอมรับเฉพาะข้อความ BidResponse ที่ซีเรียลไลซ์แล้วเท่านั้น
คุณสร้างและทำให้ข้อความ BidResponse เป็นอนุกรมได้โดยใช้โค้ด C++ ต่อไปนี้
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
}
ระบุครีเอทีฟโฆษณา
การเสนอราคาตอบจะระบุครีเอทีฟโฆษณาที่จะแสดงหากการเสนอราคาของคุณชนะ ราคาเสนอ
ต้องมีรูปแบบโฆษณาที่รองรับอย่างใดอย่างหนึ่ง (AMP, วิดีโอ, เนทีฟ) ในตัวอย่างนี้ เราจะระบุครีเอทีฟโฆษณาโดยใช้ฟิลด์ html_snippet
หรือจะระบุครีเอทีฟโฆษณาโดยใช้ฟิลด์ใดฟิลด์หนึ่ง ต่อไปนี้ก็ได้ โดยขึ้นอยู่กับรูปแบบโฆษณา
โฆษณาที่แสดงโดย SDK
BidResponse.seatbid.bid.ext.sdk_rendered_ad
AMP
BidResponse.seatbid.bid.amp_ad_url
วิดีโอ
BidResponse.seatbid.bid.adm
โฆษณาเนทีฟ
BidResponse.seatbid.bid.adm_native
ระบุโฆษณาที่โฮสต์ในเซิร์ฟเวอร์ของคุณเองโดยใช้ข้อมูลโค้ด HTML ในช่องBidResponse.seatbid.bid.adm ข้อมูลโค้ดจะอยู่ใน
iFrame ที่แทรกลงในหน้าเว็บ ซึ่งจะทำให้ระบบเรียกข้อมูลและ
แสดงโฆษณาเมื่อโหลดหน้าเว็บ คุณต้องสร้างข้อมูลโค้ด HTML เพื่อให้โฆษณา (แบนเนอร์หรือโฆษณาคั่นระหว่างหน้า) แสดงผลอย่างถูกต้องภายใน iFrame และมีขนาดที่เหมาะสมกับช่องโฆษณาที่คุณเสนอราคา
นอกจากนี้ ขนาดโฆษณาที่ประกาศในการเสนอราคาตอบต้องตรงกับชุดค่าผสมขนาดใดขนาดหนึ่งในคำขอราคาเสนอเมื่อมีเงื่อนไขต่อไปนี้
โฆษณาเป็นแบนเนอร์ปกติ (ไม่ใช่โฆษณาวิดีโอ โฆษณาเนทีฟ หรือโฆษณาคั่นระหว่างหน้า)
ผู้เสนอราคาได้ประกาศขนาดในการเสนอราคาตอบ ต้องประกาศขนาด
ทุกครั้งที่มีขนาดมากกว่า 1 ขนาดในคำขอ
แต่มีข้อยกเว้นสำหรับโฆษณาคั่นระหว่างหน้า สำหรับโฆษณาคั่นระหว่างหน้า ความกว้างต้องไม่ต่ำกว่า 50% ของความกว้างหน้าจอ และความสูงต้องไม่ต่ำกว่า 40% ของความสูงหน้าจอ
คุณระบุครีเอทีฟโฆษณาข้อมูลโค้ด HTML ได้โดยใช้โค้ด HTML ที่ถูกต้องซึ่งแสดงผลอย่างถูกต้อง แต่โปรดทราบข้อจำกัดในการระบุช่อง crid ในส่วนสร้างข้อความ BidResponse
การใช้งานอย่างหนึ่งคือการใส่ข้อมูลเพิ่มเติมลงในอาร์กิวเมนต์ของ URL ที่ดึงมาจากเซิร์ฟเวอร์ของคุณเป็นส่วนหนึ่งของการแสดงโฆษณา ซึ่งจะช่วยให้คุณส่ง
ข้อมูลที่กำหนดเองเกี่ยวกับการแสดงผลกลับไปยังเซิร์ฟเวอร์ของคุณเองได้
นโยบายส่วนใหญ่สำหรับข้อมูลโค้ด HTML ที่แสดงในการเสนอราคาตอบจะเหมือนกับนโยบายสำหรับโฆษณาของบุคคลที่สาม
ดูข้อมูลเพิ่มเติมได้ที่หลักเกณฑ์ของโปรแกรม
Authorized Buyers , ข้อกำหนดสำหรับการแสดงโฆษณา
ของบุคคลที่สาม และประกาศ
URL การคลิกผ่านในโฆษณา
ระบุมาโคร
มาโครคือข้อความที่จัดรูปแบบซึ่งฝังอยู่ในช่องการตอบกลับราคาเสนอที่มี
URL ซึ่งจะถูกแทนที่ด้วยค่าที่เกี่ยวข้อง ณ เวลาที่แสดงโฆษณา เช่น
หากราคาเสนอที่ชนะมีมาโคร AUCTION_PRICE ใน HTML
ข้อมูลโค้ดครีเอทีฟโฆษณาที่รวมไว้กับราคาเสนอ ระบบจะแทนที่มาโครด้วย
ค่าที่คุณถอดรหัสได้เพื่อกำหนดจำนวนเงินที่คุณจ่ายสำหรับการแสดงผลในการประมูล
คุณสามารถใส่มาโครในช่องต่อไปนี้ได้
BidResponse.seatbid.bid.adm
มาโครรองรับรูปแบบตัวอย่างข้อมูล HTML, เนทีฟ, URL วิดีโอ และ VAST
XML ของวิดีโอ
BidResponse.seatbid.bid.adm_native.eventtrackers.url
BidResponse.seatbid.bid.adm_native.imptrackers
BidResponse.seatbid.bid.ext.amp_ad_url
ระบบรองรับเฉพาะมาโคร WINNING_PRICE และ WINNING_PRICE_ESC ของ Google สำหรับครีเอทีฟโฆษณา AMP
BidResponse.seatbid.bid.burl
BidResponse.seatbid.bid.ext.impression_tracking_url
ใช้ตัวแปรนี้แทน BidResponse.seatbid.bid.burl หากคุณ
ต้องการ URL การเรียกเก็บเงินมากกว่า 1 รายการ
ตัวอย่างเช่น คุณอาจรวมมาโครเป็นส่วนหนึ่งของข้อมูลโค้ด HTML โดย
ฝัง ${MACRO} ภายใน URL ที่ใช้เพื่อดึงข้อมูลครีเอทีฟโฆษณา
ซึ่ง MACRO เป็นหนึ่งในมาโครที่รองรับตามที่อธิบายไว้ใน
ข้อกำหนด OpenRTB
มาโครของ Google
Google รองรับมาโครเพิ่มเติม นอกเหนือจากที่พบในข้อกำหนด OpenRTB
มาโครเหล่านี้มีรูปแบบแตกต่างกัน และจะปรากฏเป็น %%MACRO%% หากฝังอยู่ใน URL ตารางต่อไปนี้จะอธิบายมาโครเหล่านี้
มาโคร
คำอธิบาย
ADVERTISING_IDENTIFIER
อนุญาตให้ผู้ซื้อรับ IDFA ของ iOS หรือรหัสโฆษณาของ Android เมื่อ
แสดงผลการแสดงโฆษณา
ดูรายละเอียดได้ที่การถอดรหัสตัวระบุผู้ลงโฆษณา
CACHEBUSTER
การแสดงสตริงของจำนวนเต็มแบบสุ่มที่ไม่มีเครื่องหมายและมี 4 ไบต์
CLICK_URL_UNESC
URL การคลิกที่ไม่ใช้ Escape สำหรับโฆษณา ในข้อมูลโค้ด URL การคลิกของบุคคลที่สามที่หลีกเลี่ยง
ควรอยู่ต่อจากมาโครโดยตรง
ตัวอย่างเช่น หาก URL การคลิกของบุคคลที่สามคือ
http://my.adserver.com/some/path/handleclick?click=clk
คุณจะใช้โค้ดต่อไปนี้กับ URL การคลิกของบุคคลที่สามเวอร์ชันที่มีการกำหนดเป็นอักขระหลีกครั้งเดียว
หลังจากเรียกใช้มาโครได้
<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
เมื่อถึงเวลาแสดงโฆษณา ระบบจะขยายเป็น
<a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
URL จะลงทะเบียนการคลิกกับ Google ก่อน แล้วจึงเปลี่ยนเส้นทาง
ไปยัง URL การคลิกของบุคคลที่สาม
CLICK_URL_ESC
URL การคลิกที่หลีกเลี่ยงสำหรับโฆษณา ใช้ค่านี้แทน
CLICK_URL_UNESC หากคุณต้องส่งค่าผ่านทาง
เซิร์ฟเวอร์อื่น ซึ่งจะมีการเปลี่ยนเส้นทางต่อจากนั้น
เช่น คุณอาจใช้โค้ดต่อไปนี้ในข้อมูลโค้ด HTML
<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a>
เมื่อถึงเวลาแสดงโฆษณา ระบบจะขยายเป็น
<a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a>
ซึ่งจะเป็นการลงทะเบียนคลิกกับ my.adserver.com ซึ่ง
จะรับผิดชอบในการเปลี่ยนเส้นทางไปยัง URL ที่ส่งในพารามิเตอร์ google_click_url ซึ่งถือว่า
my.adserver.com ยกเลิกการหลีก
google_click_url พารามิเตอร์
คุณสามารถต่อท้าย URL ที่หลบหนี 2 ครั้งหลังจาก
%%CLICK_URL_ESC%% หลังจากที่ my.adserver.com ยกเลิกการกำหนดเป็นอักขระหลีกแล้ว
ระบบจะเหลือ URL ที่มีการกำหนดเป็นอักขระหลีกเพียงครั้งเดียว
ซึ่งต่อท้าย google_click_url เมื่อดึงข้อมูล
google_click_url ระบบจะยกเลิกการหลีกอีกครั้ง
แล้วเปลี่ยนเส้นทาง
CLICK_URL_ESC_ESC
URL ที่กำหนดเป็นอักขระหลีก 2 ครั้งสำหรับโฆษณา ใช้ค่านี้แทน
CLICK_URL_UNESC หากคุณต้องส่งค่าผ่านทางเซิร์ฟเวอร์อื่น ซึ่งจะมีการเปลี่ยนเส้นทางต่อจากนั้น
เช่น คุณอาจใช้โค้ดต่อไปนี้ในข้อมูลโค้ด HTML
<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a>
เมื่อถึงเวลาแสดงโฆษณา ระบบจะขยายเป็น
<a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a>
SCHEME
ขยายเป็น http: หากคำขอราคาเสนอไม่จำเป็นต้องใช้ SSL หรือเป็น
https: หากคำขอราคาเสนอจำเป็นต้องใช้ SSL
SITE
โดเมน URL ที่ใช้อักขระหลีกของ URL เนื้อหาหรือรหัสที่ไม่ระบุตัวตนสำหรับพื้นที่โฆษณาที่ไม่ระบุตัวตน
SITE_URL
เลิกใช้งานแล้ว แทนที่ด้วยมาโคร SITE ซึ่งมีฟังก์ชันการทำงานเหมือนกัน
TZ_OFFSET
ออฟเซ็ตเขตเวลา
VERIFICATION
ค่าที่แตกต่างกันสำหรับการผลิตและเมื่อสแกนครีเอทีฟโฆษณา
ในไปป์ไลน์การยืนยัน รูปแบบคือ
%%?VERIFICATION:true-val:false-val%% โดยใช้ค่าใดก็ได้
ยกเว้นมาโครสำหรับ true-val และ
false-val รวมถึงสตริงว่าง สําหรับการเสนอราคาแบบเปิด เราขอแนะนําให้
การแลกเปลี่ยนใช้มาโครนี้ เมื่อใช้แล้วแพลตฟอร์มฝั่งดีมานด์
ก็ไม่จําเป็นต้องทําการเปลี่ยนแปลง
เช่น หากครีเอทีฟโฆษณามีข้อความ %%?VERIFICATION:-1:5000%% การแทนที่ข้อความ
จะเป็น 5000 ในการแสดงโฆษณาและ -1 ใน
ไปป์ไลน์การยืนยัน เพื่อช่วยแยกความแตกต่างระหว่างชุดการ Ping 2 ชุดนี้
WINNING_PRICE
ราคาการแสดงผลที่เข้ารหัส (ซึ่งจะเป็น CPI ไม่ใช่ CPM) ที่เป็นจำนวนเล็กน้อยมากในสกุลเงินของบัญชี เช่น CPM ที่ชนะซึ่งมีค่าเป็น $5 USD
จะเท่ากับ 5,000,000 ไมโคร CPM หรือ 5,000 ไมโคร CPI ค่าที่ถอดรหัสแล้ว
ของ WINNING_PRICE ในกรณีนี้จะเป็น 5,000
ราคาที่ชนะจะระบุด้วย CPI
หากต้องการแยกวิเคราะห์มาโครนี้ คุณจะต้องใช้แอปพลิเคชันที่
ถอดรหัสการยืนยันราคา ดูข้อมูลเพิ่มเติมได้ที่หน้าการถอดรหัสการยืนยันราคา
WINNING_PRICE_ESC
WINNING_PRICE ที่หลบหนี URL
Google กำหนดให้คุณใช้มาโคร CLICK_URL_UNESC หรือ CLICK_URL_ESC ภายในครีเอทีฟโฆษณาของโฆษณาที่แสดงโดยบุคคลที่สาม Google ใช้CLICK_URLมาโครสำหรับการติดตามคลิก
การใช้ Escape ใน URL ในมาโครใช้รูปแบบต่อไปนี้
ระบบจะแทนที่อักขระเว้นวรรคด้วยเครื่องหมายบวก (+)
อักขระที่เป็นตัวอักษรและตัวเลขคละกัน (0-9, a-z, A-Z) และอักขระจากชุด !()*,-./:_~ จะยังคงเดิม
อักขระอื่นๆ ทั้งหมดจะถูกแทนที่ด้วย %XX โดยที่ XX คือเลขฐานสิบหก
ที่แสดงอักขระ
ข้อจำกัดและข้อกำหนดของผู้เผยแพร่โฆษณา
คำขอราคาเสนอมีข้อมูลเกี่ยวกับข้อจำกัดและ
ข้อกำหนดที่ผู้เผยแพร่โฆษณากำหนดไว้ในครีเอทีฟโฆษณาในการประมูล
BidRequest.bcat
คุณสามารถเปรียบเทียบหมวดหมู่ที่ถูกบล็อกซึ่งระบุโดยฟิลด์นี้กับหมวดหมู่ที่
ตรวจพบสำหรับครีเอทีฟโฆษณาที่ส่งโดยใช้
detectedCategories ของ Real-time Bidding API
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
ในทางปฏิบัติ ค่านี้จะตั้งเป็น true เสมอเนื่องจาก
Google กำหนดให้ครีเอทีฟโฆษณาทั้งหมดต้องรองรับ SSL
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
ห้ามเสนอราคาด้วยโฆษณาที่มีฟีเจอร์ที่ถูกจำกัด สำหรับฟีเจอร์ที่อนุญาต
เช่น ประเภทผู้ให้บริการ ให้แสดงโฆษณาเฉพาะในกรณีที่ประเภทผู้ให้บริการอยู่ใน
allowed_vendor_type รายการใน BidRequest คุณควรใส่เฉพาะรูปแบบโฆษณาที่ระบุในคำขอราคาเสนอโดยการป้อนข้อมูลในช่องต่างๆ เช่น BidRequest.imp.banner ในราคาเสนอ ดูรายละเอียดเพิ่มเติมได้ในความคิดเห็นสำหรับฟิลด์เหล่านี้ในคำจำกัดความBidRequestบัฟเฟอร์โปรโตคอล
หากมีการแสดงโฆษณาใน BidResponse คุณต้อง
ตั้งค่า BidResponse.seatbid.bid.attr
BidResponse.seatbid.bid.cat และฟิลด์ BidResponse.seatbid.bid.adomain หรือ
BidResponse.seatbid.bid.adm_native.link.url อย่างใดอย่างหนึ่งใน
BidResponse อย่างถูกต้อง หากโฆษณามีค่าที่เกี่ยวข้องหลายค่าสำหรับฟิลด์เหล่านี้
คุณจะต้องระบุค่าทั้งหมด ดูรายละเอียดเพิ่มเติมได้ในความคิดเห็นสำหรับฟิลด์เหล่านี้ใน
คำจำกัดความของ Protocol Buffer BidResponse
ระบบจะทิ้งคำตอบที่ไม่ได้ตั้งค่าฟิลด์เหล่านี้
Open Measurement
Open Measurement ช่วยให้คุณระบุผู้ให้บริการบุคคลที่สามที่ให้บริการวัดผลและการยืนยัน
โฆษณาที่แสดงในสภาพแวดล้อมของแอปบนอุปกรณ์เคลื่อนที่ได้อย่างอิสระ
รูปแบบโฆษณาที่รองรับ ได้แก่ โฆษณาวิดีโอ โฆษณาแบนเนอร์ และโฆษณาคั่นระหว่างหน้า ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ Open Measurement ในการตอบกลับการเสนอราคาที่มีรูปแบบเหล่านี้ได้ที่บทความในศูนย์ช่วยเหลือของ Open Measurement SDK
ตัวอย่างการเสนอราคาตอบ
ส่วนต่อไปนี้แสดงตัวอย่างการตอบกลับราคาเสนอสำหรับโฆษณาประเภทต่างๆ
หมายเหตุ: ตัวอย่าง Protobuf มีลิงก์ดาวน์โหลดการเสนอราคาตอบที่คล้ายกัน
ซึ่งเป็นแบบอนุกรม แต่ไม่รับประกันว่าข้อมูลจะเหมือนกันทุกประการ
แบนเนอร์ของแอป
Protobuf ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
การตอบกลับที่แปลงเป็นอนุกรม
id : "4308k26S0C36XQ2z1dIo99"
seatbid {
bid {
id : "y2OcJw5j213rO95Gz78"
impid : "1"
price : 18.360865389304116
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>"
crid : "test_creative_id_391487"
dealid : "1"
w : 390
h : 60
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
ad_choices_destination_url : "https://test.com/preferences"
billing_id : 82364411103
skadn {
version : "4.0"
network : "cF58w81X"
itunesitem : "788729094"
sourceapp : "1422994973"
fidelities {
fidelity : VIEW_THROUGH_ADS
nonce : "017e597c-3c7d-4a44-afeb-41cd9a17066f"
timestamp : "1757235407882"
signature : "11iF1L96q2cw8tu790p301c10530ogr7h250k1P9pLxqcJ2qe37klG8xB3M592YbpafQ9861493838C521XA6AEF4A40DK8X"
}
fidelities {
fidelity : STOREKIT_RENDERED_ADS
nonce : "017e597c-3c7d-4a44-afeb-41cd9a17066f"
timestamp : "1757235407882"
signature : "f67L3C138Y6XB7940141011Pd58AZbdBk9Xo1Mlf1973706DsB5808ILLKumU2ic9fr72b9bSs3CD25CCZo8DJB65JB0615L"
}
sourceidentifier : "5507"
}
app_promotion_type : INSTALLS
clickurl : "google.com"
clickurl : "example.com"
}
}
seat : "2542:1534:245840"
}
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 3
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "4308k26S0C36XQ2z1dIo99" ,
"seatbid" : [
{
"bid" : [
{
"id" : "y2OcJw5j213rO95Gz78" ,
"impid" : "1" ,
"price" : 18.360865389304116 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" ,
"crid" : "test_creative_id_391487" ,
"dealid" : "1" ,
"w" : 390 ,
"h" : 60 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"ad_choices_destination_url" : "https://test.com/preferences" ,
"billing_id" : "82364411103" ,
"skadn" : {
"version" : "4.0" ,
"network" : "cF58w81X" ,
"itunesitem" : "788729094" ,
"sourceapp" : "1422994973" ,
"fidelities" : [
{
"fidelity" : 0 ,
"nonce" : "017e597c-3c7d-4a44-afeb-41cd9a17066f" ,
"timestamp" : "1757235407882" ,
"signature" : "11iF1L96q2cw8tu790p301c10530ogr7h250k1P9pLxqcJ2qe37klG8xB3M592YbpafQ9861493838C521XA6AEF4A40DK8X"
},
{
"fidelity" : 1 ,
"nonce" : "017e597c-3c7d-4a44-afeb-41cd9a17066f" ,
"timestamp" : "1757235407882" ,
"signature" : "f67L3C138Y6XB7940141011Pd58AZbdBk9Xo1Mlf1973706DsB5808ILLKumU2ic9fr72b9bSs3CD25CCZo8DJB65JB0615L"
}
],
"sourceidentifier" : "5507"
},
"app_promotion_type" : 1 ,
"clickurl" : [
"google.com" ,
"example.com"
]
}
}
],
"seat" : "2542:1534:245840"
}
],
"ext" : {
"processing_time_ms" : 3
}
}
โฆษณาคั่นระหว่างหน้าในแอป
Protobuf ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
การตอบกลับที่แปลงเป็นอนุกรม
id : "U0t6Une80802A28Mi98o1t"
seatbid {
bid {
id : "300z78I726nCP7u4sFp"
impid : "1"
price : 149.83914184570312
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
crid : "test_creative_id_732353"
dealid : "0"
w : 360
h : 715
burl : "https://test.com/imp?id=123456"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 68640308112
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 10
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "U0t6Une80802A28Mi98o1t" ,
"seatbid" : [
{
"bid" : [
{
"id" : "300z78I726nCP7u4sFp" ,
"impid" : "1" ,
"price" : 149.83914184570312 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"crid" : "test_creative_id_732353" ,
"dealid" : "0" ,
"w" : 360 ,
"h" : 715 ,
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "68640308112" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 10
}
}
วิดีโอโฆษณาคั่นระหว่างหน้าในแอป
Protobuf ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
การตอบกลับที่แปลงเป็นอนุกรม
id : "n40G42d551UX18627ao8lt"
seatbid {
bid {
id : "17u6BnD62h88r5q7066"
impid : "1"
price : 0.797848
adm : "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%"
adomain : "google.com"
crid : "test_creative_id_987914"
w : 320
h : 480
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid ] {
attribute : 47
attribute : 50
billing_id : 55383762512
skadn {
version : "4.0"
network : "306el65O"
itunesitem : "832461214"
sourceapp : "977150768"
fidelities {
fidelity : VIEW_THROUGH_ADS
nonce : "0054e0b9-0b53-4426-99dd-a1eefeb45565"
timestamp : "1757329316673"
signature : "oE3Ek8347oZV1Yl1J42G2c88BSKr2dqEbiOK2S4ni7NVDh3v128NN0hlzWK5aX96ecV1504E9k288i0t0wGX73P317812WE7"
}
fidelities {
fidelity : STOREKIT_RENDERED_ADS
nonce : "0054e0b9-0b53-4426-99dd-a1eefeb45565"
timestamp : "1757329316673"
signature : "b1GqXA4v889p842512GQ1p3249q5VmPt1335f1H1zdK92fq24j7a7ml419W7u8B7rhhH97s507f2251923oWi89XF1voZv4b"
}
sourceidentifier : "8396"
}
app_promotion_type : INSTALLS
clickurl : "google.com"
}
}
}
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 20
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "n40G42d551UX18627ao8lt" ,
"seatbid" : [
{
"bid" : [
{
"id" : "17u6BnD62h88r5q7066" ,
"impid" : "1" ,
"price" : 0.797848 ,
"adm" : "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_987914" ,
"w" : 320 ,
"h" : 480 ,
"cattax" : 500 ,
"ext" : {
"attribute" : [
47 ,
50
],
"billing_id" : "55383762512" ,
"skadn" : {
"version" : "4.0" ,
"network" : "306el65O" ,
"itunesitem" : "832461214" ,
"sourceapp" : "977150768" ,
"fidelities" : [
{
"fidelity" : 0 ,
"nonce" : "0054e0b9-0b53-4426-99dd-a1eefeb45565" ,
"timestamp" : "1757329316673" ,
"signature" : "oE3Ek8347oZV1Yl1J42G2c88BSKr2dqEbiOK2S4ni7NVDh3v128NN0hlzWK5aX96ecV1504E9k288i0t0wGX73P317812WE7"
},
{
"fidelity" : 1 ,
"nonce" : "0054e0b9-0b53-4426-99dd-a1eefeb45565" ,
"timestamp" : "1757329316673" ,
"signature" : "b1GqXA4v889p842512GQ1p3249q5VmPt1335f1H1zdK92fq24j7a7ml419W7u8B7rhhH97s507f2251923oWi89XF1voZv4b"
}
],
"sourceidentifier" : "8396"
},
"app_promotion_type" : 1 ,
"clickurl" : [
"google.com"
]
}
}
]
}
],
"ext" : {
"processing_time_ms" : 20
}
}
แอปที่มาพร้อมเครื่อง
Protobuf ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
การตอบกลับที่แปลงเป็นอนุกรม
id : "550102L8So5v6gi4C00T36"
seatbid {
bid {
id : "U796oSA426V3U666ue8"
impid : "1"
price : 1.057860016822815
crid : "test_creative_id_395811"
dealid : "0"
adm_native {
ver : "1.2"
assets {
id : 6
img {
url : "https://native.test.com/logo?id=123456"
w : 200
h : 200
type : LOGO
}
}
assets {
id : 5
img {
url : "https://native.test.com/image?id=123456"
w : 800
h : 800
type : MAIN
}
}
assets {
id : 4
data {
value : "Galactic Luxury Cruises"
type : SPONSORED
}
}
assets {
id : 3
data {
value : "Book today"
type : CTATEXT
}
}
assets {
id : 1
title {
text : "Luxury Mars Cruises"
}
}
assets {
id : 2
data {
value : "Visit the planet in a luxury spaceship."
type : DESC
}
}
link {
url : "https://www.google.com"
}
}
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
impression_tracking_url : "https://test.com/impression?id=123456"
ad_choices_destination_url : "https://test.com/preferences"
event_notification_token {
payload : "token"
}
billing_id : 73917825312
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 17
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "550102L8So5v6gi4C00T36" ,
"seatbid" : [
{
"bid" : [
{
"id" : "U796oSA426V3U666ue8" ,
"impid" : "1" ,
"price" : 1.057860016822815 ,
"crid" : "test_creative_id_395811" ,
"dealid" : "0" ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456" ,
"https://test.com/impression?id=123456"
],
"ad_choices_destination_url" : "https://test.com/preferences" ,
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "73917825312" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
},
"adm" : "{ \" ver \" : \" 1.2 \" , \" assets \" :[{ \" id \" :6, \" img \" :{ \" url \" : \" https://native.test.com/logo?id=123456 \" , \" w \" :200, \" h \" :200, \" type \" :2}},{ \" id \" :5, \" img \" :{ \" url \" : \" https://native.test.com/image?id=123456 \" , \" w \" :800, \" h \" :800, \" type \" :3}},{ \" id \" :4, \" data \" :{ \" value \" : \" Galactic Luxury Cruises \" , \" type \" :1}},{ \" id \" :3, \" data \" :{ \" value \" : \" Book today \" , \" type \" :12}},{ \" id \" :1, \" title \" :{ \" text \" : \" Luxury Mars Cruises \" }},{ \" id \" :2, \" data \" :{ \" value \" : \" Visit the planet in a luxury spaceship. \" , \" type \" :2}}], \" link \" :{ \" url \" : \" https://www.google.com \" }}"
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 17
}
}
วิดีโอบนเว็บ
Protobuf ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
การตอบกลับที่แปลงเป็นอนุกรม
id : "04XK8XoQI227314y42h0LL"
seatbid {
bid {
id : "R9TtHE88cGu48FA4DuG"
impid : "1"
price : 1.0523000955581665
adm : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% "
crid : "test_creative_id_400281"
dealid : "45957820"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 63495119434
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 11
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "04XK8XoQI227314y42h0LL" ,
"seatbid" : [
{
"bid" : [
{
"id" : "R9TtHE88cGu48FA4DuG" ,
"impid" : "1" ,
"price" : 1.0523000955581665 ,
"adm" : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% " ,
"crid" : "test_creative_id_400281" ,
"dealid" : "45957820" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "63495119434" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 11
}
}
แบนเนอร์เว็บบนอุปกรณ์เคลื่อนที่สำหรับผู้เสนอราคาในการแลกเปลี่ยน
Protobuf ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
การตอบกลับที่แปลงเป็นอนุกรม
id : "1qCcL0350ZX64rx8WQm7N1"
seatbid {
bid {
id : "9I6TCG083egHnxY1490"
impid : "1"
price : 0.34
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 320
h : 100
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
billing_id : 29290087654
third_party_buyer_token : "0W4u1J2Ya9GqKfzo925xPxN527l74y91z6P9h9b4s0Dg2t1q84O4S652wcHe63576VvK8aG6K7387yQujd13kdb99q75447qr6k332G4l3Mzhq75f155894Jg0U1vB18t73C24B4D1cd"
}
}
bid {
id : "1xHeg1ANn9RbY9n4rG2"
impid : "1"
price : 0.2
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 300
h : 50
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
third_party_buyer_token : "ha1g9MaJIJ8R0110bkX95Jb0ksv78l4139zr4t98A19DDO6NCpX84TQp84a6H470M7mop5KzVHRyrJtn1zw78N1559WRm7554X7R21jnI0E1X7c10Xj98c08iH85742t76Y26H67cW78"
}
}
seat : "3581:7507:419542"
}
seatbid {
bid {
id : "x0ch5K0vq3iY6M7ZT84"
impid : "1"
price : 0.11
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 320
h : 50
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
}
}
seat : "3581:7507:419542"
}
bidid : "EFa8lD5s-3w28kZzd-4221-aZkE1F6r5810"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 250
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "1qCcL0350ZX64rx8WQm7N1" ,
"seatbid" : [
{
"bid" : [
{
"id" : "9I6TCG083egHnxY1490" ,
"impid" : "1" ,
"price" : 0.34 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 320 ,
"h" : 100 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "29290087654" ,
"third_party_buyer_token" : "0W4u1J2Ya9GqKfzo925xPxN527l74y91z6P9h9b4s0Dg2t1q84O4S652wcHe63576VvK8aG6K7387yQujd13kdb99q75447qr6k332G4l3Mzhq75f155894Jg0U1vB18t73C24B4D1cd"
}
},
{
"id" : "1xHeg1ANn9RbY9n4rG2" ,
"impid" : "1" ,
"price" : 0.2 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 300 ,
"h" : 50 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
},
"third_party_buyer_token" : "ha1g9MaJIJ8R0110bkX95Jb0ksv78l4139zr4t98A19DDO6NCpX84TQp84a6H470M7mop5KzVHRyrJtn1zw78N1559WRm7554X7R21jnI0E1X7c10Xj98c08iH85742t76Y26H67cW78"
}
}
],
"seat" : "3581:7507:419542"
},
{
"bid" : [
{
"id" : "x0ch5K0vq3iY6M7ZT84" ,
"impid" : "1" ,
"price" : 0.11 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 320 ,
"h" : 50 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456" ,
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
}
}
}
],
"seat" : "3581:7507:419542"
}
],
"bidid" : "EFa8lD5s-3w28kZzd-4221-aZkE1F6r5810" ,
"ext" : {
"processing_time_ms" : 250
}
}