รูปแบบโฆษณา SDK ของผู้ซื้อ

โฆษณา 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

คุณดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความ InstalledSdk ได้ในคู่มือโปรโตคอลของ Google และ OpenRTB

การแมปหน่วยโฆษณา

คุณใช้คำขอราคาเสนอเพื่ออ่านการแมปหน่วยโฆษณาที่ตรงกับช่องโฆษณาได้

โปรดดูช่องต่อไปนี้

  • Authorized Buyers: BidRequest.AdSlot.ad_unit_mapping
  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping

ดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็กต์ AdUnitMapping ได้ในคู่มือโปรโตคอล Google และ OpenRTB

สัญญาณที่ปลอดภัย

คุณควรอ่านออบเจ็กต์รหัสเพิ่มเติม ซึ่งเป็นส่วนขยายมาตรฐานที่ใช้ในการส่งสัญญาณที่ปลอดภัยที่ผู้เผยแพร่โฆษณาเลือก

โปรดดูช่องต่อไปนี้

  • Authorized Buyers: BidRequest.AdSlot.SecureSignal.data
  • OpenRTB: BidRequest.user.ext.eids.uids.id

ดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็กต์ Extended Id ได้ในคู่มือโปรโตคอล Google และ OpenRTB

คำขอทดสอบ

คุณสามารถอ่านช่อง "คำขอทดสอบ" เพื่อทำความเข้าใจว่าคำขอราคาเสนอเป็นการทดสอบหรือไม่

โปรดดูช่องต่อไปนี้

  • Authorized Buyers: BidRequest.is_test
  • OpenRTB: BidRequest.test

ดูข้อมูลเพิ่มเติมเกี่ยวกับช่อง 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

คุณดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความ InstalledSdk ได้ในคู่มือโปรโตคอลของ Google และ OpenRTB

โฆษณาที่ประกาศ

ใช้ช่อง declared_ad เพื่อระบุครีเอทีฟโฆษณาที่ตรงตามข้อกำหนด CreativeEnforcementSettings ของคำขอราคาเสนอ และเป็นตัวแทนของข้อมูลการแสดงผลของโฆษณา สำหรับรูปแบบโฆษณาที่ไม่ใช่เนทีฟ ควรแสดงเฉพาะ html_snippet, video_url หรือ video_vast_xml อย่างใดอย่างหนึ่ง สำหรับรูปแบบโฆษณาเนทีฟ ควรแสดงเพียง native_response เท่านั้น

หากคุณไม่ป้อนข้อมูล declared_ad เราจะตรวจสอบครีเอทีฟโฆษณาไม่ได้และการเสนอราคาทั้งหมดของครีเอทีฟโฆษณาจะถูกกรองออกจากการประมูล

การแสดงผลข้อมูล

ใช้ช่อง rendering_data เพื่อระบุข้อมูลให้ SDK ของผู้ซื้อใช้ในการแสดงโฆษณา

  • Authorized Buyers: BidResponse.ad.sdk_rendered_ad.rendering_data
  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data

ราคาเสนอเพื่อวางโฆษณา 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 การเสนอราคาแบบเรียลไทม์เพื่อตรวจสอบสถานะของครีเอทีฟโฆษณาหลังจากที่เริ่มการตรวจสอบ

ดูรายละเอียดเพิ่มเติมได้ในคู่มือครีเอทีฟโฆษณา