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

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

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

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

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

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

  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping
  • โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว): BidRequest.AdSlot.ad_unit_mapping

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

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

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

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

  • OpenRTB: BidRequest.imp.ext.buyer_generated_request_data.data
  • โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว): BidRequest.AdSlot.SecureSignal.data

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

คำขอทดสอบ

คุณสามารถอ่านฟิลด์ "คำขอทดสอบ" เพื่อทำความเข้าใจว่าคำขอราคาเสนอ การทดสอบ

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

  • OpenRTB: BidRequest.test
  • โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว): BidRequest.is_test

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับช่อง 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

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

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

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

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

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

ใช้ฟิลด์ rendering_data เพื่อให้ข้อมูลสำหรับ SDK ของผู้ซื้อ ใช้เพื่อแสดงโฆษณา

  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
  • โปรโตคอล RTB ของ Google (เลิกใช้งานแล้ว): BidResponse.ad.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 เพื่อส่งครีเอทีฟโฆษณาสำหรับ รีวิว ก่อนที่จะรวมไว้ในการเสนอราคาตอบ

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

ดูคู่มือครีเอทีฟโฆษณาสำหรับ รายละเอียดเพิ่มเติม