โฆษณา SDK ของผู้ซื้อใช้ครีเอทีฟโฆษณาที่แสดงผลโดย SDK ของคุณเอง
พื้นที่โฆษณาในแอปบนอุปกรณ์เคลื่อนที่จากผู้เผยแพร่โฆษณาที่ผสานรวมการเสนอราคา
อะแดปเตอร์เข้าไปในแอปของตนสามารถยอมรับราคาเสนอ
ด้วยรูปแบบโฆษณาที่แสดงผลด้วย SDK ของผู้ซื้อ วิธีแสดงผลจะขึ้นอยู่กับ
การติดตั้งใช้งาน SDK และ SDKRenderedAd
ที่คุณส่งใน
การเสนอราคาตอบ
คุณสามารถเสนอราคารวมทั้งโฆษณาที่แสดงโดย SDK ของผู้ซื้อหรือโฆษณาอื่นๆ รูปแบบ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google รองรับหรือไม่ ที่มีการกรองราคาเสนอทั้งสองออก
ข้อกำหนด
โฆษณา SDK ของผู้ซื้อจะพร้อมใช้งานสำหรับผู้ซื้อที่ได้รับอนุมัติ รูปแบบนี้ต้องมีส่วนเพิ่มเติม ความพยายามของคุณ และผู้เผยแพร่โฆษณา ติดต่อผู้จัดการลูกค้าด้านเทคนิคของคุณเพื่อ กำหนดค่าบัญชีของคุณสำหรับโฆษณา SDK ของผู้ซื้อ จากนั้นคุณจะสามารถใช้การเสนอราคาแบบ อะแดปเตอร์ที่ช่วยให้ SDK สามารถ สื่อสารกับ Google Mobile Ads SDK ผู้เผยแพร่โฆษณาต้องผสานรวม SDK และอะแดปเตอร์ไปยังแอปบนอุปกรณ์เคลื่อนที่
เราขอแนะนำให้คุณส่งครีเอทีฟโฆษณาสำหรับ รีวิว ก่อนที่จะรวมไว้ในการเสนอราคาตอบ ติดต่อผู้จัดการลูกค้าด้านเทคนิคของคุณ หากคุณไม่ทราบประเภทโฆษณาขณะเสนอราคา
หากคำขอราคาเสนอรองรับรูปแบบโฆษณานี้ คุณสามารถระบุโฆษณาที่แสดงผล
กับ SDK โดยการตั้งค่าช่อง sdk_rendered_ad
ในราคาเสนอ
คำตอบ
คำขอราคาเสนอ
คำขอราคาเสนอสำหรับพื้นที่โฆษณาในแอปบนอุปกรณ์เคลื่อนที่มีรายละเอียดเกี่ยวกับ SDK และ อะแดปเตอร์ในแอปของผู้เผยแพร่โฆษณาซึ่งสามารถใช้เพื่อแสดงผลใน ฟิลด์:
- รหัส SDK
คุณใช้คำขอราคาเสนอเพื่อดู
id
ที่คุณต้องระบุไว้ในราคาเสนอได้ โฆษณาที่แสดงผลโดย SDK ของผู้ซื้อโปรดดูช่องต่อไปนี้
- OpenRTB:
BidRequest.app.ext.installed_sdk
- โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว):
BidRequest.mobile.installed_sdk
- OpenRTB:
ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความ
InstalledSdk
ได้ใน OpenRTB และ Google คู่มือโปรโตคอล- การแมปหน่วยโฆษณา
คุณใช้คำขอราคาเสนอเพื่ออ่านการแมปหน่วยโฆษณาที่ตรงกับช่องโฆษณาได้
โปรดดูช่องต่อไปนี้
- OpenRTB:
BidRequest.imp.ext.ad_unit_mapping
- โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว):
BidRequest.AdSlot.ad_unit_mapping
- OpenRTB:
คุณดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็กต์
AdUnitMapping
ได้ใน OpenRTB และ Google คู่มือโปรโตคอล- สัญญาณที่ปลอดภัย
ผู้เผยแพร่โฆษณาสามารถแชร์สัญญาณที่ปลอดภัยกับผู้เสนอราคาได้ คุณสามารถอ่านได้จาก ออบเจ็กต์
BuyerGeneratedRequestData
ของ OpenRTB หรือจาก Google ที่เลิกใช้งานแล้ว ออบเจ็กต์SecureSignal
ของโปรโตคอล RTBโปรดดูช่องต่อไปนี้
- OpenRTB:
BidRequest.imp.ext.buyer_generated_request_data.data
- โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว):
BidRequest.AdSlot.SecureSignal.data
- OpenRTB:
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีแสดงสัญญาณที่ปลอดภัยได้ในส่วน OpenRTB และ Google คู่มือโปรโตคอล
- คำขอทดสอบ
คุณสามารถอ่านฟิลด์ "คำขอทดสอบ" เพื่อทำความเข้าใจว่าคำขอราคาเสนอ การทดสอบ
โปรดดูช่องต่อไปนี้
- OpenRTB:
BidRequest.test
- โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว):
BidRequest.is_test
- OpenRTB:
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับช่อง
Test
ได้ใน OpenRTB และ Google คู่มือโปรโตคอล
ตัวอย่างคำขอราคาเสนอ
id: "<bid_request_id>"
imp {
id: "1"
banner {
w: 320
h: 50
...
}
...
adx_ext {
...
ad_unit_mapping {
keyvals {
key: "key_1"
value: "value_1"
}
keyvals {
key: "key_2"
value: "value_2"
}
...
format: FORMAT_BANNER
}
}
}
app {
...
adx_ext {
installed_sdk {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
sdk_version {
major: 1
minor: 2
micro: 30
}
adapter_version {
major: 1
minor: 2
micro: 3000
}
}
installed_sdk {
...
}
...
}
}
device {
...
}
user {
...
}
adx_ext {
eids {
source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
uids {
id: "<partner_signal_string>"
}
}
}
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
google_query_id: "<query_string>"
...
}
การเสนอราคาตอบ
การเสนอราคาตอบต้องระบุช่องต่อไปนี้
- OpenRTB:
BidResponse.seatbid.bid.adomain
BidResponse.seatbid.bid.ext.billing_id
BidResponse.seatbid.bid.crid
BidResponse.seatbid.bid.w
BidResponse.seatbid.bid.h
- โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว):
BidResponse.Ad.click_through_url
BidResponse.Ad.AdSlot.billing_id
BidResponse.Ad.buyer_creative_id
BidResponse.Ad.width
BidResponse.Ad.height
นอกจากนี้ การเสนอราคาตอบต้องมี SdkRenderedAd
ที่มีฟิลด์
ดังต่อไปนี้:
- รหัส SDK
ใช้ช่อง
id
เพื่อระบุรหัสสำหรับ SDK ที่จะแสดงโฆษณาคุณดูรหัสในคำขอราคาเสนอได้พร้อมกับช่องต่อไปนี้
- OpenRTB:
BidRequest.app.ext.installed_sdk
- โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว):
BidRequest.mobile.installed_sdk
- OpenRTB:
ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความ
InstalledSdk
ได้ใน OpenRTB และ Google คู่มือโปรโตคอล- โฆษณาที่ประกาศ
ใช้ช่อง
declared_ad
เพื่อระบุครีเอทีฟโฆษณาที่เป็นไปตามคำขอราคาเสนอCreativeEnforcementSettings
และเป็นตัวแทนของ ในการแสดงผล เหลือเพียงhtml_snippet
,video_url
,video_vast_xml
หรือ ควรป้อนข้อมูลnative_response
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad
- โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว):
BidResponse.ad.sdk_rendered_ad.declared_ad
หากคุณไม่ได้ป้อน
declared_ad
เราจะตรวจสอบครีเอทีฟโฆษณาและ ระบบจะกรองราคาเสนอทั้งหมด ที่มีครีเอทีฟโฆษณาออกจากการประมูล- OpenRTB:
- ข้อมูลการแสดงผล
ใช้ฟิลด์
rendering_data
เพื่อให้ข้อมูลสำหรับ SDK ของผู้ซื้อ ใช้เพื่อแสดงโฆษณา- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
- โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว):
BidResponse.ad.sdk_rendered_ad.rendering_data
- OpenRTB:
ราคาเสนอเพื่อวางโฆษณา SDK ของผู้ซื้อต้องระบุครีเอทีฟโฆษณาใน
declared_ad
ด้วย โฆษณาที่ประกาศต้องแสดงถึงrendering_data
อย่างถูกต้องต่อไปนี้คือตัวอย่างออบเจ็กต์
SdkRenderedAd
{ "id": "1234567", "rendering_data": "\xd58...,\xd4\x89\xd\xf9", "declared_ad": { "html_snippet": "<iframe src=\"https://example.com/ads?id=123& curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", } }
เราขอแนะนำให้ใช้ Real-time Bidding API เพื่อส่งครีเอทีฟโฆษณาสำหรับ รีวิว ก่อนที่จะรวมไว้ในการเสนอราคาตอบ
โปรดดู
Google และ
คู่มือโปรโตคอล OpenRTB
เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับฟิลด์ SdkRenderedAd
ตัวอย่างการเสนอราคาตอบ
ต่อไปนี้คือตัวอย่างการเสนอราคาตอบสำหรับโฆษณาแต่ละรูปแบบ
แบนเนอร์
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 99
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 320
h: 50
burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
html_snippet: "<!doctype html> <html> ... </html>"
}
}
event_notification_token {
payload: "<payload_string>"
}
billing_id: 141763360450
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
โฆษณาคั่นระหว่างหน้า
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 412
h: 775
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
วิดีโอที่มีการให้รางวัล
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 412
h: 775
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
เนทีฟ
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 1200
h: 627
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
native_response {
...
assets {
id: 1
title {
text: ""
}
}
assets {
id: 2
data {
value: "<some_string>"
}
}
assets {
id: 3
data {
value: "View now"
}
}
assets {
id: 4
img {
url: "<valid_image_url>"
w: 1200
h: 627
type: 3
}
}
assets {
id: 5
img {
url: "<valid_image_url>"
w: 100
h: 100
type: 1
}
}
assets {
id: 6
data {
value: ""
}
}
assets {
id: 7
data {
value: "<some_string>"
}
}
link {
url: "<destination_link>"
}
}
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
การตรวจสอบครีเอทีฟโฆษณา
ครีเอทีฟโฆษณาจะได้รับการตรวจสอบก่อนที่จะแสดงเพื่อให้เป็นไปตาม นโยบายและผู้เผยแพร่ การตั้งค่า
การส่งครีเอทีฟโฆษณาเข้ารับการตรวจสอบทำได้ 2 วิธีดังนี้
- Real-time Bidding API (แนะนำ)
คุณสามารถใช้
buyers.creatives.create
ของ Real-time Bidding API เพื่อ ส่งครีเอทีฟโฆษณาเข้ารับการตรวจสอบAPI กำหนดให้ส่งเพียง 1 ครั้งต่อครีเอทีฟโฆษณา 1 รายการ และให้คุณตรวจสอบ สถานะการตรวจสอบครีเอทีฟโฆษณา
- การเสนอราคาตอบ
คุณส่งครีเอทีฟโฆษณาใหม่ได้โดยตรงในการเสนอราคาตอบ
คุณต้องใช้ช่อง
declared_ad
ของออบเจ็กต์SdkRenderedAd
เพื่อส่ง การเสนอราคาตอบที่มีครีเอทีฟโฆษณา SDK ของผู้ซื้อเพื่อตรวจสอบครีเอทีฟโฆษณาที่ส่งในการเสนอราคาตอบจะได้รับการตรวจสอบหลังจากเสนอราคาหลายครั้งแล้วเท่านั้น ราคาเสนอทั้งหมดที่วางไว้ก่อนที่การตรวจสอบจะเสร็จสมบูรณ์จะถูกกรองออกจากการประมูล คุณใช้อินเทอร์เฟซการเสนอราคาแบบเรียลไทม์ได้ หรือการเสนอราคาแบบเรียลไทม์ API เพื่อตรวจสอบสถานะของครีเอทีฟโฆษณา หลังจากเริ่มตรวจสอบ
ดูคู่มือครีเอทีฟโฆษณาสำหรับ รายละเอียดเพิ่มเติม