โฆษณา SDK ของผู้ซื้อใช้ครีเอทีฟโฆษณาที่แสดงผลโดย SDK ของคุณเอง
พื้นที่โฆษณาในแอปบนอุปกรณ์เคลื่อนที่จากผู้เผยแพร่โฆษณาที่ผสานรวมอะแดปเตอร์การเสนอราคาเข้ากับแอปสามารถยอมรับราคาเสนอด้วยรูปแบบโฆษณาที่แสดงผลโดย SDK ของผู้ซื้อ วิธีแสดงผลจะขึ้นอยู่กับการใช้งาน SDK และ SDKRenderedAd
ที่คุณส่งในการเสนอราคาตอบ
คุณสามารถเสนอราคารวมถึงโฆษณาที่แสดงผลโดย SDK ของผู้ซื้อ หรือรูปแบบโฆษณาอื่นๆ ที่ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google รองรับ แต่การเสนอราคาใดๆ ที่มีทั้ง 2 ประเภทจะถูกกรองออก
ข้อกำหนด
โฆษณา SDK ของผู้ซื้อพร้อมให้บริการแก่ผู้ซื้อที่ได้รับอนุมัติ รูปแบบนี้ต้องใช้ความพยายามเพิ่มเติม จากคุณและผู้เผยแพร่โฆษณา โปรดติดต่อผู้จัดการลูกค้าด้านเทคนิคเพื่อกำหนดค่าบัญชีสำหรับโฆษณา SDK ของผู้ซื้อ จากนั้นคุณสามารถใช้อะแดปเตอร์การเสนอราคาที่ช่วยให้ SDK สื่อสารกับ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ได้ ผู้เผยแพร่โฆษณาต้องผสานรวม SDK และอะแดปเตอร์ของคุณเข้ากับแอปบนอุปกรณ์เคลื่อนที่ของตน
เราขอแนะนำให้คุณส่งครีเอทีฟโฆษณาเพื่อรับการตรวจสอบก่อนที่จะรวมไว้ในการเสนอราคาตอบ โปรดติดต่อผู้จัดการลูกค้าด้านเทคนิค หากคุณไม่ทราบประเภทโฆษณาในขณะเสนอราคา
หากคำขอราคาเสนอรองรับรูปแบบโฆษณานี้ คุณจะระบุโฆษณาที่แสดงพร้อมกับ SDK ได้โดยตั้งค่าช่อง sdk_rendered_ad
ในการเสนอราคาตอบ
คำขอราคาเสนอ
คำขอราคาเสนอสำหรับพื้นที่โฆษณาในแอปบนอุปกรณ์เคลื่อนที่มีรายละเอียดเกี่ยวกับ SDK และอะแดปเตอร์ในแอปของผู้เผยแพร่โฆษณาที่คุณสามารถใช้สำหรับการแสดงผลในช่องต่อไปนี้
- รหัส SDK
คุณสามารถใช้คำขอราคาเสนอเพื่อหา
id
ที่คุณต้องระบุในการเสนอราคาตอบสำหรับโฆษณาที่แสดงโดย SDK ของผู้ซื้อโปรดดูช่องต่อไปนี้
- Authorized Buyers:
BidRequest.mobile.installed_sdk
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Authorized Buyers:
คุณดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความ
InstalledSdk
ได้ในคู่มือโปรโตคอลของ Google และ OpenRTB- การแมปหน่วยโฆษณา
คุณใช้คำขอราคาเสนอเพื่ออ่านการแมปหน่วยโฆษณาที่ตรงกับช่องโฆษณาได้
โปรดดูช่องต่อไปนี้
- Authorized Buyers:
BidRequest.AdSlot.ad_unit_mapping
- OpenRTB:
BidRequest.imp.ext.ad_unit_mapping
- Authorized Buyers:
ดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็กต์
AdUnitMapping
ได้ในคู่มือโปรโตคอล Google และ OpenRTB- สัญญาณที่ปลอดภัย
คุณควรอ่านออบเจ็กต์รหัสเพิ่มเติม ซึ่งเป็นส่วนขยายมาตรฐานที่ใช้ในการส่งสัญญาณที่ปลอดภัยที่ผู้เผยแพร่โฆษณาเลือก
โปรดดูช่องต่อไปนี้
- Authorized Buyers:
BidRequest.AdSlot.SecureSignal.data
- OpenRTB:
BidRequest.user.ext.eids.uids.id
- Authorized Buyers:
ดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็กต์
Extended Id
ได้ในคู่มือโปรโตคอล Google และ OpenRTB- คำขอทดสอบ
คุณสามารถอ่านช่อง "คำขอทดสอบ" เพื่อทำความเข้าใจว่าคำขอราคาเสนอเป็นการทดสอบหรือไม่
โปรดดูช่องต่อไปนี้
- Authorized Buyers:
BidRequest.is_test
- OpenRTB:
BidRequest.test
- Authorized Buyers:
ดูข้อมูลเพิ่มเติมเกี่ยวกับช่อง
Test
ได้ในคู่มือโปรโตคอลของ Google และ OpenRTB
ตัวอย่างคำขอราคาเสนอ
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>"
...
}
การเสนอราคาตอบ
- ราคาเสนอสำหรับใบอนุญาตที่มี
ต้องกรอกข้อมูลในช่องต่อไปนี้ในออบเจ็กต์
BidResponse.seatbid.bid
Authorized Buyers
BidResponse.Ad.click_through_url
BidResponse.Ad.AdSlot.billing_id
BidResponse.Ad.buyer_creative_id
BidResponse.Ad.width
BidResponse.Ad.height
OpenRTB:
BidResponse.seatbid.bid.adomain
BidResponse.seatbid.bid.cid
BidResponse.seatbid.bid.crid
BidResponse.seatbid.bid.w
BidResponse.seatbid.bid.h
คุณดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความ
SeatBid
ได้ในคู่มือโปรโตคอลของ Google และ OpenRTB
การเสนอราคาตอบต้องมี SdkRenderedAd
ที่มีสิ่งต่อไปนี้
- รหัส SDK
ใช้ช่อง
id
เพื่อระบุรหัสที่ SDK จะแสดงโฆษณาคุณจะพบรหัสในคำขอราคาเสนอพร้อมกับช่องต่อไปนี้
- Authorized Buyers:
BidRequest.mobile.installed_sdk
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Authorized Buyers:
คุณดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความ
InstalledSdk
ได้ในคู่มือโปรโตคอลของ Google และ OpenRTB- โฆษณาที่ประกาศ
ใช้ช่อง
declared_ad
เพื่อระบุครีเอทีฟโฆษณาที่ตรงตามข้อกำหนดCreativeEnforcementSettings
ของคำขอราคาเสนอ และเป็นตัวแทนของข้อมูลการแสดงผลของโฆษณา สำหรับรูปแบบโฆษณาที่ไม่ใช่เนทีฟ ควรแสดงเฉพาะhtml_snippet
,video_url
หรือvideo_vast_xml
อย่างใดอย่างหนึ่ง สำหรับรูปแบบโฆษณาเนทีฟ ควรแสดงเพียงnative_response
เท่านั้น- Authorized Buyers:
BidResponse.ad.sdk_rendered_ad.declared_ad
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad
หากคุณไม่ป้อนข้อมูล
declared_ad
เราจะตรวจสอบครีเอทีฟโฆษณาไม่ได้และการเสนอราคาทั้งหมดของครีเอทีฟโฆษณาจะถูกกรองออกจากการประมูล- Authorized Buyers:
- การแสดงผลข้อมูล
ใช้ช่อง
rendering_data
เพื่อระบุข้อมูลให้ SDK ของผู้ซื้อใช้ในการแสดงโฆษณา- Authorized Buyers:
BidResponse.ad.sdk_rendered_ad.rendering_data
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
- Authorized Buyers:
ราคาเสนอเพื่อวางโฆษณา 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 เพื่อส่งครีเอทีฟโฆษณาเข้ารับการตรวจสอบก่อนที่คุณจะรวมครีเอทีฟโฆษณาดังกล่าวไว้ในการเสนอราคาตอบ
โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับช่อง SdkRenderedAd
ในคู่มือโปรโตคอลของ Google และ OpenRTB
ตัวอย่างการเสนอราคาตอบ
ต่อไปนี้เป็นตัวอย่างการเสนอราคาตอบสำหรับโฆษณาแต่ละรูปแบบ
แบนเนอร์
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 ครั้งต่อครีเอทีฟโฆษณาและให้คุณตรวจสอบสถานะการตรวจสอบครีเอทีฟโฆษณา
- การเสนอราคาตอบ
คุณส่งครีเอทีฟโฆษณาใหม่ได้โดยตรงในการเสนอราคาตอบ
คุณต้องใช้ช่อง
declared_ad
ของออบเจ็กต์SdkRenderedAd
เพื่อส่งการเสนอราคาตอบที่มีครีเอทีฟโฆษณา SDK ของผู้ซื้อเข้ารับการตรวจสอบครีเอทีฟโฆษณาที่ส่งในการเสนอราคาตอบจะได้รับการตรวจสอบหลังจากมีการเสนอราคาหลายครั้งเท่านั้น ราคาเสนอทั้งหมดที่ดำเนินการก่อนที่การตรวจสอบจะเสร็จสิ้นจะถูกกรองออกจากการประมูล คุณสามารถใช้อินเทอร์เฟซการเสนอราคาแบบเรียลไทม์หรือ API การเสนอราคาแบบเรียลไทม์เพื่อตรวจสอบสถานะของครีเอทีฟโฆษณาหลังจากที่เริ่มการตรวจสอบ
ดูรายละเอียดเพิ่มเติมได้ในคู่มือครีเอทีฟโฆษณา