การโต้ตอบการเสนอราคาแบบเรียลไทม์จะเริ่มต้นเมื่อ Google ส่งคำขอเสนอราคาไปยัง
แอปพลิเคชันของคุณ คู่มือนี้จะอธิบายวิธีเขียนโค้ดแอปพลิเคชันเพื่อประมวลผลคำขอราคาเสนอ
คำขอแยกวิเคราะห์
Google จะส่งคำขอราคาเสนอที่ซีเรียลไลซ์ในรูปแบบ OpenRTB JSON หรือ Protobuf โดยแนบเป็นเพย์โหลดของคำขอ POST HTTP รูปแบบที่ได้รับจะขึ้นอยู่กับการกำหนดค่าอุปกรณ์ปลายทาง ดูตัวอย่างได้ที่ตัวอย่างคำขอราคาเสนอ
คุณต้องแยกวิเคราะห์คำขอนี้เพื่อรับ BidRequest ที่เรียงลำดับแล้ว หากใช้รูปแบบ Protobuf คุณต้องดาวน์โหลด openrtb.proto และ openrtb-adx.proto จากหน้าข้อมูลอ้างอิง แล้วใช้เพื่อสร้างไลบรารีที่สามารถใช้แยกวิเคราะห์ข้อความ BidRequest ได้ ตัวอย่างเช่น โค้ด C++ ต่อไปนี้จะแยกวิเคราะห์คำขอที่ได้รับเพย์โหลด POST ในสตริง
string post_payload = /* the payload from the POST request */ ;
BidRequest bid_request ;
if ( bid_request . ParseFromString ( post_payload )) {
// Process the request .
}
เมื่อมี BidRequest แล้ว คุณจะใช้เป็นออบเจ็กต์เพื่อดึงข้อมูลและตีความฟิลด์ที่ต้องการได้ ตัวอย่างเช่น ใน
C++ การวนซ้ำดีลใน `BidRequest` ของ OpenRTB อาจมีลักษณะดังนี้
for ( const BidRequest :: Imp :: Pmp :: Deal & deal : pmp . deals ()) {
DoSomething ( deal . id (), deal . wseat ());
}
รหัสการเรียกเก็บเงิน
คุณจะได้รับคำขอราคาเสนอเมื่อพื้นที่โฆษณาของผู้เผยแพร่โฆษณาได้รับการกำหนดเป้าหมายโดย
การกำหนดค่าการกำหนดเป้าหมายล่วงหน้า อย่างน้อย 1 รายการ BidRequest.imp.ext.billing_id
จะได้รับการป้อนข้อมูลด้วยรหัสการเรียกเก็บเงินของผู้ซื้อที่มีสิทธิ์ และการกำหนดค่าการกำหนดเป้าหมายล่วงหน้าที่เกี่ยวข้อง
นอกจากนี้ สำหรับพื้นที่โฆษณาดีล คุณสามารถค้นหารหัสการเรียกเก็บเงินที่เชื่อมโยงกับผู้ซื้อที่เกี่ยวข้องได้โดยใช้ BidRequest.imp.pmp.deal.ext.billing_id คุณจะระบุได้เฉพาะรหัสการเรียกเก็บเงินของผู้ซื้อที่รวมอยู่ในคำขอราคาเสนอเมื่อเสนอราคา
หากมีรหัสการเรียกเก็บเงินหลายรายการในคำขอราคาเสนอ คุณต้องระบุรหัสการเรียกเก็บเงินของผู้ซื้อที่คุณต้องการให้เครดิตราคาเสนอด้วยฟิลด์ BidResponse.seatbid.bid.ext.billing_id
imp {
ext {
// The billing IDs of all of your matching pretargeting configs and eligible child seats are
// stored in a flat list here.
billing_id: 123
billing_id: 456
billing_id: 789
}
pmp {
// All eligible deals are stored in a single flat list.
deal {
id: 1000
ext {
// The specific billing IDs eligible to bid on this deal are indicated here.
billing_id: 789
}
...
}
deal {
id: 2000
ext {
billing_id: 123
billing_id: 456
}
...
}
}
...
}
...
ระบุหมวดหมู่ที่ถูกบล็อก
เมื่อเสนอราคา ครีเอทีฟโฆษณาที่รวมอยู่ต้องไม่มีหมวดหมู่ที่ผู้เผยแพร่โฆษณา
บล็อก ไม่เช่นนั้น ระบบจะกรองราคาเสนอออกจากการประมูล
คุณดูหมวดหมู่ที่ถูกบล็อกสําหรับการแสดงผลได้โดยตรวจสอบฟิลด์
BidRequest.bcat ซึ่งมีหมวดหมู่ใน
การจัดหมวดหมู่
ที่กําหนดค่าไว้สําหรับบัญชีของคุณ
ตัวอย่างต่อไปนี้แสดงหมวดหมู่ที่ถูกบล็อกตามการจัดหมวดหมู่โฆษณาที่กำหนดค่าไว้
การจัดหมวดหมู่เนื้อหาของ IAB 1.0
// Bid request
{
// Indicates the blocked categories using IAB Content 1.0 Taxonomy.
"bcat" : [
"IAB9-9" , // Cigars
"IAB8-18" // Wine
]
"imp" : {
...
}
}
การจัดหมวดหมู่โฆษณา Google
// Bid request
{
// Indicates the blocked categories using Google Ad Category Taxonomy.
"bcat" : [
"10138" , // Cigar and tobacco collecting
"10080" , // Tobacco
"11649" , // Wine
"10674" , // Wine collecting
"13008" // Wine clubs
]
"imp" : {
...
}
}
สำคัญ: หากต้องการระบุหมวดหมู่ที่ตรวจพบสำหรับครีเอทีฟโฆษณา ให้ใช้ทรัพยากร creatives ใน Real-time Bidding API ดูรายละเอียดเกี่ยวกับหมวดหมู่ที่ตรวจพบได้ที่ทรัพยากร REST: bidders.creatives
ระบุหมวดหมู่ตามบริบท
คำขอราคาเสนออาจรวมฟิลด์หมวดหมู่ตามบริบทที่อธิบายเว็บไซต์หรือแอปที่มีการแสดงผล ช่องเหล่านี้ยังใช้การจัดหมวดหมู่โฆษณาด้วย แต่จะแสดงบริบทของการแสดงผลแทนข้อจำกัดในครีเอทีฟโฆษณา ช่องเหล่านี้อาจไม่ได้ใช้การจัดหมวดหมู่เดียวกันกับช่อง BidRequest.bcat Google หรือผู้เผยแพร่โฆษณาสามารถระบุหมวดหมู่ตามบริบทเหล่านี้ได้ การใช้หมวดหมู่ตามบริบทอาจช่วยปรับปรุงการประเมินการแสดงผล การกำหนดเป้าหมายตามบริบท และความปลอดภัยของแบรนด์
หมวดหมู่ตามบริบทที่ Google ตรวจพบ
Google จะป้อนข้อมูลในช่องต่อไปนี้ด้วยหมวดหมู่เนื้อหาของ IAB ที่ตรวจพบสำหรับเว็บไซต์ แอป หรือหน้าเว็บ
ช่อง
คำอธิบาย
BidRequest.site.cat
อาร์เรย์ของรหัสหมวดหมู่เนื้อหาที่อธิบายเว็บไซต์
BidRequest.site.pagecat
อาร์เรย์ของรหัสหมวดหมู่เนื้อหาที่อธิบายหน้าหรือมุมมองปัจจุบันของเว็บไซต์
BidRequest.app.cat
อาร์เรย์ของรหัสหมวดหมู่เนื้อหาที่อธิบายแอป
BidRequest.app.pagecat
อาร์เรย์ของรหัสหมวดหมู่เนื้อหาที่อธิบายหน้าหรือมุมมองปัจจุบันของแอป
คุณสามารถดูการจัดหมวดหมู่ที่แน่นอนซึ่งใช้สำหรับฟิลด์เหล่านี้สำหรับคำขอราคาเสนอหนึ่งๆ ได้ในฟิลด์ BidRequest.site.cattax หรือ BidRequest.app.cattax ระบบอาจไม่ได้ป้อนข้อมูลในช่องหมวดหมู่ตามบริบทเสมอไปเนื่องจากค่ากำหนดของผู้เผยแพร่โฆษณาหรือข้อกังวลด้านกฎระเบียบ
ดูข้อมูลเพิ่มเติมได้ที่หมวดหมู่ตามบริบท OpenRTB ใน Google Ad Manager
สัญญาณที่ผู้เผยแพร่โฆษณามีให้
นอกจากหมวดหมู่ตามบริบทที่ Google ตรวจพบแล้ว คำขอราคาเสนอยังอาจมีสัญญาณที่ได้จากผู้เผยแพร่โฆษณา ซึ่งอธิบายบริบทของการแสดงผลด้วย สัญญาณเหล่านี้จะสร้างขึ้นเมื่อผู้เผยแพร่โฆษณาระบุเท่านั้น ซึ่งต่างจากหมวดหมู่ตามบริบทที่ Google ตรวจพบ ระบบจะส่งสัญญาณเหล่านี้ในออบเจ็กต์ BidRequest.site.content และ
BidRequest.app.content เช่น content.data.segment และ
content.genre ระบบจะรายงานการจัดหมวดหมู่ที่ใช้สำหรับรายการ content.data.segment
ใน content.data.ext.segtax ดูข้อมูลเพิ่มเติมได้ที่สัญญาณที่ได้จากผู้เผยแพร่โฆษณา (PPS) สำหรับการเสนอราคาแบบเรียลไทม์ (RTB)
ไฟล์พจนานุกรม
คำขอราคาเสนอใช้ตัวระบุที่กำหนดไว้ในไฟล์พจนานุกรม ซึ่งมีอยู่ในหน้าข้อมูลอ้างอิง
มาโคร URL ของผู้เสนอราคา
คุณสามารถแทรกข้อมูลบางอย่างจาก BidRequest ลงใน URL ปลายทางการเสนอราคาได้โดยใช้มาโคร หากคุณกำหนดค่า URL ของปลายทาง
ด้วยมาโครอย่างน้อย 1 รายการ ระบบจะขยายมาโครเหล่านั้นหากมีข้อมูลดังกล่าว
ในคำขอราคาเสนอ ซึ่งอาจมีประโยชน์ เช่น หากคุณต้องการ
ทำการจัดสรรภาระงานตามข้อมูลใน BidRequest
โปรดติดต่อผู้จัดการฝ่ายดูแลลูกค้าเพื่อขอรับการสนับสนุนสำหรับมาโครใหม่
มาโคร คำอธิบาย
%%GOOGLE_USER_ID%%
แทนที่ด้วยรหัสผู้ใช้ Google ที่พบใน BidRequest.user.id เช่น URL ของผู้เสนอราคา http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%% จะถูกแทนที่ด้วย URL อย่าง http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl ในเวลาที่ส่งคำขอ
หากไม่ทราบรหัสผู้ใช้ Google ระบบจะแทนที่ด้วยสตริงว่าง โดยมี
ผลลัพธ์คล้ายกับ
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
แทนที่ด้วย 1 เพื่อระบุว่าคำขอราคาเสนอมาจากอุปกรณ์เคลื่อนที่ หรือ 0 ในกรณีอื่นๆ ซึ่งอิงตามค่าของ BidRequest.device.devicetype โดยอุปกรณ์เคลื่อนที่จะระบุด้วย HIGHEND_PHONE (4) หรือ Tablet (5)
%%HAS_VIDEO%%
แทนที่ด้วย 1 เพื่อระบุว่าคำขอราคาเสนอมีพื้นที่โฆษณาวิดีโอ หรือ 0 ในกรณีอื่นๆ ซึ่งจะอิงตามว่ามีการป้อนข้อมูล BidRequest.imp.video ในคำขอราคาเสนอหรือไม่
%%IS_CTV%%
แทนที่ด้วย 1 เพื่อระบุว่าคำขอราคาเสนอมาจากอุปกรณ์ CTV หรือ 0 ในกรณีอื่นๆ ซึ่งอิงตามค่าของ BidRequest.device.devicetype สำหรับ Protobuf อุปกรณ์ CTV จะเป็น
CONNECTED_TV, CONNECTED_DEVICE หรือ
SET_TOP_BOX ซึ่งสอดคล้องกับค่าจำนวนเต็ม 3,
6 หรือ 7 สำหรับ JSON
%%HOSTED_MATCH_DATA%%
แทนที่ด้วยค่าตาม BidRequest.user.buyeruid
%%MOBILE_IS_APP%%
แทนที่ด้วย 1 เพื่อระบุว่าคำขอราคาเสนอมีไว้สำหรับพื้นที่โฆษณาในแอปบนอุปกรณ์เคลื่อนที่ หรือ 0 ในกรณีอื่นๆ โดยขึ้นอยู่กับว่ามีการป้อนข้อมูล BidRequest.app หรือไม่
ค้นหารหัสแอปบนอุปกรณ์เคลื่อนที่จาก URL ของธุรกรรม
ธุรกรรมของแอปพลิเคชันบนอุปกรณ์เคลื่อนที่จะรายงาน URL ที่มีลักษณะดังนี้
mbappgewtimrzgyytanjyg4888888 .com
ใช้เครื่องมือถอดรหัส Base-32 เพื่อถอดรหัสส่วนของสตริงที่เป็นตัวหนา (gewtimrzgyytanjyg4888888 )
คุณสามารถใช้ตัวถอดรหัสออนไลน์ ได้ แต่จะต้องใช้ตัวอักษรพิมพ์ใหญ่และแทนที่8ที่ต่อท้ายด้วยค่า =
ดังนั้นการถอดรหัสค่านี้จึงเป็นดังนี้
GEWTIMRZGYYTANJYG4======
จะให้ผลลัพธ์ดังนี้
1 - 429610587
สตริง
429610587 คือรหัสแอปสำหรับแอป iOS
iFunny
ลองมาดูอีกตัวอย่างหนึ่งกัน URL ที่รายงานคือ
mbappgewtgmjug4ytmmrtgm888888 .com
การถอดรหัสค่านี้
GEWTGMJUG4YTMMRTGM======
จะส่งผลให้
1 - 314716233
ผลลัพธ์
314716233 คือรหัสแอปสำหรับแอป iOS
TextNow
ค้นหาชื่อแอปบนอุปกรณ์เคลื่อนที่จาก URL ของธุรกรรม
ตัวอย่างการรับชื่อแอปมีดังนี้ URL ที่รายงานมีดังนี้
mbappMFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q888 .com
การถอดรหัสค่านี้
MFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q===
จะให้ผลลัพธ์ดังนี้
air.com.hypah.io.slither
ผลลัพธ์ที่ได้คือแอป Android
slither.io
ฟิลด์การเสนอราคาแบบเปิด
คำขอราคาเสนอที่ส่งไปยังผู้เสนอราคาของ Exchange และเครือข่ายที่เข้าร่วมการเสนอราคาแบบเปิดจะคล้ายกับคำขอราคาเสนอของ Authorized Buyers ที่เข้าร่วมการเสนอราคาแบบเรียลไทม์มาตรฐาน ลูกค้าที่ใช้การเสนอราคาแบบเปิดจะได้รับช่องเพิ่มเติมจำนวนเล็กน้อย และช่องที่มีอยู่บางช่องอาจมีการใช้งานทางเลือก ซึ่งรวมถึงแอปต่อไปนี้ด้วย
OpenRTB
รายละเอียด
BidRequest.imp.ext.dfp_ad_unit_code
มีรหัสเครือข่าย Ad Manager ของผู้เผยแพร่โฆษณาตามด้วยลำดับชั้นของหน่วยโฆษณา โดยคั่นด้วยเครื่องหมายทับ
ตัวอย่างเช่น ข้อมูลนี้จะปรากฏโดยมีการจัดรูปแบบคล้ายกับ /1234/cruises/mars
BidRequest.user.data.segment
คู่คีย์-ค่าที่ซ้ำกันซึ่งส่งจากผู้เผยแพร่โฆษณาไปยังผู้เสนอราคา Exchange
คุณสามารถระบุได้ว่าค่าดังกล่าวเป็นคู่คีย์-ค่าที่ผู้เผยแพร่โฆษณาส่งมาเมื่อตั้งค่า BidRequest.user.data.name เป็น “Publisher Passed”
หมายเหตุ: ปัจจุบันระบบจะส่งฟิลด์นี้ไปยังผู้เข้าร่วมรุ่นเบต้าแบบจำกัดผู้ใช้งานเท่านั้น
ประกาศผู้ให้บริการที่อนุญาต
ผู้ให้บริการเทคโนโลยีที่ให้บริการต่างๆ เช่น การวิจัย รีมาร์เก็ตติ้ง และ
การแสดงโฆษณา อาจมีบทบาทในการโต้ตอบระหว่างผู้ซื้อและผู้ขาย อนุญาตเฉพาะผู้ให้บริการที่ Google ได้ตรวจสอบแล้วว่ามีสิทธิ์เข้าร่วมการโต้ตอบกับ Authorized Buyers
หากต้องการทำความเข้าใจBidRequestและสร้างBidResponse คุณต้องทราบถึงความเป็นไปได้ 2 แบบในการประกาศผู้ให้บริการเทคโนโลยี ดังนี้
ผู้ให้บริการบางรายไม่จำเป็นต้องประกาศ โดยผู้ให้บริการเหล่านี้จะแสดงอยู่ในผู้ให้บริการภายนอกที่ผ่านการรับรองจาก Ad Manager
ผู้ให้บริการรายอื่นๆ จะเข้าร่วมได้ก็ต่อเมื่อมีการประกาศใน
BidRequest:
ใน BidRequest ช่อง BidRequest.imp.ext.allowed_vendor_type จะระบุผู้ให้บริการที่ผู้ขายอนุญาต ผู้ให้บริการที่จะส่งใน allowed_vendor_type จะแสดงอยู่ในไฟล์พจนานุกรม vendors.txt
ตัวอย่างคำขอราคาเสนอ
ตัวอย่างต่อไปนี้แสดงตัวอย่างคำขอ Protobuf และ JSON ที่มนุษย์อ่านได้
OpenRTB Protobuf
แสดงตัวอย่างให้ฉันดู
คำขอแบบเรียงอันดับ
id : "a7gs668pOD71593174WD18"
imp {
id : "1"
banner {
w : 320
h : 50
pos : ABOVE_THE_FOLD
api : MRAID_1
api : MRAID_2
format {
w : 320
h : 50
}
format {
w : 300
h : 50
}
[ com . google . doubleclick . banner_ext ] {
flexslot {
wmin : 241
wmax : 360
hmin : 42
hmax : 56
}
}
}
displaymanager : "GoogleMobileAds-Android"
displaymanagerver : "25.2.0"
tagid : "1087180971"
bidfloor : 4.0
bidfloorcur : "JPY"
secure : true
exp : 3600
clickbrowser : true
metric {
type : "click_through_rate"
value : 0.0006611673161387444
vendor : "EXCHANGE"
}
metric {
type : "video_completion_rate"
value : 0.0
vendor : "EXCHANGE"
}
[ com . google . doubleclick . imp ] {
billing_id : 47329549763
billing_id : 93434328916
publisher_settings_list_id : 5038409325655482128
publisher_settings_list_id : 8244945310049778846
allowed_vendor_type : 0
allowed_vendor_type : 776
ampad : AMP_AD_NOT_ALLOWED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
billable_event_rate_bid_adjustment {
bid_adjustment : 0.9657459259033203
creative_type : HTML_SNIPPET
}
jsver : "test-sdk_123456789"
}
}
app {
name : "Test App"
ver : "2.23.1"
bundle : "com.google.testapp"
publisher {
id : "pub-3006071972218254"
[ com . google . doubleclick . publisher ] {
country : "CY"
}
}
content {
url : "https://www.google.com"
userrating : "4.6"
language : "it"
}
storeurl : "https://www.google.com"
}
device {
ua : "OMITTED"
geo {
lat : 0.0
lon : 0.0
country : "ITA"
region : "IT-BA"
zip : "70128"
type : IP
utcoffset : 120
accuracy : 1869
[ com . google . doubleclick . geo ] {
geo_criteria_id : 9219050
}
}
ipv6 : "2a01:827:39ae::"
language : "it"
make : "Xiaomi"
model : "220233L2G"
os : "android"
osv : "11"
connectiontype : WIFI
devicetype : HIGHEND_PHONE
w : 360
h : 725
pxratio : 2.0
sua {
browsers {
brand : "Mozilla"
version : "5"
version : "0"
}
browsers {
brand : "AppleWebKit"
version : "537"
version : "36"
}
platform {
brand : "Android"
version : "11"
}
mobile : true
model : "220233L2G"
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
metereddata : false
chargelevel : 0.9200000166893005
charging : false
diskspace : 12300
audioout : AUDIO_SPEAKER
scrollposx : 0
scrollposy : 0
}
}
user {
id : "29950OI6i422S2857R0MT3n5756"
buyeruid : "4Z41N9YA3024279s51RFb73dtG997z59"
customdata : "fs37o0bb54N2775957ivPEJvA6BTk3X5xzN26h2ZT0fI5T3I"
consent : "OMITTED"
[ com . google . doubleclick . user ] {
consented_providers_settings {
consented_providers : 3230
consented_providers : 2605
additional_consent : "OMITTED"
}
consent : "OMITTED"
session {
duration : 660
depth : 270
requestssinceappopen : 618
priorclicks : 0
}
}
}
at : FIRST_PRICE
tmax : 350
cur : "AUD"
cur : "JPY"
bcat : "3"
bcat : "4"
regs {
[ com . google . doubleclick . regs ] {
gdpr : true
}
}
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
[ com . google . doubleclick . source ] {
omidpn : "Google"
omidpv : "afma-sdk-a-v261210000.261210000.0"
}
}
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537"
fcap_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : true
}
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "a7gs668pOD71593174WD18" ,
"imp" : [
{
"id" : "1" ,
"banner" : {
"w" : 320 ,
"h" : 50 ,
"pos" : 1 ,
"api" : [
3 ,
5
],
"format" : [
{
"w" : 320 ,
"h" : 50
},
{
"w" : 300 ,
"h" : 50
}
],
"ext" : {
"flexslot" : {
"wmin" : 241 ,
"wmax" : 360 ,
"hmin" : 42 ,
"hmax" : 56
}
}
},
"displaymanager" : "GoogleMobileAds-Android" ,
"displaymanagerver" : "25.2.0" ,
"tagid" : "1087180971" ,
"bidfloor" : 4.0 ,
"bidfloorcur" : "JPY" ,
"secure" : 1 ,
"exp" : 3600 ,
"clickbrowser" : 1 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.0006611673161387444 ,
"vendor" : "EXCHANGE"
},
{
"type" : "video_completion_rate" ,
"value" : 0.0 ,
"vendor" : "EXCHANGE"
}
],
"ext" : {
"billing_id" : [
"47329549763" ,
"93434328916"
],
"publisher_settings_list_id" : [
"5038409325655482128" ,
"8244945310049778846"
],
"allowed_vendor_type" : [
0 ,
776
],
"ampad" : 2 ,
"excluded_creatives" : [
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
},
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
}
],
"creative_enforcement_settings" : {
"policy_enforcement" : 1 ,
"publisher_blocks_enforcement" : 1
},
"billable_event_rate_bid_adjustment" : [
{
"bid_adjustment" : 0.9657459 ,
"creative_type" : 1
}
],
"jsver" : "test-sdk_123456789"
}
}
],
"app" : {
"name" : "Test App" ,
"ver" : "2.23.1" ,
"bundle" : "com.google.testapp" ,
"publisher" : {
"id" : "pub-3006071972218254" ,
"ext" : {
"country" : "CY"
}
},
"content" : {
"url" : "https://www.google.com" ,
"userrating" : "4.6" ,
"language" : "it"
},
"storeurl" : "https://www.google.com"
},
"device" : {
"ua" : "OMITTED" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "ITA" ,
"region" : "IT-BA" ,
"zip" : "70128" ,
"type" : 2 ,
"utcoffset" : 120 ,
"accuracy" : 1869 ,
"ext" : {
"geo_criteria_id" : 9219050
}
},
"ipv6" : "2a01:827:39ae::" ,
"language" : "it" ,
"make" : "Xiaomi" ,
"model" : "220233L2G" ,
"os" : "android" ,
"osv" : "11" ,
"connectiontype" : 2 ,
"devicetype" : 4 ,
"w" : 360 ,
"h" : 725 ,
"pxratio" : 2.0 ,
"sua" : {
"browsers" : [
{
"brand" : "Mozilla" ,
"version" : [
"5" ,
"0"
]
},
{
"brand" : "AppleWebKit" ,
"version" : [
"537" ,
"36"
]
}
],
"platform" : {
"brand" : "Android" ,
"version" : [
"11"
]
},
"mobile" : 1 ,
"model" : "220233L2G" ,
"source" : 3
},
"ext" : {
"metereddata" : 0 ,
"chargelevel" : 0.92 ,
"charging" : 0 ,
"diskspace" : 12300 ,
"audioout" : 1 ,
"scrollposx" : 0 ,
"scrollposy" : 0
}
},
"user" : {
"id" : "29950OI6i422S2857R0MT3n5756" ,
"buyeruid" : "4Z41N9YA3024279s51RFb73dtG997z59" ,
"customdata" : "fs37o0bb54N2775957ivPEJvA6BTk3X5xzN26h2ZT0fI5T3I" ,
"consent" : "OMITTED" ,
"ext" : {
"consented_providers_settings" : {
"consented_providers" : [
"3230" ,
"2605"
],
"additional_consent" : "OMITTED"
},
"consent" : "OMITTED" ,
"session" : {
"duration" : 660 ,
"depth" : 270 ,
"requestssinceappopen" : 618 ,
"priorclicks" : 0
}
}
},
"at" : 1 ,
"tmax" : 350 ,
"cur" : [
"AUD" ,
"JPY"
],
"bcat" : [
"3" ,
"4"
],
"regs" : {
"ext" : {
"gdpr" : 1
}
},
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
},
"ext" : {
"omidpn" : "Google" ,
"omidpv" : "afma-sdk-a-v261210000.261210000.0"
}
},
"cattax" : 500 ,
"ext" : {
"google_query_id" : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537" ,
"fcap_scope" : 3 ,
"privacy_treatments" : {
"allow_user_data_collection" : 1
}
}
}
หากต้องการแปลงคำขอราคาเสนอเป็นรูปแบบไบนารี เช่น ที่คุณจะได้รับจากเพย์โหลด POST ในคำขอจริง ให้ทำดังนี้ (ใน C++) โปรดทราบว่าวิธีนี้ไม่เกี่ยวข้องกับ JSON ของ OpenRTB
string text_format_example = /* example from above */ ;
BidRequest bid_request ;
if ( TextFormat :: ParseFromString ( text_format_example , &bid_request )) {
string post_payload ;
if ( bid_request . SerializeToString ( &post_payload )) {
// post_payload is a binary serialization of the protocol buffer
}
}
ความคิดเห็นแบบเรียลไทม์
ความคิดเห็นแบบเรียลไทม์พร้อมให้บริการแก่ Authorized Buyers รวมถึง Exchange และเครือข่ายที่ใช้การเสนอราคาแบบเปิด
ความคิดเห็นแบบเรียลไทม์จะแสดงใน BidRequest.ext.bid_feedback โดยอิงตามผลลัพธ์ของราคาเสนออย่างน้อย 1 รายการที่คุณเสนอไปก่อนหน้านี้ และสามารถใช้เพื่อดูรายละเอียดต่างๆ เช่น ราคาเสนอชนะการประมูลหรือไม่ หรือราคาเสนอขั้นต่ำที่จำเป็นเพื่อให้ชนะการประมูล โปรดติดต่อผู้จัดการฝ่ายดูแลลูกค้าเพื่อเปิดใช้ความคิดเห็นแบบเรียลไทม์
นอกเหนือจากช่องเริ่มต้นที่ส่งในการตอบกลับราคาเสนอแล้ว คุณยังส่งข้อมูลที่กำหนดเองในการตอบกลับราคาเสนอได้โดยใช้ช่อง BidResponse.seatbid.bid.ext.event_notification_token event_notification_token คือข้อมูลที่กำหนดเองซึ่งมีเฉพาะผู้เสนอราคาที่อาจช่วยในการแก้ไขข้อบกพร่อง เช่น รหัสการกำหนดเป้าหมายใหม่หรือรหัสการเสนอราคาที่แสดงถึงกลยุทธ์ใหม่ หรือข้อมูลเมตาที่เชื่อมโยงกับครีเอทีฟโฆษณาซึ่งมีเฉพาะผู้เสนอราคาที่ทราบ ดูรายละเอียดได้ที่ไฟล์บัฟเฟอร์โปรโตคอลส่วนขยาย OpenRTB
เมื่อ Authorized Buyers ส่งคำขอราคาเสนอไปยังผู้เสนอราคา ผู้เสนอราคาจะตอบกลับ
ด้วย BidResponse หากผู้เสนอราคาเปิดใช้ความคิดเห็นแบบเรียลไทม์ Authorized Buyers จะส่งความคิดเห็นเกี่ยวกับการตอบกลับในข้อความ BidFeedback ในคำขอราคาเสนอที่ตามมา
message BidFeedback {
// The unique id from BidRequest . id .
optional string request_id = 1 ;
// The status code for the ad . See creative - status - codes . txt in the
// technical documentation for a list of ids .
optional int32 creative_status_code = 2 ;
// Deprecated . This field is not populated and will be removed after March ,
// 2025. If the bid won the auction , this is the price paid in your account
// currency . If the bid participated in the auction but was out - bid , this
// is the CPM that should have been exceeded in order to win . This is not
// set if the bid was filtered prior to the auction , if the publisher or
// winning bidder has opted out of price feedback or if your account has
// opted out of sharing winning prices with other bidders . For first - price
// auctions , minimum_bid_to_win is populated instead of this field .
optional double price = 3 [ deprecated = true ];
// The minimum bid value necessary to have won the auction , in your account
// currency . If your bid won the auction , this is the second highest bid
// that was not filtered ( including the floor price ) . If your bid didn 't win
// the auction , this is the winning candidate 's bid. This field will only be
// populated if your bid participated in a first - price auction , and will not
// be populated if your bid was filtered prior to the auction .
optional double minimum_bid_to_win = 6 ;
// Billable event rate multiplier that was applied to this bid during
// ranking . The adjustment reflects the likelihood that your bid would
// generate a billable event ( namely , the ad renders successfully ) if it won
// the auction , relative to the probability that other bids generate a
// billable event if they won the auction . This adjustment can be larger or
// smaller than 1. This affects the final ranking in the auction only ; in
// particular , this multiplier does not affect the payment or whether the
// bid clears any floor price .
optional float billable_event_rate_bid_adjustment = 13 [ default = 1 ];
// When a publisher uses an RTB auction and waterfall - based SDK mediation on
// the same query , the winner of the real - time auction must also compete in
// a mediation waterfall ( which is ordered by price ) to win the impression .
// If the bid participated in the auction and there was no waterfall , the
// value of this field is 0. If the bid participated in the auction and
// there was a waterfall , the value of this field is a price representing a
// sample bid from the eligible mediation networks that were higher than the
// auction winner , weighted by expected fill rate . This field can be used
// in conjunction with minimum_bid_to_win to train bidding models . The CPM
// is in your account currency .
optional double sampled_mediation_cpm_ahead_of_auction_winner = 8 ;
message EventNotificationToken {
// The contents of the token .
optional string payload = 1 ;
}
// The token included in the corresponding bid .
optional EventNotificationToken event_notification_token = 4 ;
// The creative ID included in the corresponding bid .
optional string buyer_creative_id = 5 ;
}
จากข้อความนี้ ช่องแรกที่คุณควรตรวจสอบคือ bid_feedback.creative_status_code คุณสามารถดูความหมายของรหัสได้ใน
creative-status-codes.txt โปรดทราบว่าหากชนะการเสนอราคา คุณสามารถเลือกไม่รับ
ความคิดเห็นเกี่ยวกับราคาได้ ดูข้อมูลเพิ่มเติมได้ที่วิธีเลือกไม่ใช้
ความคิดเห็นแบบเรียลไทม์ประกอบด้วยรหัสคำขอราคาเสนอและข้อมูลอย่างใดอย่างหนึ่งต่อไปนี้
ผลการประมูล
ความคิดเห็นแบบเรียลไทม์
ผู้ซื้อไม่ได้ส่งราคาเสนอ
ไม่มี
ผู้ซื้อส่งราคาเสนอที่ถูกกรองออกก่อนที่จะเข้าสู่การประมูล
รหัสสถานะครีเอทีฟโฆษณา (creative-status-codes.txt )
ผู้ซื้อส่งราคาเสนอแต่แพ้การประมูล
รหัสสถานะครีเอทีฟโฆษณา 79 (เสนอราคาชนะในการประมูล)
ผู้ซื้อส่งราคาเสนอที่ชนะการประมูล
ราคาเคลียร์ริ่งและรหัสสถานะครีเอทีฟโฆษณา 1
สําหรับการแสดงผลในแอปและรหัสสถานะครีเอทีฟโฆษณา 83 ผู้เผยแพร่โฆษณาแอปอาจใช้การแสดงโฆษณาสื่อกลางตามลำดับขั้น ดังนั้นราคาเสนอที่ชนะจึงแข่งขันกับดีมานด์อื่นๆ ในเชนการแสดงโฆษณาสื่อกลางตามลำดับขั้นของพาสแบ็กของผู้เผยแพร่โฆษณา ดูวิธีใช้ sampled_mediation_cpm_ahead_of_auction_winner เมื่อเสนอราคา
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างความคิดเห็นแบบเรียลไทม์ที่เห็นในโปรโตคอลที่รองรับ
OpenRTB Protobuf
แสดงตัวอย่างให้ฉันดู
คำขอที่เรียงลำดับ
id : "a7gs668pOD71593174WD18"
imp {
id : "1"
banner {
w : 320
h : 50
pos : ABOVE_THE_FOLD
api : MRAID_1
api : MRAID_2
format {
w : 320
h : 50
}
format {
w : 300
h : 50
}
[ com . google . doubleclick . banner_ext ] {
flexslot {
wmin : 273
wmax : 408
hmin : 48
hmax : 64
}
}
}
displaymanager : "GoogleMobileAds-Android"
displaymanagerver : "25.2.0"
tagid : "2012072613"
bidfloor : 139.0
bidfloorcur : "JPY"
secure : true
exp : 3600
clickbrowser : true
metric {
type : "click_through_rate"
value : 0.0003280164091847837
vendor : "EXCHANGE"
}
metric {
type : "video_completion_rate"
value : 0.0
vendor : "EXCHANGE"
}
[ com . google . doubleclick . imp ] {
billing_id : 86462726689
billing_id : 16379689419
publisher_settings_list_id : 8683644760809433282
publisher_settings_list_id : 2559598489488381446
allowed_vendor_type : 0
allowed_vendor_type : 4697
ampad : AMP_AD_NOT_ALLOWED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
jsver : "test-sdk_123456789"
}
}
app {
name : "Test App"
ver : "1.50.0"
bundle : "com.google.testapp"
publisher {
id : "pub-3006071972218254"
[ com . google . doubleclick . publisher ] {
country : "CY"
}
}
content {
url : "https://www.google.com"
userrating : "4.5"
language : "es"
}
storeurl : "https://www.google.com"
}
device {
ua : "OMITTED"
geo {
lat : 0.0
lon : 0.0
country : "USA"
region : "TX"
metro : "635"
city : "Austin"
zip : "78701"
type : IP
utcoffset : - 300
accuracy : 1249
[ com . google . doubleclick . geo ] {
geo_criteria_id : 9028276
}
}
ipv6 : "2600:100c:b065:b869:f05d:476e:f8c9:88e"
carrier : "70092"
language : "es"
make : "Google"
model : "Pixel 10 Pro"
os : "android"
osv : "16"
connectiontype : CELL_4G
devicetype : HIGHEND_PHONE
ifa : "e12095da-00d2-4d49-b4f1-afc512507414"
w : 412
h : 919
pxratio : 2.625
sua {
browsers {
brand : "Mozilla"
version : "5"
version : "0"
}
browsers {
brand : "AppleWebKit"
version : "537"
version : "36"
}
platform {
brand : "Android"
version : "16"
}
mobile : true
bitness : "64"
model : "Pixel 10 Pro"
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
metereddata : true
chargelevel : 0.6800000071525574
charging : false
diskspace : 58000
audioout : AUDIO_SILENT
ifa_type : "aaid"
scrollposx : 0
scrollposy : 0
}
}
user {
[ com . google . doubleclick . user ] {
session {
duration : 353
depth : 270
requestssinceappopen : 7115
priorclicks : 0
}
}
}
at : FIRST_PRICE
tmax : 1200
cur : "AUD"
cur : "JPY"
bcat : "3"
bcat : "4"
regs {
gpp : "OMITTED"
gpp_sid : USPV1
}
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
[ com . google . doubleclick . source ] {
omidpn : "Google"
omidpv : "afma-sdk-a-v263500999.261210000.1"
}
}
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid_request ] {
bid_feedback {
request_id : "30kO34Dw772N4To1Wl2309"
creative_status_code : 80
event_notification_token {
payload : "token"
}
buyer_creative_id : "test_creative_id_950219"
minimum_bid_to_win : 1.13
}
google_query_id : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537"
fcap_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
ip : IP_FULL
allow_user_data_collection : true
}
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "a7gs668pOD71593174WD18" ,
"imp" : [
{
"id" : "1" ,
"banner" : {
"w" : 320 ,
"h" : 50 ,
"pos" : 1 ,
"api" : [
3 ,
5
],
"format" : [
{
"w" : 320 ,
"h" : 50
},
{
"w" : 300 ,
"h" : 50
}
],
"ext" : {
"flexslot" : {
"wmin" : 273 ,
"wmax" : 408 ,
"hmin" : 48 ,
"hmax" : 64
}
}
},
"displaymanager" : "GoogleMobileAds-Android" ,
"displaymanagerver" : "25.2.0" ,
"tagid" : "2012072613" ,
"bidfloor" : 139.0 ,
"bidfloorcur" : "JPY" ,
"secure" : 1 ,
"exp" : 3600 ,
"clickbrowser" : 1 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.0003280164091847837 ,
"vendor" : "EXCHANGE"
},
{
"type" : "video_completion_rate" ,
"value" : 0.0 ,
"vendor" : "EXCHANGE"
}
],
"ext" : {
"billing_id" : [
"86462726689" ,
"16379689419"
],
"publisher_settings_list_id" : [
"8683644760809433282" ,
"2559598489488381446"
],
"allowed_vendor_type" : [
0 ,
4697
],
"ampad" : 2 ,
"excluded_creatives" : [
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
},
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
}
],
"creative_enforcement_settings" : {
"policy_enforcement" : 1 ,
"publisher_blocks_enforcement" : 1
},
"jsver" : "test-sdk_123456789"
}
}
],
"app" : {
"name" : "Test App" ,
"ver" : "1.50.0" ,
"bundle" : "com.google.testapp" ,
"publisher" : {
"id" : "pub-3006071972218254" ,
"ext" : {
"country" : "CY"
}
},
"content" : {
"url" : "https://www.google.com" ,
"userrating" : "4.5" ,
"language" : "es"
},
"storeurl" : "https://www.google.com"
},
"device" : {
"ua" : "OMITTED" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "USA" ,
"region" : "TX" ,
"metro" : "635" ,
"city" : "Austin" ,
"zip" : "78701" ,
"type" : 2 ,
"utcoffset" : - 300 ,
"accuracy" : 1249 ,
"ext" : {
"geo_criteria_id" : 9028276
}
},
"ipv6" : "2600:100c:b065:b869:f05d:476e:f8c9:88e" ,
"carrier" : "70092" ,
"language" : "es" ,
"make" : "Google" ,
"model" : "Pixel 10 Pro" ,
"os" : "android" ,
"osv" : "16" ,
"connectiontype" : 6 ,
"devicetype" : 4 ,
"ifa" : "e12095da-00d2-4d49-b4f1-afc512507414" ,
"w" : 412 ,
"h" : 919 ,
"pxratio" : 2.625 ,
"sua" : {
"browsers" : [
{
"brand" : "Mozilla" ,
"version" : [
"5" ,
"0"
]
},
{
"brand" : "AppleWebKit" ,
"version" : [
"537" ,
"36"
]
}
],
"platform" : {
"brand" : "Android" ,
"version" : [
"16"
]
},
"mobile" : 1 ,
"bitness" : "64" ,
"model" : "Pixel 10 Pro" ,
"source" : 3
},
"ext" : {
"metereddata" : 1 ,
"chargelevel" : 0.68 ,
"charging" : 0 ,
"diskspace" : 58000 ,
"audioout" : 3 ,
"ifa_type" : "aaid" ,
"scrollposx" : 0 ,
"scrollposy" : 0
}
},
"user" : {
"ext" : {
"session" : {
"duration" : 353 ,
"depth" : 270 ,
"requestssinceappopen" : 7115 ,
"priorclicks" : 0
}
}
},
"at" : 1 ,
"tmax" : 1200 ,
"cur" : [
"AUD" ,
"JPY"
],
"bcat" : [
"3" ,
"4"
],
"regs" : {
"gpp" : "OMITTED" ,
"gpp_sid" : [
6
]
},
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
},
"ext" : {
"omidpn" : "Google" ,
"omidpv" : "afma-sdk-a-v263500999.261210000.1"
}
},
"cattax" : 500 ,
"ext" : {
"bid_feedback" : [
{
"request_id" : "30kO34Dw772N4To1Wl2309" ,
"creative_status_code" : 80 ,
"event_notification_token" : {
"payload" : "token"
},
"buyer_creative_id" : "test_creative_id_950219" ,
"minimum_bid_to_win" : 1.13
}
],
"google_query_id" : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537" ,
"fcap_scope" : 3 ,
"privacy_treatments" : {
"ip" : 1 ,
"allow_user_data_collection" : 1
}
}
}
สร้างโมเดลการเสนอราคาสำหรับการประมูลแบบใช้ราคาอันดับ 1
หลังจากเสนอราคาในการประมูลแบบใช้ราคาอันดับ 1 แล้ว คุณจะได้รับ
ความคิดเห็นแบบเรียลไทม์ ซึ่งรวมถึงฟิลด์ minimum_bid_to_win และ
sampled_mediation_cpm_ahead_of_auction_winner หากระบบไม่ได้กรองราคาเสนอ
จากการประมูล คุณสามารถใช้สัญญาณเหล่านี้เพื่อกำหนดตรรกะการเสนอราคาว่าควรเสนอราคาสูงหรือต่ำกว่าเท่าใดจึงจะชนะการแสดงผล
minimum_bid_to_win: ราคาเสนอขั้นต่ำที่อาจเสนอเพื่อชนะการประมูลแบบเรียลไทม์ หากคุณชนะการประมูล นี่จะเป็นราคาเสนอต่ำสุดที่คุณสามารถเสนอได้ในขณะที่ยังชนะอยู่ หากคุณแพ้การประมูล ราคาเสนอที่ชนะจะเป็นราคาเสนอที่ชนะ
sampled_mediation_cpm_ahead_of_auction_winner: หากมีเครือข่ายอื่นๆ ในเชนสื่อกลาง ค่าของฟิลด์นี้คือราคาที่แสดงถึงราคาเสนอตัวอย่างจากเครือข่ายสื่อกลางที่มีสิทธิ์เครือข่ายใดเครือข่ายหนึ่งซึ่งสูงกว่าผู้ชนะการประมูล โดยถ่วงน้ำหนักตามอัตราการส่งโฆษณาที่คาดไว้ ค่านี้จะตั้งเป็น 0 หากไม่มีเครือข่ายใดในเชนสื่อกลางที่คาดว่าจะแสดงโฆษณา หรือหากผู้เผยแพร่โฆษณาไม่ได้ใช้สื่อกลาง SDK
วิธีการทำงาน
ในการอธิบายการคำนวณที่ใช้เพื่อกำหนดค่าที่เป็นไปได้สำหรับ minimum_bid_to_win และ sampled_mediation_cpm_ahead_of_auction_winner ก่อนอื่นเราต้องกำหนดสิ่งต่อไปนี้
ข้อมูลต่อไปนี้แสดง CPM ในเชนสื่อกลาง (Mediation Chain) โดยเรียงลำดับจากมากไปน้อย
\[C_1, C_2, …, C_n\]
ข้อมูลต่อไปนี้แสดงอัตราการส่งโฆษณาที่สอดคล้องกับ CPM ในเชนสื่อกลาง (Mediation Chain)
\[f_1, f_2, …, f_n\]
ต่อไปนี้เป็นฟังก์ชันที่ใช้ในการกำหนด CPM ที่คาดหวังและความน่าจะเป็นจากองค์ประกอบเชนสื่อกลาง (Mediation Chain) \(i\)โดยอิงตามอัตราการส่งโฆษณาที่ระบุ
\(X_i = \{C_i\) โดยมีความน่าจะเป็น \(f_i\)\(0\) โดยมีความน่าจะเป็น \(1 - f_i\}\)
เชนสื่อกลางที่ชนะสุดท้ายจะเป็นดังนี้
\[\{C_1, C_2, …, C_K, W\}\]
โดยที่ \(W\) คือราคาเสนอที่ชนะ และ \(C_K > W >= C_{K+1}\)
ราคาจองหรือราคาพื้นจะแสดงเป็น \(F\)
ราคาเสนอที่รองลงมาจะแสดงเป็น \(R\)
การคำนวณสำหรับผู้ชนะการประมูล
ช่อง
การคำนวณ
minimum_bid_to_win
\(max\{F, R, X_{K+1}, …, X_n\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(\{C_i\) ด้วยความน่าจะเป็น \(\prod_{j=1}^{i-1}(1-f_j) \cdot f_i \div \prod_{j=1}^{K}(1-f_j)\}\)
สำหรับ \(1 <= i <= K\)
การคำนวณสำหรับผู้แพ้การประมูล
ช่อง
การคำนวณ
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(max\{X_1, …, X_K\}\)
สมมติว่าผู้เผยแพร่โฆษณาใช้ทั้งการเสนอราคาแบบเรียลไทม์และเชนสื่อกลาง (Mediation Chain) ของ SDK ดังนี้
เชนสื่อกลาง SDK
CPM ที่คาดการณ์
อัตราการส่งโฆษณา
เครือข่าย 1
\(C_1 = $3.00\)
\(f_1 = 5\%\)
เครือข่าย 2
\(C_2 = $2.00\)
\(f_2 = 45\%\)
เครือข่าย 3
\(C_3 = $0.50\)
\(f_3 = 80\%\)
เครือข่าย 4
\(C_4 = $0.10\)
\(f_4 = 85\%\)
สมมติว่าผลการประมูล RTB เป็นดังนี้
การประมูล RTB
CPM
ผู้ชนะการประมูล (W)
$1.00
ผู้ชนะอันดับ 2 ในการประมูล (R)
$0.05
ราคาจอง / ราคาพื้น (F)
$0
ราคาเสนอที่ชนะการประมูล
ต่อไปนี้เป็นตัวอย่างวิธีคำนวณมูลค่าและความน่าจะเป็นของ minimum_bid_to_win และ sampled_mediation_cpm_ahead_of_auction_winner สำหรับราคาเสนอที่ชนะ
minimum_bid_to_win
Probability
\(max(F, R, C_3) = $0.50\)
\(f_3 = 80\%\)
\(max(F, R, C_4) = $0.10\)
\((1-f_3) \cdot f_4 = 17\%\)
\(max(F, R, 0) = $0.05\)
\((1-f_3) \cdot (1-f_4) = 3\%\)
sampled_mediation_cpm_ ahead_of_auction_winner
Probability
\(C_1 = $3.00\)
\(f_1 \div (1-(1-f_1) \cdot (1-f_2)) =~ 10.5\%\)
\(C_2 = $2.00\)
\(((1-f_1) \cdot f_2) \div (1-(1-f_1) \cdot (1-f_2)) =~ 89.5\%\)
หมายเหตุ: หากผู้ชนะการประมูลแสดงโฆษณาและได้รับการแจ้งเตือนการเรียกเก็บเงิน เช่น ผ่านปลายทางที่ระบุใน BidResponse.seatbid[].bid[].burl ผู้ชนะการประมูลจะสรุปได้ว่า CPM ของสื่อกลางที่สุ่มตัวอย่างทั้ง 2 รายการไม่ได้รับการแสดงโฆษณา และสามารถรวมความถี่ที่เหตุการณ์นี้เกิดขึ้นไว้ในโมเดลของตนได้
ราคาเสนอที่แพ้การประมูล
ต่อไปนี้เป็นตัวอย่างวิธีคำนวณค่าและความน่าจะเป็นของ minimum_bid_to_win และ sampled_mediation_cpm_ahead_of_auction_winner สำหรับราคาเสนอที่แพ้
minimum_bid_to_win
Probability
\(max(F, W) = $1.00\)
\(100\%\)
sampled_mediation_cpm_ ahead_of_auction_winner
Probability
\(C_1 = $3.00\)
\(f_1 = 5\%\)
\(C_2 = $2.00\)
\((1-f_1) \cdot f_2 =~ 42.8\%\)
\(0\)
\((1-f_1) \cdot (1-f_2) =~ 52.2\%\)
หมายเหตุ: ค่า
sampled_mediation_cpm_ahead_of_auction_winner 0 หมายความว่า
การเสนอราคาแบบเรียลไทม์ชนะ ในตัวอย่างข้างต้น คาดว่าผู้ชนะการประมูลจะไม่ถูกเสนอราคาสูงกว่าโดยเครือข่ายสื่อกลางที่แข่งขันกัน 52.2% ของเวลาทั้งหมด
การแยกการเสนอราคา
การแยกการเสนอราคาอธิบายถึงการประมวลผล BidRequest ที่ซับซ้อนรายการเดียวให้เป็นคำขอราคาเสนอหลายรายการที่ส่งไปยังแอปพลิเคชันของคุณ เมื่อคำขอราคาเสนอถูกแยกเป็นแถว คุณจะทราบได้ว่าคำขอราคาเสนอใดเป็นส่วนหนึ่งของคำขอเดิมเนื่องจากจะมีค่าที่เหมือนกันในช่อง BidRequest.ext.google_query_id
ระบบจะเปิดใช้การแยกการเสนอราคาโดยค่าเริ่มต้น แต่คุณสามารถติดต่อผู้จัดการฝ่ายดูแลลูกค้าหากต้องการปิดใช้
โอกาสในการแสดงโฆษณาบางรายการรองรับได้หลายรูปแบบ เมื่อใช้การแยกการเสนอราคา ระบบจะส่งแต่ละรูปแบบในคำขอราคาเสนอที่แตกต่างกัน โดยแอตทริบิวต์ต่างๆ เช่น รหัสการเรียกเก็บเงินที่มีสิทธิ์จะเกี่ยวข้องกับรูปแบบที่ระบุในคำขอ
คำขอราคาเสนอที่มีรูปแบบต่อไปนี้จะถูกแยกเป็นคำขอราคาเสนอที่แตกต่างกัน
แบนเนอร์
วิดีโอ
เสียง
เนทีฟ
ตัวอย่างด้านล่างแสดงคำขอราคาเสนอ JSON ของ OpenRTB แบบง่ายโดยไม่มีการลดรูปแบบโฆษณา
เมื่อเทียบกับชุดคำขอที่ลดรูปแบบแล้วที่เทียบเท่ากัน
ก่อนแบน
แสดงตัวอย่างให้ฉันดู
{
"id": "V5ar1wXqKP58nbsyJ6549D",
"imp": [
{
"id": "1",
"video": {
"linearity": 1,
"w": 300,
"h": 250,
"pos": 1,
"skip": 1,
"playbackmethod": [
6
],
"placement": 3,
"mimes": [
"video/mp4"
],
"protocols": [
2,
3
]
},
"banner": {
"format": [
{
"w": 300,
"h": 250
}
],
"w": 300,
"h": 250,
"pos": 1
},
"ext": {
"billing_id": [
47039494050,
52030317241
]
}
}
],
"ext": {
"google_query_id": "ANy-zdp266-244itJsom3dmXb7SvW1IPg6478g639g0867v1126w630F3M7lAp640H666744"
}
}
หลังการปรับให้แบน
แสดงตัวอย่างให้ฉันดู
คำขอ 1
{
"id": "B3xr1yZqRL48nbsyJ6367N",
"imp": [
{
"id": "1",
"video": {
"linearity": 1,
"w": 300,
"h": 250,
"pos": 1,
"skip": 1,
"playbackmethod": [
6
],
"placement": 3,
"mimes": [
"video/mp4"
],
"protocols": [
2,
3
]
}
"ext": {
"billing_id": [
47039494050
]
}
],
"ext": {
"google_query_id": "ANy-zdp266-244itJsom3dmXb7SvW1IPg6478g639g0867v1126w630F3M7lAp640H666744"
}
}
คำขอ 2
{
"id": "M1dY8qHyNK74bMsjF393Gf",
"imp": [
{
"id": "1",
"banner": {
"format": [
{
"w": 300,
"h": 250
}
],
"w": 300,
"h": 250,
"pos": 1
},
"ext": {
"billing_id": [
52030317241
]
}
}
],
"ext": {
"google_query_id": "ANy-zdp266-244itJsom3dmXb7SvW1IPg6478g639g0867v1126w630F3M7lAp640H666744"
}
}
ดีล
โอกาสในการแสดงโฆษณาสำหรับผู้เสนอราคาหนึ่งๆ อาจใช้ได้กับดีลประเภทต่างๆ นอกเหนือจากการประมูลแบบเปิด เมื่อใช้การแยกการเสนอราคาสำหรับดีล ระบบจะส่งคำขอราคาเสนอ 1 รายการสำหรับการประมูลแบบเปิด และ 1 รายการสำหรับดีลราคาคงที่แต่ละประเภท ในทางปฏิบัติ ข้อจำกัดของโฆษณาอาจแตกต่างกันระหว่างการประมูลและดีลราคาคงที่
เช่น สำหรับโอกาสโฆษณาวิดีโอที่พร้อมใช้งานทั้งในการประมูลแบบเปิดและดีลราคาคงที่ ผู้เสนอราคาจะได้รับคำขอเสนอราคาที่แตกต่างกัน
สำหรับแต่ละดีล ซึ่งข้อจำกัดต่างๆ เช่น ความยาวสูงสุดของโฆษณาและอนุญาตให้ใช้โฆษณาแบบข้ามได้หรือไม่ อาจแตกต่างกัน การแปลงเป็นรูปแบบแบนที่ใช้กับโอกาสในการแสดงโฆษณาจึงช่วยให้คุณแยกแยะข้อจำกัดของโฆษณาสำหรับการประมูลแบบเปิดและข้อเสนอราคาคงที่ได้ง่ายขึ้น
หมายเหตุ: การประมูลส่วนตัวและแพ็กเกจการประมูลจะมีข้อจำกัดเหมือนกับการประมูลแบบเปิด และจะยังคงรวมอยู่ในคำขอราคาเสนอของการประมูลแบบเปิด
ความสามารถในการข้ามและความยาววิดีโอ
ข้อกำหนด OpenRTB ไม่มีช่องแยกต่างหากสำหรับระบุความยาววิดีโอสูงสุดของโฆษณาแบบข้ามได้และแบบข้ามไม่ได้ การติดตั้งใช้งานของ Google ใช้การแยกการเสนอราคาเพื่อแยกความแตกต่างระหว่างรายการเหล่านี้โดยใช้ฟิลด์ BidRequest.video.maxduration และ BidRequest.video.skip ที่มีอยู่
ตัวอย่างต่อไปนี้แสดงวิธีลดระดับพื้นที่โฆษณาวิดีโอเมื่อ15ระยะเวลาสูงสุดของโฆษณาแบบข้ามไม่ได้60และระยะเวลาสูงสุดของโฆษณาแบบข้ามได้
ตัวอย่าง
max_ad_duration
skip (จริงหรือเท็จ)
คำขอเดิมที่ไม่มีการแยกข้อมูล
15
true
คำขอที่แยกเป็นหลายรายการ #1: ข้ามไม่ได้
15
false
คำขอที่แยกเป็นหลายรายการ #2: ข้ามได้
60
true
การแยกคำขอราคาเสนอสำหรับความยาววิดีโอแบบข้ามได้จะเกิดขึ้นก็ต่อเมื่อเป็นไปตามเงื่อนไขต่อไปนี้
คำขอนี้อนุญาตให้ใช้วิดีโอ
อนุญาตให้ใช้วิดีโอทั้งแบบข้ามได้และข้ามไม่ได้ และระยะเวลาสูงสุด 2 รายการที่เกี่ยวข้องมีค่าต่างกัน
คำขอนี้มีสิทธิ์ใช้การประมูลส่วนตัวหรือการประมูลแบบเปิด
คุณเลือกไม่ใช้การแยกข้อมูลประเภทนี้ได้โดยติดต่อผู้จัดการลูกค้าด้านเทคนิค เมื่อปิดใช้ และผู้เผยแพร่โฆษณาอนุญาตทั้งโฆษณาวิดีโอแบบข้ามได้และข้ามไม่ได้ซึ่งมีระยะเวลาสูงสุดแตกต่างกันตามความสามารถในการข้าม ระบบจะตั้งค่า skip เป็น true และตั้งค่า maxduration เป็นระยะเวลาที่สั้นกว่าระหว่างข้อจำกัดของโฆษณาแบบข้ามได้และข้ามไม่ได้
พ็อดวิดีโอ
ระบบจะแปลงคำขอราคาเสนอสำหรับพ็อดวิดีโอที่มีโอกาสในการโฆษณาหลายรายการ
เพื่อให้คำขอราคาเสนอแต่ละรายการเป็นโอกาสในการโฆษณาแต่ละรายการจากพ็อดนั้น
ซึ่งจะช่วยให้คุณเสนอราคาสำหรับโอกาสในการแสดงโฆษณาหลายรายการสำหรับพ็อดหนึ่งๆ ได้
Open Measurement
Open Measurement ช่วยให้คุณระบุผู้ให้บริการบุคคลที่สามที่ให้บริการวัดผลและตรวจสอบยืนยันโดยอิสระสำหรับโฆษณาที่แสดงในสภาพแวดล้อมของแอปบนอุปกรณ์เคลื่อนที่ได้
คุณสามารถระบุได้ว่าผู้เผยแพร่โฆษณารองรับ Open Measurement ในคำขอราคาเสนอหรือไม่ โดยตรวจสอบว่าโอกาสในการแสดงโฆษณายกเว้นแอตทริบิวต์ OmsdkType:
OMSDK 1.0 ที่พบในแอตทริบิวต์ครีเอทีฟโฆษณาที่ผู้เผยแพร่โฆษณายกเว้นได้ หรือไม่ ซึ่งจะอยู่ในแอตทริบิวต์ battr สำหรับแบนเนอร์ หรือวิดีโอ ทั้งนี้ขึ้นอยู่กับรูปแบบ
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีตีความคำขอราคาเสนอที่มีสัญญาณ Open Measurement ได้ที่บทความในศูนย์ช่วยเหลือเกี่ยวกับ SDK ของ Open Measurement
ตัวอย่างคำขอราคาเสนอ
ส่วนต่อไปนี้แสดงตัวอย่างคำขอราคาเสนอสำหรับประเภทโฆษณาต่างๆ
หมายเหตุ: ตัวอย่าง Protobuf มีลิงก์ดาวน์โหลดไปยังคำขอราคาเสนอที่เรียงลำดับแบบเดียวกัน แต่ไม่รับประกันว่าข้อมูลจะเหมือนกัน
แบนเนอร์ของแอป
OpenRTB Protobuf
แสดงตัวอย่างให้ฉันดู
คำขอแบบเรียงอันดับ
id : "a7gs668pOD71593174WD18"
imp {
id : "1"
banner {
w : 320
h : 50
pos : ABOVE_THE_FOLD
api : MRAID_1
api : MRAID_2
format {
w : 320
h : 50
}
format {
w : 300
h : 50
}
[ com . google . doubleclick . banner_ext ] {
flexslot {
wmin : 214
wmax : 320
hmin : 38
hmax : 50
}
}
}
displaymanager : "GoogleMobileAds-Android"
displaymanagerver : "25.4.0"
tagid : "1170683138"
bidfloor : 0.2
bidfloorcur : "TWD"
secure : true
exp : 3600
clickbrowser : true
metric {
type : "click_through_rate"
value : 0.0022246940061450005
vendor : "EXCHANGE"
}
metric {
type : "video_completion_rate"
value : 0.0
vendor : "EXCHANGE"
}
[ com . google . doubleclick . imp ] {
billing_id : 21036061270
billing_id : 11500270523
publisher_settings_list_id : 6478851576480579402
publisher_settings_list_id : 2452646143102133774
allowed_vendor_type : 0
allowed_vendor_type : 828
ampad : AMP_AD_NOT_ALLOWED
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
jsver : "test-sdk_123456789"
}
}
app {
name : "Test App"
ver : "16.73"
bundle : "com.google.testapp"
publisher {
id : "pub-3006071972218254"
[ com . google . doubleclick . publisher ] {
country : "JP"
}
}
content {
url : "https://www.google.com"
userrating : "4.5"
language : "ja"
}
storeurl : "https://www.google.com"
}
device {
ua : "OMITTED"
geo {
lat : 0.0
lon : 0.0
country : "JPN"
region : "JP-23"
city : "Nagoya"
type : IP
utcoffset : 540
accuracy : 2361
[ com . google . doubleclick . geo ] {
geo_criteria_id : 9197961
}
}
ipv6 : "2402:6b00:be5a::"
language : "ja"
make : "Google"
model : "Pixel 7a"
os : "android"
osv : "17"
connectiontype : WIFI
devicetype : HIGHEND_PHONE
ifa : "105e2839-a340-41b9-94e3-84f6860b185b"
w : 320
h : 712
pxratio : 3.375
sua {
browsers {
brand : "Mozilla"
version : "5"
version : "0"
}
browsers {
brand : "AppleWebKit"
version : "537"
version : "36"
}
platform {
brand : "Android"
version : "17"
}
mobile : true
bitness : "64"
model : "Pixel 7a"
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
metereddata : false
chargelevel : 0.7300000190734863
charging : false
diskspace : 27800
audioout : AUDIO_SILENT
ifa_type : "aaid"
scrollposx : 0
scrollposy : 0
}
}
user {
id : "784c390xCf3sdR7n87V64t25vQc"
[ com . google . doubleclick . user ] {
session {
duration : 496
depth : 16
requestssinceappopen : 17
priorclicks : 0
}
idage : 86400
}
}
at : FIRST_PRICE
tmax : 1300
cur : "USD"
cur : "TWD"
bcat : "3"
bcat : "4"
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
[ com . google . doubleclick . source ] {
omidpn : "Google"
omidpv : "afma-sdk-a-v262180000.262180000.0"
}
}
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537"
fcap_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : true
}
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "a7gs668pOD71593174WD18" ,
"imp" : [
{
"id" : "1" ,
"banner" : {
"w" : 320 ,
"h" : 50 ,
"pos" : 1 ,
"api" : [
3 ,
5
],
"format" : [
{
"w" : 320 ,
"h" : 50
},
{
"w" : 300 ,
"h" : 50
}
],
"ext" : {
"flexslot" : {
"wmin" : 214 ,
"wmax" : 320 ,
"hmin" : 38 ,
"hmax" : 50
}
}
},
"displaymanager" : "GoogleMobileAds-Android" ,
"displaymanagerver" : "25.4.0" ,
"tagid" : "1170683138" ,
"bidfloor" : 0.2 ,
"bidfloorcur" : "TWD" ,
"secure" : 1 ,
"exp" : 3600 ,
"clickbrowser" : 1 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.0022246940061450005 ,
"vendor" : "EXCHANGE"
},
{
"type" : "video_completion_rate" ,
"value" : 0.0 ,
"vendor" : "EXCHANGE"
}
],
"ext" : {
"billing_id" : [
"21036061270" ,
"11500270523"
],
"publisher_settings_list_id" : [
"6478851576480579402" ,
"2452646143102133774"
],
"allowed_vendor_type" : [
0 ,
828
],
"ampad" : 2 ,
"creative_enforcement_settings" : {
"policy_enforcement" : 1 ,
"publisher_blocks_enforcement" : 1
},
"jsver" : "test-sdk_123456789"
}
}
],
"app" : {
"name" : "Test App" ,
"ver" : "16.73" ,
"bundle" : "com.google.testapp" ,
"publisher" : {
"id" : "pub-3006071972218254" ,
"ext" : {
"country" : "JP"
}
},
"content" : {
"url" : "https://www.google.com" ,
"userrating" : "4.5" ,
"language" : "ja"
},
"storeurl" : "https://www.google.com"
},
"device" : {
"ua" : "OMITTED" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "JPN" ,
"region" : "JP-23" ,
"city" : "Nagoya" ,
"type" : 2 ,
"utcoffset" : 540 ,
"accuracy" : 2361 ,
"ext" : {
"geo_criteria_id" : 9197961
}
},
"ipv6" : "2402:6b00:be5a::" ,
"language" : "ja" ,
"make" : "Google" ,
"model" : "Pixel 7a" ,
"os" : "android" ,
"osv" : "17" ,
"connectiontype" : 2 ,
"devicetype" : 4 ,
"ifa" : "105e2839-a340-41b9-94e3-84f6860b185b" ,
"w" : 320 ,
"h" : 712 ,
"pxratio" : 3.375 ,
"sua" : {
"browsers" : [
{
"brand" : "Mozilla" ,
"version" : [
"5" ,
"0"
]
},
{
"brand" : "AppleWebKit" ,
"version" : [
"537" ,
"36"
]
}
],
"platform" : {
"brand" : "Android" ,
"version" : [
"17"
]
},
"mobile" : 1 ,
"bitness" : "64" ,
"model" : "Pixel 7a" ,
"source" : 3
},
"ext" : {
"metereddata" : 0 ,
"chargelevel" : 0.73 ,
"charging" : 0 ,
"diskspace" : 27800 ,
"audioout" : 3 ,
"ifa_type" : "aaid" ,
"scrollposx" : 0 ,
"scrollposy" : 0
}
},
"user" : {
"id" : "784c390xCf3sdR7n87V64t25vQc" ,
"ext" : {
"session" : {
"duration" : 496 ,
"depth" : 16 ,
"requestssinceappopen" : 17 ,
"priorclicks" : 0
},
"idage" : 86400
}
},
"at" : 1 ,
"tmax" : 1300 ,
"cur" : [
"USD" ,
"TWD"
],
"bcat" : [
"3" ,
"4"
],
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
},
"ext" : {
"omidpn" : "Google" ,
"omidpv" : "afma-sdk-a-v262180000.262180000.0"
}
},
"cattax" : 500 ,
"ext" : {
"google_query_id" : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537" ,
"fcap_scope" : 3 ,
"privacy_treatments" : {
"allow_user_data_collection" : 1
}
}
}
โฆษณาคั่นระหว่างหน้าในแอป
OpenRTB Protobuf
แสดงตัวอย่างให้ฉันดู
คำขอที่เรียงอันดับ
id : "wKS8UeItaMI5RAYw9Pahl0"
imp {
id : "1"
banner {
w : 412
h : 774
pos : AD_POSITION_FULLSCREEN
api : MRAID_1
api : MRAID_2
format {
w : 412
h : 774
}
format {
w : 360
h : 604
}
}
displaymanager : "GoogleMobileAds-iOS"
displaymanagerver : "11.13.0"
instl : true
tagid : "4105056997"
bidfloor : 0.01
bidfloorcur : "USD"
secure : true
exp : 14400
clickbrowser : true
metric {
type : "click_through_rate"
value : 0.3207642734050751
vendor : "EXCHANGE"
}
metric {
type : "video_completion_rate"
value : 0.012501807883381844
vendor : "EXCHANGE"
}
[ com . google . doubleclick . imp ] {
billing_id : 83032532617
publisher_settings_list_id : 2887317894027751671
publisher_settings_list_id : 8269939443573722896
allowed_vendor_type : 0
allowed_vendor_type : 238
ampad : AMP_AD_NOT_ALLOWED
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
is_app_open_ad : true
jsver : "test-sdk_123456789"
}
}
app {
ver : "1.0.14"
bundle : "com.google.testapp"
publisher {
id : "pub-2301631347146208"
[ com . google . doubleclick . publisher ] {
country : "AE"
}
}
content {
url : "https://www.google.com"
language : "en"
}
storeurl : "https://www.google.com"
}
device {
ua : "OMITTED"
ip : "102.78.236.0"
geo {
lat : 0.0
lon : 0.0
country : "MAR"
region : "MA-11"
city : "Marrakech"
zip : "40000"
type : IP
utcoffset : 0
accuracy : 3263
[ com . google . doubleclick . geo ] {
geo_criteria_id : 9197207
}
}
carrier : "72009"
language : "fr"
make : "Apple"
model : "iPhone14,3"
os : "iOS"
osv : "26.6.1"
connectiontype : CELL_3G
devicetype : HIGHEND_PHONE
ifa : "df23895d-6a56-41e9-bb8c-f19163328c19"
hwv : "iPhone14,3"
w : 428
h : 926
pxratio : 3.0
sua {
browsers {
brand : "Mozilla"
version : "5"
version : "0"
}
browsers {
brand : "AppleWebKit"
version : "605"
version : "1"
}
platform {
brand : "iPhone"
version : "26"
version : "6"
}
mobile : true
bitness : "64"
model : "iPhone"
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
atts : 3
audioout : AUDIO_SILENT
ifa_type : "idfa"
scrollposx : 0
scrollposy : 0
}
}
user {
id : "kxz2KP24nII51245YrV2AFtsQ72"
[ com . google . doubleclick . user ] {
session {
duration : 137
depth : 17
requestssinceappopen : 17
priorclicks : 0
}
idage : 12960000
}
}
at : FIRST_PRICE
tmax : 2000
cur : "USD"
bcat : "32"
bcat : "33"
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
[ com . google . doubleclick . source ] {
omidpn : "Google"
omidpv : "afma-sdk-i-v11.13.0"
}
}
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy-zc08FK-h142dS00t819143TE021SS56r617vV09n09J3OaP354s93vIU300bzJ7e5cG2"
fcap_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : true
}
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "wKS8UeItaMI5RAYw9Pahl0" ,
"imp" : [
{
"id" : "1" ,
"banner" : {
"w" : 412 ,
"h" : 774 ,
"pos" : 7 ,
"api" : [
3 ,
5
],
"format" : [
{
"w" : 412 ,
"h" : 774
},
{
"w" : 360 ,
"h" : 604
}
]
},
"displaymanager" : "GoogleMobileAds-iOS" ,
"displaymanagerver" : "11.13.0" ,
"instl" : 1 ,
"tagid" : "4105056997" ,
"bidfloor" : 0.01 ,
"bidfloorcur" : "USD" ,
"secure" : 1 ,
"exp" : 14400 ,
"clickbrowser" : 1 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.3207642734050751 ,
"vendor" : "EXCHANGE"
},
{
"type" : "video_completion_rate" ,
"value" : 0.012501807883381844 ,
"vendor" : "EXCHANGE"
}
],
"ext" : {
"billing_id" : [
"83032532617"
],
"publisher_settings_list_id" : [
"2887317894027751671" ,
"8269939443573722896"
],
"allowed_vendor_type" : [
0 ,
238
],
"ampad" : 2 ,
"creative_enforcement_settings" : {
"policy_enforcement" : 1 ,
"publisher_blocks_enforcement" : 1
},
"is_app_open_ad" : 1 ,
"jsver" : "test-sdk_123456789"
}
}
],
"app" : {
"ver" : "1.0.14" ,
"bundle" : "com.google.testapp" ,
"publisher" : {
"id" : "pub-2301631347146208" ,
"ext" : {
"country" : "AE"
}
},
"content" : {
"url" : "https://www.google.com" ,
"language" : "en"
},
"storeurl" : "https://www.google.com"
},
"device" : {
"ua" : "OMITTED" ,
"ip" : "102.78.236.0" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "MAR" ,
"region" : "MA-11" ,
"city" : "Marrakech" ,
"zip" : "40000" ,
"type" : 2 ,
"utcoffset" : 0 ,
"accuracy" : 3263 ,
"ext" : {
"geo_criteria_id" : 9197207
}
},
"carrier" : "72009" ,
"language" : "fr" ,
"make" : "Apple" ,
"model" : "iPhone14,3" ,
"os" : "iOS" ,
"osv" : "26.6.1" ,
"connectiontype" : 5 ,
"devicetype" : 4 ,
"ifa" : "df23895d-6a56-41e9-bb8c-f19163328c19" ,
"hwv" : "iPhone14,3" ,
"w" : 428 ,
"h" : 926 ,
"pxratio" : 3.0 ,
"sua" : {
"browsers" : [
{
"brand" : "Mozilla" ,
"version" : [
"5" ,
"0"
]
},
{
"brand" : "AppleWebKit" ,
"version" : [
"605" ,
"1"
]
}
],
"platform" : {
"brand" : "iPhone" ,
"version" : [
"26" ,
"6"
]
},
"mobile" : 1 ,
"bitness" : "64" ,
"model" : "iPhone" ,
"source" : 3
},
"ext" : {
"atts" : 3 ,
"audioout" : 3 ,
"ifa_type" : "idfa" ,
"scrollposx" : 0 ,
"scrollposy" : 0
}
},
"user" : {
"id" : "kxz2KP24nII51245YrV2AFtsQ72" ,
"ext" : {
"session" : {
"duration" : 137 ,
"depth" : 17 ,
"requestssinceappopen" : 17 ,
"priorclicks" : 0
},
"idage" : 12960000
}
},
"at" : 1 ,
"tmax" : 2000 ,
"cur" : [
"USD"
],
"bcat" : [
"32" ,
"33"
],
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
},
"ext" : {
"omidpn" : "Google" ,
"omidpv" : "afma-sdk-i-v11.13.0"
}
},
"cattax" : 500 ,
"ext" : {
"google_query_id" : "ANy-zc08FK-h142dS00t819143TE021SS56r617vV09n09J3OaP354s93vIU300bzJ7e5cG2" ,
"fcap_scope" : 3 ,
"privacy_treatments" : {
"allow_user_data_collection" : 1
}
}
}
วิดีโอคั่นระหว่างหน้าในแอป
OpenRTB Protobuf
แสดงตัวอย่างให้ฉันดู
คำขอแบบเรียงอันดับ
id : "a7gs668pOD71593174WD18"
imp {
id : "1"
video {
mimes : "video/mp4"
linearity : LINEAR
maxduration : 45
w : 427
h : 875
startdelay : 0
playbackmethod : CLICK_TO_PLAY
pos : AD_POSITION_FULLSCREEN
companionad {
w : 427
h : 875
mimes : "text/css"
mimes : "image/png"
format {
w : 427
h : 875
}
vcm : true
}
api : MRAID_1
api : MRAID_2
companiontype : STATIC
companiontype : HTML
protocols : VAST_2_0
protocols : VAST_3_0
skip : false
placement : FLOATING_PLACEMENT
playbackend : COMPLETION_OR_USER
maxseq : 2
poddur : 40
plcmt : PLCMT_INTERSTITIAL
[ com . google . doubleclick . video ] {
inferredplcmt : PLCMT_INTERSTITIAL
}
}
displaymanager : "NextGenGoogleMobileAds-Android"
displaymanagerver : "1.1.1"
instl : true
tagid : "9072476229"
bidfloor : 0.01
bidfloorcur : "USD"
secure : true
exp : 3600
clickbrowser : true
metric {
type : "click_through_rate"
value : 0.14426924288272858
vendor : "EXCHANGE"
}
metric {
type : "video_completion_rate"
value : 0.42162033915519714
vendor : "EXCHANGE"
}
rwdd : true
[ com . google . doubleclick . imp ] {
billing_id : 61170857882
publisher_settings_list_id : 3465533324312870629
publisher_settings_list_id : 7019420503499415173
allowed_vendor_type : 0
allowed_vendor_type : 237
ampad : AMP_AD_NOT_ALLOWED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
jsver : "test-sdk_123456789"
highengagement : true
}
}
app {
name : "Test App"
ver : "272"
bundle : "com.google.testapp"
publisher {
id : "pub-3006071972218254"
[ com . google . doubleclick . publisher ] {
country : "BD"
}
}
content {
url : "https://www.google.com"
userrating : "3.7"
language : "en"
}
storeurl : "https://www.google.com"
}
device {
ua : "OMITTED"
geo {
lat : 0.0
lon : 0.0
country : "IND"
type : IP
utcoffset : 330
accuracy : 7811
[ com . google . doubleclick . geo ] {
geo_criteria_id : 9197649
}
}
ipv6 : "2409:408c:2892::"
carrier : "70227"
language : "en"
make : "Vivo"
model : "V2125"
os : "android"
osv : "12"
connectiontype : CELL_4G
devicetype : HIGHEND_PHONE
ifa : "a64564f8-330a-4152-9715-86c6873569bf"
w : 427
h : 875
pxratio : 1.688
sua {
browsers {
brand : "Mozilla"
version : "5"
version : "0"
}
browsers {
brand : "AppleWebKit"
version : "537"
version : "36"
}
platform {
brand : "Android"
version : "12"
}
mobile : true
bitness : "64"
model : "V2125"
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
metereddata : true
chargelevel : 0.4099999964237213
charging : false
diskspace : 4000
audioout : AUDIO_SPEAKER
ifa_type : "aaid"
scrollposx : 0
scrollposy : 0
}
}
user {
id : "743cB1sI4151248Ecs68w1qj5o8"
[ com . google . doubleclick . user ] {
session {
duration : 780
depth : 133
requestssinceappopen : 133
priorclicks : 0
}
idage : 38880000
}
}
at : FIRST_PRICE
tmax : 300
cur : "USD"
bcat : "3"
bcat : "4"
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
[ com . google . doubleclick . source ] {
omidpn : "Google"
omidpv : "afma-sdk-a-v1.1.1"
}
}
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537"
fcap_scope : FREQUENCY_CAPPING_SCOPE_DEVICE
privacy_treatments {
allow_user_data_collection : true
}
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "a7gs668pOD71593174WD18" ,
"imp" : [
{
"id" : "1" ,
"video" : {
"mimes" : [
"video/mp4"
],
"linearity" : 1 ,
"maxduration" : 45 ,
"w" : 427 ,
"h" : 875 ,
"startdelay" : 0 ,
"playbackmethod" : [
3
],
"pos" : 7 ,
"companionad" : [
{
"w" : 427 ,
"h" : 875 ,
"mimes" : [
"text/css" ,
"image/png"
],
"format" : [
{
"w" : 427 ,
"h" : 875
}
],
"vcm" : 1
}
],
"api" : [
3 ,
5
],
"companiontype" : [
1 ,
2
],
"protocols" : [
2 ,
3
],
"skip" : 0 ,
"placement" : 5 ,
"playbackend" : 1 ,
"maxseq" : 2 ,
"poddur" : 40 ,
"plcmt" : 3 ,
"ext" : {
"inferredplcmt" : 3
}
},
"displaymanager" : "NextGenGoogleMobileAds-Android" ,
"displaymanagerver" : "1.1.1" ,
"instl" : 1 ,
"tagid" : "9072476229" ,
"bidfloor" : 0.01 ,
"bidfloorcur" : "USD" ,
"secure" : 1 ,
"exp" : 3600 ,
"clickbrowser" : 1 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.14426924288272858 ,
"vendor" : "EXCHANGE"
},
{
"type" : "video_completion_rate" ,
"value" : 0.42162033915519714 ,
"vendor" : "EXCHANGE"
}
],
"rwdd" : 1 ,
"ext" : {
"billing_id" : [
"61170857882"
],
"publisher_settings_list_id" : [
"3465533324312870629" ,
"7019420503499415173"
],
"allowed_vendor_type" : [
0 ,
237
],
"ampad" : 2 ,
"excluded_creatives" : [
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
},
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
}
],
"creative_enforcement_settings" : {
"policy_enforcement" : 1 ,
"publisher_blocks_enforcement" : 1
},
"jsver" : "test-sdk_123456789" ,
"highengagement" : 1
}
}
],
"app" : {
"name" : "Test App" ,
"ver" : "272" ,
"bundle" : "com.google.testapp" ,
"publisher" : {
"id" : "pub-3006071972218254" ,
"ext" : {
"country" : "BD"
}
},
"content" : {
"url" : "https://www.google.com" ,
"userrating" : "3.7" ,
"language" : "en"
},
"storeurl" : "https://www.google.com"
},
"device" : {
"ua" : "OMITTED" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "IND" ,
"type" : 2 ,
"utcoffset" : 330 ,
"accuracy" : 7811 ,
"ext" : {
"geo_criteria_id" : 9197649
}
},
"ipv6" : "2409:408c:2892::" ,
"carrier" : "70227" ,
"language" : "en" ,
"make" : "Vivo" ,
"model" : "V2125" ,
"os" : "android" ,
"osv" : "12" ,
"connectiontype" : 6 ,
"devicetype" : 4 ,
"ifa" : "a64564f8-330a-4152-9715-86c6873569bf" ,
"w" : 427 ,
"h" : 875 ,
"pxratio" : 1.688 ,
"sua" : {
"browsers" : [
{
"brand" : "Mozilla" ,
"version" : [
"5" ,
"0"
]
},
{
"brand" : "AppleWebKit" ,
"version" : [
"537" ,
"36"
]
}
],
"platform" : {
"brand" : "Android" ,
"version" : [
"12"
]
},
"mobile" : 1 ,
"bitness" : "64" ,
"model" : "V2125" ,
"source" : 3
},
"ext" : {
"metereddata" : 1 ,
"chargelevel" : 0.41 ,
"charging" : 0 ,
"diskspace" : 4000 ,
"audioout" : 1 ,
"ifa_type" : "aaid" ,
"scrollposx" : 0 ,
"scrollposy" : 0
}
},
"user" : {
"id" : "743cB1sI4151248Ecs68w1qj5o8" ,
"ext" : {
"session" : {
"duration" : 780 ,
"depth" : 133 ,
"requestssinceappopen" : 133 ,
"priorclicks" : 0
},
"idage" : 38880000
}
},
"at" : 1 ,
"tmax" : 300 ,
"cur" : [
"USD"
],
"bcat" : [
"3" ,
"4"
],
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
},
"ext" : {
"omidpn" : "Google" ,
"omidpv" : "afma-sdk-a-v1.1.1"
}
},
"cattax" : 500 ,
"ext" : {
"google_query_id" : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537" ,
"fcap_scope" : 3 ,
"privacy_treatments" : {
"allow_user_data_collection" : 1
}
}
}
แอปที่มาพร้อมเครื่อง
Protobuf ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
คำขอที่จัดลำดับ
id : "a7gs668pOD71593174WD18"
imp {
id : "1"
displaymanager : "GoogleMobileAds-iOS"
displaymanagerver : "13.9.0"
tagid : "4721765816"
bidfloor : 0.69
bidfloorcur : "USD"
secure : true
native {
ver : "1.2"
api : MRAID_1
api : MRAID_2
request_native {
ver : "1.2"
assets {
id : 1
required : true
title {
len : 50
}
}
assets {
id : 2
required : true
data {
type : DESC
len : 150
}
}
assets {
id : 3
data {
type : CTATEXT
len : 15
}
}
assets {
id : 4
required : true
img {
type : MAIN
wmin : 1200
hmin : 627
}
}
assets {
id : 5
required : true
img {
type : ICON
wmin : 100
hmin : 100
}
}
assets {
id : 6
data {
type : RATING
len : 5
}
}
assets {
id : 7
data {
type : PRICE
len : 15
}
}
eventtrackers {
event : IMPRESSION
methods : IMG
}
eventtrackers {
event : OMID
methods : JS
}
privacy : true
}
}
exp : 3600
clickbrowser : true
metric {
type : "click_through_rate"
value : 0.0010945964604616165
vendor : "EXCHANGE"
}
metric {
type : "video_completion_rate"
value : 0.014000949449837208
vendor : "EXCHANGE"
}
[ com . google . doubleclick . imp ] {
billing_id : 94483515670
publisher_settings_list_id : 3092446200668875547
publisher_settings_list_id : 5367266321274470711
allowed_vendor_type : 0
allowed_vendor_type : 331
ampad : AMP_AD_NOT_ALLOWED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
skadn {
sourceapp : "com.google.testapp"
skadnetids : "7dRyc70v"
versions : "2.0"
versions : "2.1"
fidelities : STOREKIT_RENDERED_ADS
fidelities : VIEW_THROUGH_ADS
}
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
jsver : "test-sdk_123456789"
}
}
app {
name : "Test App"
ver : "15.3.6"
bundle : "com.google.testapp"
publisher {
id : "pub-3006071972218254"
[ com . google . doubleclick . publisher ] {
country : "JP"
}
}
content {
url : "https://www.google.com"
language : "ja"
}
storeurl : "https://www.google.com"
}
device {
ua : "OMITTED"
geo {
lat : 0.0
lon : 0.0
country : "JPN"
region : "JP-17"
city : "Komatsu"
type : IP
utcoffset : 540
accuracy : 10872
[ com . google . doubleclick . geo ] {
geo_criteria_id : 1009371
}
}
ipv6 : "2400:2653:f263::"
language : "ja"
make : "Apple"
model : "iPhone18,3"
os : "iOS"
osv : "26.5.2"
connectiontype : WIFI
devicetype : HIGHEND_PHONE
hwv : "iPhone18,3"
w : 402
h : 874
pxratio : 3.0
sua {
browsers {
brand : "Mozilla"
version : "5"
version : "0"
}
browsers {
brand : "AppleWebKit"
version : "605"
version : "1"
}
platform {
brand : "iPhone"
version : "26"
version : "5"
}
mobile : true
bitness : "64"
model : "iPhone"
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
atts : 2
audioout : AUDIO_SPEAKER
ifv : "792c0b4e-9c08-4a29-8ac4-c0134dd4df27"
scrollposx : 0
scrollposy : 0
}
}
user {
[ com . google . doubleclick . user ] {
session {
duration : 7
depth : 36
requestssinceappopen : 36
priorclicks : 0
}
}
}
at : FIRST_PRICE
tmax : 300
cur : "USD"
bcat : "32"
bcat : "33"
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
[ com . google . doubleclick . source ] {
omidpn : "Google"
omidpv : "afma-sdk-i-v13.9.0"
}
}
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537"
fcap_scope : FREQUENCY_CAPPING_SCOPE_APP
privacy_treatments {
allow_user_data_collection : true
}
}
OpenRTB JSON
แสดงตัวอย่างให้ฉันดู
{
"id" : "a7gs668pOD71593174WD18" ,
"imp" : [
{
"id" : "1" ,
"displaymanager" : "GoogleMobileAds-iOS" ,
"displaymanagerver" : "13.9.0" ,
"tagid" : "4721765816" ,
"bidfloor" : 0.69 ,
"bidfloorcur" : "USD" ,
"secure" : 1 ,
"native" : {
"ver" : "1.2" ,
"api" : [
3 ,
5
],
"request" : "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":50}},{\"id\":2,\"required\":1,\"data\":{\"type\":2,\"len\":150}},{\"id\":3,\"data\":{\"type\":12,\"len\":15}},{\"id\":4,\"required\":1,\"img\":{\"type\":3,\"wmin\":1200,\"hmin\":627}},{\"id\":5,\"required\":1,\"img\":{\"type\":1,\"wmin\":100,\"hmin\":100}},{\"id\":6,\"data\":{\"type\":3,\"len\":5}},{\"id\":7,\"data\":{\"type\":6,\"len\":15}}],\"eventtrackers\":[{\"event\":1,\"methods\":[1]},{\"event\":555,\"methods\":[2]}],\"privacy\":1}"
},
"exp" : 3600 ,
"clickbrowser" : 1 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.0010945964604616165 ,
"vendor" : "EXCHANGE"
},
{
"type" : "video_completion_rate" ,
"value" : 0.014000949449837208 ,
"vendor" : "EXCHANGE"
}
],
"ext" : {
"billing_id" : [
"94483515670"
],
"publisher_settings_list_id" : [
"3092446200668875547" ,
"5367266321274470711"
],
"allowed_vendor_type" : [
0 ,
331
],
"ampad" : 2 ,
"excluded_creatives" : [
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
},
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
}
],
"skadn" : {
"sourceapp" : "com.google.testapp" ,
"skadnetids" : [
"7dRyc70v"
],
"versions" : [
"2.0" ,
"2.1"
],
"fidelities" : [
1 ,
0
]
},
"creative_enforcement_settings" : {
"policy_enforcement" : 1 ,
"publisher_blocks_enforcement" : 1
},
"jsver" : "test-sdk_123456789"
}
}
],
"app" : {
"name" : "Test App" ,
"ver" : "15.3.6" ,
"bundle" : "com.google.testapp" ,
"publisher" : {
"id" : "pub-3006071972218254" ,
"ext" : {
"country" : "JP"
}
},
"content" : {
"url" : "https://www.google.com" ,
"language" : "ja"
},
"storeurl" : "https://www.google.com"
},
"device" : {
"ua" : "OMITTED" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "JPN" ,
"region" : "JP-17" ,
"city" : "Komatsu" ,
"type" : 2 ,
"utcoffset" : 540 ,
"accuracy" : 10872 ,
"ext" : {
"geo_criteria_id" : 1009371
}
},
"ipv6" : "2400:2653:f263::" ,
"language" : "ja" ,
"make" : "Apple" ,
"model" : "iPhone18,3" ,
"os" : "iOS" ,
"osv" : "26.5.2" ,
"connectiontype" : 2 ,
"devicetype" : 4 ,
"hwv" : "iPhone18,3" ,
"w" : 402 ,
"h" : 874 ,
"pxratio" : 3.0 ,
"sua" : {
"browsers" : [
{
"brand" : "Mozilla" ,
"version" : [
"5" ,
"0"
]
},
{
"brand" : "AppleWebKit" ,
"version" : [
"605" ,
"1"
]
}
],
"platform" : {
"brand" : "iPhone" ,
"version" : [
"26" ,
"5"
]
},
"mobile" : 1 ,
"bitness" : "64" ,
"model" : "iPhone" ,
"source" : 3
},
"ext" : {
"atts" : 2 ,
"audioout" : 1 ,
"ifv" : "792c0b4e-9c08-4a29-8ac4-c0134dd4df27" ,
"scrollposx" : 0 ,
"scrollposy" : 0
}
},
"user" : {
"ext" : {
"session" : {
"duration" : 7 ,
"depth" : 36 ,
"requestssinceappopen" : 36 ,
"priorclicks" : 0
}
}
},
"at" : 1 ,
"tmax" : 300 ,
"cur" : [
"USD"
],
"bcat" : [
"32" ,
"33"
],
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
},
"ext" : {
"omidpn" : "Google" ,
"omidpv" : "afma-sdk-i-v13.9.0"
}
},
"cattax" : 500 ,
"ext" : {
"google_query_id" : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537" ,
"fcap_scope" : 4 ,
"privacy_treatments" : {
"allow_user_data_collection" : 1
}
}
}
วิดีโอบนเว็บ
OpenRTB Protobuf
แสดงตัวอย่างให้ฉันดู
คำขอแบบเรียงอันดับ
id : "xljbvz426ttL3x4FOE2GHI"
imp {
id : "1"
video {
mimes : "video/mp4"
linearity : LINEAR
w : 300
h : 300
battr : VIDEO_IN_BANNER_USER_INITIATED
battr : VIDEO_IN_BANNER_AUTO_PLAY
playbackmethod : ENTER_SOUND_OFF
pos : BELOW_THE_FOLD
api : OMID_1
protocols : VAST_2_0
protocols : VAST_3_0
skip : true
skipafter : 5
placement : IN_ARTICLE_PLACEMENT
playbackend : LEAVING_OR_USER
plcmt : PLCMT_NO_CONTENT_STANDALONE
[ com . google . doubleclick . video ] {
inferredplcmt : PLCMT_NO_CONTENT_STANDALONE
}
}
displaymanager : "GOOGLE"
tagid : "1052440414"
bidfloor : 0.02
bidfloorcur : "USD"
secure : true
exp : 3600
metric {
type : "click_through_rate"
value : 0.0008394007454626262
vendor : "EXCHANGE"
}
metric {
type : "viewability"
value : 0.16
vendor : "EXCHANGE"
}
[ com . google . doubleclick . imp ] {
billing_id : 61339160186
billing_id : 19485139317
publisher_settings_list_id : 4926395220064122332
publisher_settings_list_id : 2170079197629701072
allowed_vendor_type : 0
ampad : AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
buyer_generated_request_data {
data : "Test Data"
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
allowed_restricted_category : 33
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
gpid : "/7481295/example.com/homepage/image_top"
adlocx : 16
adlocy : 3844
iframeorigin : IFRAME_ORIGIN_CROSS_DOMAIN
}
}
site {
cat : "IAB1-4"
cat : "IAB11"
pagecat : "IAB1-4"
page : "https://www.google.com"
publisher {
id : "pub-1111111111111111"
[ com . google . doubleclick . publisher ] {
country : "US"
}
}
content {
language : "en"
}
mobile : true
cattax : IAB_CONTENT_1_0
[ com . google . doubleclick . site ] {
amp : DIALECT_HTML
page_visibility : VISIBILITY_STATE_VISIBLE
}
}
device {
ua : "OMITTED"
geo {
lat : 0.0
lon : 0.0
country : "USA"
region : "TX"
metro : "641"
zip : "78213"
type : IP
utcoffset : - 300
accuracy : 2497
[ com . google . doubleclick . geo ] {
geo_criteria_id : 9028054
}
}
ipv6 : "2600:1700:8e70:a606:997b:b74b:e386:d606"
language : "en"
make : "Samsung"
model : "sm-s901u"
os : "android"
osv : "16"
devicetype : HIGHEND_PHONE
w : 360
h : 780
pxratio : 3.0
sua {
browsers {
brand : "Not:A-Brand"
version : "8"
version : "0"
}
browsers {
brand : "Chromium"
version : "156"
version : "0"
}
platform {
brand : "Android"
version : "16"
version : "0"
}
mobile : true
model : "SM-S901U"
source : CLIENT_HINTS_HIGH_ENTROPY
}
[ com . google . doubleclick . device ] {
chargelevel : 0.4000000059604645
charging : false
memory : 8192
scrollposx : 0
scrollposy : 856
}
}
user {
buyeruid : "868R674mhtSh1Q0820Se707969bigg7W"
customdata : "262F37r207u0H1dgJM3ok893UU0Bv87a50n6N2mNm0353wRr"
[ com . google . doubleclick . user ] {
eids {
source : "OMITTED_SOURCE"
uids {
id : "OMITTED_ID"
}
}
}
}
at : FIRST_PRICE
tmax : 500
cur : "USD"
bcat : "4"
bcat : "5"
regs {
gpp : "OMITTED"
gpp_sid : USPV1
gpp_sid : USNAT
}
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
}
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid_request ] {
bid_feedback {
request_id : "l72n4cr8T4yhC7i3gkl6O2"
creative_status_code : 80
event_notification_token {
payload : "token"
}
buyer_creative_id : "test_creative_id_578959"
minimum_bid_to_win : 3.58
}
google_query_id : "ANy-z88L87-64Z116olgj51Z973322723c7h971w813985fd8o3iw2N13ZVX453i2900b23H"
fcap_scope : FREQUENCY_CAPPING_SCOPE_NONE
privacy_treatments {
ip : IP_FULL
allow_user_data_collection : true
}
}
JSON ของ OpenRTB
แสดงตัวอย่างให้ฉันดู
{
"id" : "xljbvz426ttL3x4FOE2GHI" ,
"imp" : [
{
"id" : "1" ,
"video" : {
"mimes" : [
"video/mp4"
],
"linearity" : 1 ,
"w" : 300 ,
"h" : 300 ,
"battr" : [
7 ,
6
],
"playbackmethod" : [
6
],
"pos" : 3 ,
"api" : [
7
],
"protocols" : [
2 ,
3
],
"skip" : 1 ,
"skipafter" : 5 ,
"placement" : 3 ,
"playbackend" : 2 ,
"plcmt" : 4 ,
"ext" : {
"inferredplcmt" : 4
}
},
"displaymanager" : "GOOGLE" ,
"tagid" : "1052440414" ,
"bidfloor" : 0.02 ,
"bidfloorcur" : "USD" ,
"secure" : 1 ,
"exp" : 3600 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.0008394007454626262 ,
"vendor" : "EXCHANGE"
},
{
"type" : "viewability" ,
"value" : 0.16 ,
"vendor" : "EXCHANGE"
}
],
"ext" : {
"billing_id" : [
"61339160186" ,
"19485139317"
],
"publisher_settings_list_id" : [
"4926395220064122332" ,
"2170079197629701072"
],
"allowed_vendor_type" : [
0
],
"ampad" : 3 ,
"buyer_generated_request_data" : [
{
"data" : "Test Data"
}
],
"excluded_creatives" : [
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
},
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
}
],
"allowed_restricted_category" : [
33
],
"creative_enforcement_settings" : {
"policy_enforcement" : 2 ,
"publisher_blocks_enforcement" : 1
},
"gpid" : "/7481295/example.com/homepage/image_top" ,
"adlocx" : 16 ,
"adlocy" : 3844 ,
"iframeorigin" : 2
}
}
],
"site" : {
"cat" : [
"IAB1-4" ,
"IAB11"
],
"pagecat" : [
"IAB1-4"
],
"page" : "https://www.google.com" ,
"publisher" : {
"id" : "pub-1111111111111111" ,
"ext" : {
"country" : "US"
}
},
"content" : {
"language" : "en"
},
"mobile" : 1 ,
"cattax" : 1 ,
"ext" : {
"amp" : 0 ,
"page_visibility" : 1
}
},
"device" : {
"ua" : "OMITTED" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "USA" ,
"region" : "TX" ,
"metro" : "641" ,
"zip" : "78213" ,
"type" : 2 ,
"utcoffset" : - 300 ,
"accuracy" : 2497 ,
"ext" : {
"geo_criteria_id" : 9028054
}
},
"ipv6" : "2600:1700:8e70:a606:997b:b74b:e386:d606" ,
"language" : "en" ,
"make" : "Samsung" ,
"model" : "sm-s901u" ,
"os" : "android" ,
"osv" : "16" ,
"devicetype" : 4 ,
"w" : 360 ,
"h" : 780 ,
"pxratio" : 3.0 ,
"sua" : {
"browsers" : [
{
"brand" : "Not:A-Brand" ,
"version" : [
"8" ,
"0"
]
},
{
"brand" : "Chromium" ,
"version" : [
"156" ,
"0"
]
}
],
"platform" : {
"brand" : "Android" ,
"version" : [
"16" ,
"0"
]
},
"mobile" : 1 ,
"model" : "SM-S901U" ,
"source" : 2
},
"ext" : {
"chargelevel" : 0.4 ,
"charging" : 0 ,
"memory" : 8192 ,
"scrollposx" : 0 ,
"scrollposy" : 856
}
},
"user" : {
"buyeruid" : "868R674mhtSh1Q0820Se707969bigg7W" ,
"customdata" : "262F37r207u0H1dgJM3ok893UU0Bv87a50n6N2mNm0353wRr" ,
"ext" : {
"eids" : [
{
"source" : "OMITTED_SOURCE" ,
"uids" : [
{
"id" : "OMITTED_ID"
}
]
}
]
}
},
"at" : 1 ,
"tmax" : 500 ,
"cur" : [
"USD"
],
"bcat" : [
"4" ,
"5"
],
"regs" : {
"gpp" : "OMITTED" ,
"gpp_sid" : [
6 ,
7
]
},
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
},
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
}
},
"cattax" : 500 ,
"ext" : {
"bid_feedback" : [
{
"request_id" : "l72n4cr8T4yhC7i3gkl6O2" ,
"creative_status_code" : 80 ,
"event_notification_token" : {
"payload" : "token"
},
"buyer_creative_id" : "test_creative_id_578959" ,
"minimum_bid_to_win" : 3.58
}
],
"google_query_id" : "ANy-z88L87-64Z116olgj51Z973322723c7h971w813985fd8o3iw2N13ZVX453i2900b23H" ,
"fcap_scope" : 1 ,
"privacy_treatments" : {
"ip" : 1 ,
"allow_user_data_collection" : 1
}
}
}
แบนเนอร์เว็บบนอุปกรณ์เคลื่อนที่สำหรับผู้เสนอราคา Exchange
OpenRTB Protobuf
แสดงตัวอย่างให้ฉันดู
คำขอแบบเรียงอันดับ
id : "a7gs668pOD71593174WD18"
imp {
id : "1"
banner {
w : 970
h : 90
pos : ABOVE_THE_FOLD
format {
w : 970
h : 90
}
format {
w : 950
h : 90
}
[ com . google . doubleclick . banner_ext ] {
flexslot {
wmin : 728
wmax : 970
hmin : 90
hmax : 90
}
}
}
tagid : "3889241961"
bidfloor : 0.01
bidfloorcur : "USD"
secure : true
exp : 3600
metric {
type : "click_through_rate"
value : 0.0011694123968482018
vendor : "EXCHANGE"
}
metric {
type : "viewability"
value : 0.06
vendor : "EXCHANGE"
}
[ com . google . doubleclick . imp ] {
billing_id : 79775275767
publisher_settings_list_id : 8825410584249136395
publisher_settings_list_id : 4368309502124126995
allowed_vendor_type : 0
dfp_ad_unit_code : "/9908766/google/test"
ampad : AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
excluded_creatives {
buyer_creative_id : "EXCLUDED_BUYER_CREATIVE_ID"
}
open_bidding {
is_open_bidding : true
}
allowed_restricted_category : 32
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
adlocx : 283
adlocy : 1109
iframeorigin : IFRAME_ORIGIN_CROSS_DOMAIN
}
}
site {
cat : "IAB1-1"
cat : "IAB12"
pagecat : "IAB11"
pagecat : "IAB12"
page : "https://www.google.com"
publisher {
id : "pub-1111111111111111"
[ com . google . doubleclick . publisher ] {
country : "BG"
}
}
content {
language : "tr"
}
cattax : IAB_CONTENT_1_0
[ com . google . doubleclick . site ] {
amp : DIALECT_HTML
page_visibility : VISIBILITY_STATE_HIDDEN
ntype : NAVIGATION_TYPE_RELOAD
}
}
device {
ua : "OMITTED"
ip : "212.174.9.0"
geo {
lat : 0.0
lon : 0.0
country : "TUR"
region : "TR-34"
city : "Istanbul"
zip : "34149"
type : IP
utcoffset : 180
accuracy : 1973
[ com . google . doubleclick . geo ] {
geo_criteria_id : 9073387
}
}
language : "tr"
os : "Windows"
devicetype : PERSONAL_COMPUTER
w : 1536
h : 864
pxratio : 1.25
sua {
browsers {
brand : "Google Chrome"
version : "155"
version : "0"
}
browsers {
brand : "Chromium"
version : "155"
version : "0"
}
platform {
brand : "Windows"
version : "10"
version : "0"
}
mobile : false
architecture : "x86"
bitness : "64"
source : CLIENT_HINTS_HIGH_ENTROPY
}
[ com . google . doubleclick . device ] {
memory : 8192
scrollposx : 0
scrollposy : 500
}
}
user {
id : "0i00L70sOg40C0338Oy67QTn970"
buyeruid : "7419Fp33ZjKqfO762L6A1260sE283I22"
customdata : "dk9A1326Z0gHs1816L4p6b8tb46zS520b3T34Q1j1uKF26k5"
[ com . google . doubleclick . user ] {
idage : 7776000
}
}
at : FIRST_PRICE
tmax : 350
cur : "USD"
bcat : "IAB7-39"
bcat : "IAB7-44"
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
}
cattax : IAB_CONTENT_1_0
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537"
fcap_scope : FREQUENCY_CAPPING_SCOPE_BROWSER
}
OpenRTB JSON
แสดงตัวอย่างให้ฉันดู
{
"id" : "a7gs668pOD71593174WD18" ,
"imp" : [
{
"id" : "1" ,
"banner" : {
"w" : 970 ,
"h" : 90 ,
"pos" : 1 ,
"format" : [
{
"w" : 970 ,
"h" : 90
},
{
"w" : 950 ,
"h" : 90
}
],
"ext" : {
"flexslot" : {
"wmin" : 728 ,
"wmax" : 970 ,
"hmin" : 90 ,
"hmax" : 90
}
}
},
"tagid" : "3889241961" ,
"bidfloor" : 0.01 ,
"bidfloorcur" : "USD" ,
"secure" : 1 ,
"exp" : 3600 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.0011694123968482018 ,
"vendor" : "EXCHANGE"
},
{
"type" : "viewability" ,
"value" : 0.06 ,
"vendor" : "EXCHANGE"
}
],
"ext" : {
"billing_id" : [
"79775275767"
],
"publisher_settings_list_id" : [
"8825410584249136395" ,
"4368309502124126995"
],
"allowed_vendor_type" : [
0
],
"dfp_ad_unit_code" : "/9908766/google/test" ,
"ampad" : 3 ,
"excluded_creatives" : [
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
},
{
"buyer_creative_id" : "EXCLUDED_BUYER_CREATIVE_ID"
}
],
"open_bidding" : {
"is_open_bidding" : 1
},
"allowed_restricted_category" : [
32
],
"creative_enforcement_settings" : {
"policy_enforcement" : 1 ,
"publisher_blocks_enforcement" : 1
},
"adlocx" : 283 ,
"adlocy" : 1109 ,
"iframeorigin" : 2
}
}
],
"site" : {
"cat" : [
"IAB1-1" ,
"IAB12"
],
"pagecat" : [
"IAB11" ,
"IAB12"
],
"page" : "https://www.google.com" ,
"publisher" : {
"id" : "pub-1111111111111111" ,
"ext" : {
"country" : "BG"
}
},
"content" : {
"language" : "tr"
},
"cattax" : 1 ,
"ext" : {
"amp" : 0 ,
"page_visibility" : 2 ,
"ntype" : 2
}
},
"device" : {
"ua" : "OMITTED" ,
"ip" : "212.174.9.0" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "TUR" ,
"region" : "TR-34" ,
"city" : "Istanbul" ,
"zip" : "34149" ,
"type" : 2 ,
"utcoffset" : 180 ,
"accuracy" : 1973 ,
"ext" : {
"geo_criteria_id" : 9073387
}
},
"language" : "tr" ,
"os" : "Windows" ,
"devicetype" : 2 ,
"w" : 1536 ,
"h" : 864 ,
"pxratio" : 1.25 ,
"sua" : {
"browsers" : [
{
"brand" : "Google Chrome" ,
"version" : [
"155" ,
"0"
]
},
{
"brand" : "Chromium" ,
"version" : [
"155" ,
"0"
]
}
],
"platform" : {
"brand" : "Windows" ,
"version" : [
"10" ,
"0"
]
},
"mobile" : 0 ,
"architecture" : "x86" ,
"bitness" : "64" ,
"source" : 2
},
"ext" : {
"memory" : 8192 ,
"scrollposx" : 0 ,
"scrollposy" : 500
}
},
"user" : {
"id" : "0i00L70sOg40C0338Oy67QTn970" ,
"buyeruid" : "7419Fp33ZjKqfO762L6A1260sE283I22" ,
"customdata" : "dk9A1326Z0gHs1816L4p6b8tb46zS520b3T34Q1j1uKF26k5" ,
"ext" : {
"idage" : 7776000
}
},
"at" : 1 ,
"tmax" : 350 ,
"cur" : [
"USD"
],
"bcat" : [
"IAB7-39" ,
"IAB7-44"
],
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
}
},
"cattax" : 1 ,
"ext" : {
"google_query_id" : "ANy-zL23dM-K888C926iz54pL02I4wa4sXX04N9233701g8h787afvX78G815DcjFi573537" ,
"fcap_scope" : 2
}
}
OpenRTB Protobuf
แสดงตัวอย่างให้ฉันดู
คำขอที่เรียงอันดับ
id : "S2qA4hJS1n221Vw73up012"
imp {
id : "1"
video {
mimes : "video/mp4"
linearity : LINEAR
w : 300
h : 600
battr : VIDEO_IN_BANNER_AUTO_PLAY
battr : VIDEO_IN_BANNER_USER_INITIATED
playbackmethod : ENTER_SOUND_OFF
pos : ABOVE_THE_FOLD
api : OMID_1
protocols : VAST_2_0
protocols : VAST_3_0
skip : true
skipafter : 5
placement : IN_ARTICLE_PLACEMENT
playbackend : LEAVING_OR_USER
plcmt : PLCMT_NO_CONTENT_STANDALONE
[ com . google . doubleclick . video ] {
inferredplcmt : PLCMT_NO_CONTENT_STANDALONE
embeddedoffsite : true
}
}
displaymanager : "GOOGLE"
tagid : "7858457472"
bidfloor : 1.0
bidfloorcur : "JPY"
secure : true
native {
ver : "1.2"
battr : VIDEO_IN_BANNER_USER_INITIATED
battr : VIDEO_IN_BANNER_AUTO_PLAY
request_native {
ver : "1.2"
assets {
id : 1
required : true
title {
len : 50
}
}
assets {
id : 2
data {
type : CTATEXT
len : 15
}
}
assets {
id : 3
required : true
data {
type : SPONSORED
len : 25
}
}
assets {
id : 4
required : true
img {
type : MAIN
wmin : 1200
hmin : 627
}
}
assets {
id : 5
img {
type : ICON
}
}
eventtrackers {
event : IMPRESSION
methods : IMG
}
privacy : true
[ com . google . doubleclick . native_ext ] {
style_height : 250
style_width : 300
pos : ABOVE_THE_FOLD
}
}
}
exp : 3600
metric {
type : "click_through_rate"
value : 0.0001810694084269926
vendor : "EXCHANGE"
}
metric {
type : "viewability"
value : 0.89
vendor : "EXCHANGE"
}
[ com . google . doubleclick . imp ] {
billing_id : 89729918050
billing_id : 53896910998
publisher_settings_list_id : 6828753821632622411
publisher_settings_list_id : 9406265749274240546
allowed_vendor_type : 0
ampad : AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
buyer_generated_request_data {
data : "Test Data"
}
buyer_generated_request_data {
data : "Test Data"
}
allowed_restricted_category : 32
creative_enforcement_settings {
policy_enforcement : POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement : PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
adlocx : 45
adlocy : 352
iframeorigin : IFRAME_ORIGIN_SAME_DOMAIN
}
}
site {
pagecat : "IAB5"
pagecat : "IAB5-1"
page : "https://www.google.com"
publisher {
id : "pub-1111111111111111"
[ com . google . doubleclick . publisher ] {
country : "JP"
}
}
content {
language : "ja"
}
mobile : true
cattax : IAB_CONTENT_1_0
[ com . google . doubleclick . site ] {
amp : DIALECT_HTML
page_visibility : VISIBILITY_STATE_VISIBLE
}
}
device {
ua : "OMITTED"
ip : "122.152.77.121"
geo {
lat : 0.0
lon : 0.0
country : "JPN"
region : "JP-44"
city : "Oita"
type : IP
utcoffset : 540
accuracy : 12627
[ com . google . doubleclick . geo ] {
geo_criteria_id : 1009769
}
}
language : "ja"
make : "Apple"
model : "iphone"
os : "iOS"
osv : "18.7"
devicetype : HIGHEND_PHONE
w : 390
h : 844
pxratio : 3.0
sua {
browsers {
brand : "Mozilla"
version : "5"
version : "0"
}
browsers {
brand : "AppleWebKit"
version : "605"
version : "1"
}
platform {
brand : "iPhone"
version : "18"
version : "7"
}
mobile : true
bitness : "64"
model : "iPhone"
source : USER_AGENT_STRING
}
[ com . google . doubleclick . device ] {
scrollposx : 0
scrollposy : 0
}
}
user {
eids {
source : "doubleclick.net"
uids {
id : "OMITTED_1P_WEB_ID"
[ com . google . doubleclick . uids ] {
stype : "sco"
}
}
}
[ com . google . doubleclick . user ] {
eids {
source : "OMITTED_SOURCE"
uids {
id : "OMITTED_ID"
}
}
eids {
source : "OMITTED_SOURCE"
uids {
id : "OMITTED_ID"
}
}
}
}
at : FIRST_PRICE
tmax : 350
cur : "JPY"
cur : "USD"
bcat : "3"
bcat : "4"
source {
schain {
complete : true
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
nodes {
asi : "testssp.com"
sid : "pub-1111111111111111"
hp : true
}
ver : "1.0"
}
}
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid_request ] {
google_query_id : "ANy-z07rzd-08kr3H9d1ctxT230uFK1H736A292Mr9P723t3R3v3tm00N97hW5qy405ww4T8"
fcap_scope : FREQUENCY_CAPPING_SCOPE_NONE
privacy_treatments {
ip : IP_FULL
allow_user_data_collection : true
}
}
OpenRTB JSON
แสดงตัวอย่างให้ฉันดู
{
"id" : "S2qA4hJS1n221Vw73up012" ,
"imp" : [
{
"id" : "1" ,
"video" : {
"mimes" : [
"video/mp4"
],
"linearity" : 1 ,
"w" : 300 ,
"h" : 600 ,
"battr" : [
6 ,
7
],
"playbackmethod" : [
6
],
"pos" : 1 ,
"api" : [
7
],
"protocols" : [
2 ,
3
],
"skip" : 1 ,
"skipafter" : 5 ,
"placement" : 3 ,
"playbackend" : 2 ,
"plcmt" : 4 ,
"ext" : {
"inferredplcmt" : 4 ,
"embeddedoffsite" : 1
}
},
"displaymanager" : "GOOGLE" ,
"tagid" : "7858457472" ,
"bidfloor" : 1.0 ,
"bidfloorcur" : "JPY" ,
"secure" : 1 ,
"native" : {
"ver" : "1.2" ,
"battr" : [
7 ,
6
],
"request" : "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":50}},{\"id\":2,\"data\":{\"type\":12,\"len\":15}},{\"id\":3,\"required\":1,\"data\":{\"type\":1,\"len\":25}},{\"id\":4,\"required\":1,\"img\":{\"type\":3,\"wmin\":1200,\"hmin\":627}},{\"id\":5,\"img\":{\"type\":1}}],\"eventtrackers\":[{\"event\":1,\"methods\":[1]}],\"privacy\":1,\"ext\":{\"style_height\":250,\"style_width\":300,\"pos\":1}}"
},
"exp" : 3600 ,
"metric" : [
{
"type" : "click_through_rate" ,
"value" : 0.0001810694084269926 ,
"vendor" : "EXCHANGE"
},
{
"type" : "viewability" ,
"value" : 0.89 ,
"vendor" : "EXCHANGE"
}
],
"ext" : {
"billing_id" : [
"89729918050" ,
"53896910998"
],
"publisher_settings_list_id" : [
"6828753821632622411" ,
"9406265749274240546"
],
"allowed_vendor_type" : [
0
],
"ampad" : 3 ,
"buyer_generated_request_data" : [
{
"data" : "Test Data"
},
{
"data" : "Test Data"
}
],
"allowed_restricted_category" : [
32
],
"creative_enforcement_settings" : {
"policy_enforcement" : 2 ,
"publisher_blocks_enforcement" : 1
},
"adlocx" : 45 ,
"adlocy" : 352 ,
"iframeorigin" : 1
}
}
],
"site" : {
"pagecat" : [
"IAB5" ,
"IAB5-1"
],
"page" : "https://www.google.com" ,
"publisher" : {
"id" : "pub-1111111111111111" ,
"ext" : {
"country" : "JP"
}
},
"content" : {
"language" : "ja"
},
"mobile" : 1 ,
"cattax" : 1 ,
"ext" : {
"amp" : 0 ,
"page_visibility" : 1
}
},
"device" : {
"ua" : "OMITTED" ,
"ip" : "122.152.77.121" ,
"geo" : {
"lat" : 0.0 ,
"lon" : 0.0 ,
"country" : "JPN" ,
"region" : "JP-44" ,
"city" : "Oita" ,
"type" : 2 ,
"utcoffset" : 540 ,
"accuracy" : 12627 ,
"ext" : {
"geo_criteria_id" : 1009769
}
},
"language" : "ja" ,
"make" : "Apple" ,
"model" : "iphone" ,
"os" : "iOS" ,
"osv" : "18.7" ,
"devicetype" : 4 ,
"w" : 390 ,
"h" : 844 ,
"pxratio" : 3.0 ,
"sua" : {
"browsers" : [
{
"brand" : "Mozilla" ,
"version" : [
"5" ,
"0"
]
},
{
"brand" : "AppleWebKit" ,
"version" : [
"605" ,
"1"
]
}
],
"platform" : {
"brand" : "iPhone" ,
"version" : [
"18" ,
"7"
]
},
"mobile" : 1 ,
"bitness" : "64" ,
"model" : "iPhone" ,
"source" : 3
},
"ext" : {
"scrollposx" : 0 ,
"scrollposy" : 0
}
},
"user" : {
"eids" : [
{
"source" : "doubleclick.net" ,
"uids" : [
{
"id" : "OMITTED_1P_WEB_ID" ,
"ext" : {
"stype" : "sco"
}
}
]
}
],
"ext" : {
"eids" : [
{
"source" : "OMITTED_SOURCE" ,
"uids" : [
{
"id" : "OMITTED_ID"
}
]
},
{
"source" : "OMITTED_SOURCE" ,
"uids" : [
{
"id" : "OMITTED_ID"
}
]
}
]
}
},
"at" : 1 ,
"tmax" : 350 ,
"cur" : [
"JPY" ,
"USD"
],
"bcat" : [
"3" ,
"4"
],
"source" : {
"schain" : {
"complete" : 1 ,
"nodes" : [
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
},
{
"asi" : "testssp.com" ,
"sid" : "pub-1111111111111111" ,
"hp" : 1
}
],
"ver" : "1.0"
}
},
"cattax" : 500 ,
"ext" : {
"google_query_id" : "ANy-z07rzd-08kr3H9d1ctxT230uFK1H736A292Mr9P723t3R3v3tm00N97hW5qy405ww4T8" ,
"fcap_scope" : 1 ,
"privacy_treatments" : {
"ip" : 1 ,
"allow_user_data_collection" : 1
}
}
}