โฆษณา AMPHTML ผ่าน RTB

หน้านี้อธิบายวิธีเริ่มต้นใช้งาน โฆษณา AMPHTML พร้อม RTB ดูข้อมูลเพิ่มเติมได้ในแหล่งข้อมูลด้านล่าง เกี่ยวกับโฆษณา AMPHTML และเครื่องมือที่จะช่วยคุณเริ่มต้นใช้งาน

แนวทางระดับสูง

คำขอราคาเสนอ RTB

คำขอราคาเสนอ RTB จะระบุว่าคำขอมาจากหน้า AMP หรือไม่ และข้อกำหนดสำหรับโฆษณา AMPHTML

OpenRTB

หน้า AMP

message SiteExt {
  enum AmpPage {
    // This is not an AMP page.
    DIALECT_HTML = 0;

    // This is an Amp page.
    DIALECT_HTML_AMP = 1;
  }

  // Whether this is an AMP page or not. Omitted if unknown.
  optional AmpPage amp = 1;
  enum VisibilityState {
    VISIBILITY_STATE_UNKNOWN = 0;

    // The page is at least partially visible. For example, in the foreground
    // tab of a non-minimized window.
    VISIBILITY_STATE_VISIBLE = 1;

    // The page is not visible to users. For example, when the page is in a
    // background browser tab, or in a minimized window.
    VISIBILITY_STATE_HIDDEN = 2;
  }

  // The visibility state of the web page containing the ad slot.
  // See https://www.w3.org/TR/page-visibility/.
  // [AdX: BidRequest.page_visibility]
  optional VisibilityState page_visibility = 2 [default =
    VISIBILITY_STATE_UNKNOWN];

  // Information about a browser window's user activation state. See
  // https://html.spec.whatwg.org/multipage/interaction.html#the-useractivation-interface.
  message UserActivation {
    // Indicates whether a user has completed an interaction since page load.
    optional bool wasact = 1;

    // Indicates whether a user is currently interacting with the page.
    optional bool isact = 2;
  }

  // User activation information from the browser for the current request, if
  // the request is for a web page.
  optional UserActivation uact = 5;

  // The set of possible web navigation types that predicate a page load. Each
  // of these types may have different performance characteristics. For example,
  // users going back and forth might experience a faster site than users
  // performing navigation for the first time or submitting forms. See
  // https://w3c.github.io/navigation-timing/#dom-performancenavigationtiming-type.
  enum NavigationType {
    NAVIGATION_TYPE_UNKNOWN = 0;

    // Navigation started by clicking a link, entering the URL in the browser's
    // address bar, form submission, or initializing through a script operation
    // other than reload and back_forward.
    NAVIGATION_TYPE_NAVIGATE = 1;

    // Navigation is through the browser's reload operation, location.reload(),
    // or a Refresh pragma directive like
    // <meta http-equiv="refresh" content="300">.
    NAVIGATION_TYPE_RELOAD = 2;

    // Navigation is through the browser's history traversal operation.
    NAVIGATION_TYPE_BACK_FORWARD = 3;

    // Navigation is initiated by a prerender hint (deprecated). See
    // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/prerender.
    NAVIGATION_TYPE_PRERENDER = 4;
  }

  // The type of browser navigation that led to the current page. Unset for
  // non-web ad requests.
  optional NavigationType ntype = 6;

  // Indicates that the request is using semi-transparent branding,
  // which means only a truncated version of the request URL will
  // be provided. This decision is made by the publisher, see
  // https://support.google.com/admanager/answer/4584891#urls for context.
  optional bool is_semi_transparent_request = 3;

  // The domain of the partner (of the site owner) with ownership
  // of some portion of ad inventory on the site. The partner's ads.txt file
  // will be hosted here. More detail at
  // http://iabtechlab.com/wp-content/uploads/2021/03/ctv-app-ads-explainer-guide.pdf
  optional string inventorypartnerdomain = 4;
}

ข้อกำหนดโฆษณา AMPHTML

// Ad Exchange extensions for the Imp object.
message ImpExt {
...
  // Possible requirement types for AMP ads.
  enum AmpAdRequirementType {
    // AMP ad requirements unknown.
    UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 1;
    // AMP ads are not allowed.
    AMP_AD_NOT_ALLOWED = 2;
    // Either AMP ads or non-AMP ads are allowed;
    // AMP ads are not early rendered.
    AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED = 3;
    // Either AMP ads or non-AMP ads are allowed;
    // AMP ads are early rendered.
    AMP_AD_ALLOWED_AND_EARLY_RENDERED = 4;
    // AMP ads are required.
    // Ads that are non-AMP may be rejected by the publisher.
    AMP_AD_REQUIRED = 5;
    // Exchange-specific values above 500.
  }
  optional AmpAdRequirementType ampad = 8
    [default = UNKNOWN_AMP_AD_REQUIREMENT_TYPE];
}

RTB ของ Authorized Buyers

หน้า AMP

// Whether this is an AMP page or not.
enum AmpPage {
  // AMP page status unknown.
  UNKNOWN_AMP_PAGE = 0;

ข้อกำหนดโฆษณา AMPHTML

// Possible requirement types for AMP ads.
enum AmpAdRequirementType {
  // AMP ad requirements unknown.
  UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 0;

การเสนอราคาตอบ RTB

OpenRTB

ใน OpenRTB 3.0 และการโฆษณาที่เกี่ยวข้อง รูปแบบทั่วไปการเพิ่มหลายรายการเพื่อรองรับโฆษณา AMPHTML จะรวมอยู่ใน ข้อกำหนดเฉพาะของร่างล่าสุดโดย IAB รวมถึงข้อมูลต่อไปนี้

ราคาเสนอ ช่อง แอตทริบิวต์ ประเภท คำอธิบาย
ส่งคำขอ Site.amp amp จำนวนเต็ม ฟิลด์ Site.amp ระบุว่าหน้าเว็บจะแสดงผลหรือไม่ ใน AMP หากไม่ทราบ:
0 = หน้าเว็บไม่ใช่ AMP
1 = หน้าเว็บสร้างขึ้นด้วย AMP HTML
ส่งคำขอ ampformat rend จำนวนเต็ม ข้อกำหนดรูปแบบ AMP ระบุข้อกำหนดและการแสดงภาพ ลักษณะการทำงานของโฆษณา AMPHTML
1 = ไม่ทราบข้อกำหนดของโฆษณา AMP
2 = ไม่อนุญาตให้ใช้โฆษณา AMP
3 = อนุญาตโฆษณา AMP หรือโฆษณาที่ไม่ใช่ AMP โฆษณา AMP ไม่แสดงผลก่อนกำหนด
4 = อนุญาตโฆษณา AMP หรือโฆษณาที่ไม่ใช่ AMP และโฆษณา AMP จะแสดงผลก่อนกำหนด
5 = ต้องมีโฆษณา AMP โฆษณาที่ไม่ใช่ AMP อาจถูกปฏิเสธจากผู้เผยแพร่โฆษณา
500+ = ค่าเฉพาะของ Exchange ควรแจ้งให้ผู้เสนอราคาทราบลำดับความสำคัญ
คำตอบ display curl สตริง เพิ่ม display.curl ในการเสนอราคาตอบเพื่อให้ส่งได้ ครีเอทีฟโฆษณาผ่าน URL รวมถึงการรองรับโฆษณา AMPHTML
นี่คือ URL ที่จะพบมาร์กอัปครีเอทีฟโฆษณา เกี่ยวข้องกับครีเอทีฟโฆษณาประเภทต่างๆ เช่น โฆษณา AMP, VAST, DAAST และเนทีฟ โดยปกติแล้ว โฆษณาหนึ่งๆ จะใช้ adm หรือ curl ได้เพียงรายการเดียว

RTB ของ Authorized Buyers

ช่อง BidResponse.Ad.amp_ad_url ในราคาเสนอของ Authorized Buyers การตอบกลับจะยอมรับ URL ที่ชี้ไปยังเนื้อหาโฆษณา AMPHTML มีช่องเดียวกันนี้ เป็นส่วนขยายในออบเจ็กต์ Bid ใน OpenRTB ของ Google การใช้งานของคุณ

// The URL to fetch an AMPHTML ad. Only one of the following should be set:
// html_snippet, video_url, amp_ad_url, native_ad.
optional string amp_ad_url = 23;

การยืนยัน AMPHTML ที่ถูกต้อง

หากต้องการให้โฆษณา AMPHTML แสดงผลก่อนกำหนด พาร์ทเนอร์ Exchange จะต้องยืนยันและ ลงนามเพื่อบ่งบอกว่าโฆษณาเขียนในรูปแบบครีเอทีฟโฆษณา <html amp4ads> ของ amp4ads

โฆษณาที่เป็น AMPHTML ที่ถูกต้องจะได้รับอนุญาตให้แสดงผลล่วงหน้าในหน้า AMP โฆษณา ที่ไม่ได้รับการยืนยันว่าเป็น AMPHTML ที่ถูกต้องจะแสดงผลที่ความเร็วเท่ากับ โฆษณาที่ไม่ใช่ AMPHTML

ควรแสดงเฉพาะโฆษณา AMPHTML ใน amp_ad_url

ในอนาคต หากผู้เผยแพร่โฆษณาต้องใช้โฆษณา AMPHTML เท่านั้น โฆษณาที่ไม่มีการรับรอง AMPHTML จะไม่แสดงผล

เมื่อใช้ Authorized Buyers ระบบจะยังคงเรียกเก็บเงินจากผู้เสนอราคาหากส่งคืน โฆษณาที่ไม่ใช่ AMPHTML ไปยังช่องโฆษณาที่ต้องระบุโฆษณา AMPHTML

การดึงข้อมูลฝั่งเซิร์ฟเวอร์

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

หลังจากที่ผู้เสนอราคาชนะการประมูล พาร์ทเนอร์ Exchange จะดำเนินการดังนี้ คำขอแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์เพื่อดึงเนื้อหาโฆษณา AMPHTML ที่อยู่ใน URL ที่ให้ไว้ใน amp_ad_url เซิร์ฟเวอร์ครีเอทีฟโฆษณาต้องตอบสนองและแสดงผล เนื้อหาภายในช่วง 300 มิลลิวินาที

ระบบจะแทรกโฆษณา AMPHTML ที่แสดงผลจากเซิร์ฟเวอร์ครีเอทีฟโฆษณาลงใน ช่องโฆษณาและแสดงผลหลังจากนั้น โปรดทราบว่าโฆษณา AMPHTML ที่ถูกต้องต้องไม่มี iframe หรือแท็ก <amp-ad> อื่นๆ โปรดดู AMPHTML สำหรับรายละเอียดเพิ่มเติม

ฟีเจอร์เวอร์ชันเบต้าเท่านั้น: ติดต่อทีมดูแลลูกค้าหากต้องการ

ระหว่างการเรียกแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ของโฆษณา AMPHTML (ที่ระบุไว้ใน amp_ad_url) Authorized Buyers อาจส่งส่วนหัว HTTP และ IP จากเบราว์เซอร์ของผู้ใช้ไปยังเซิร์ฟเวอร์ครีเอทีฟโฆษณา ซึ่งช่วยให้ครีเอทีฟโฆษณา เซิร์ฟเวอร์จะได้รับข้อมูลที่คล้ายกับที่ส่งจากฝั่งไคลเอ็นต์มาตรฐาน ดึงข้อมูล ในบางกรณี ที่อยู่ IP อาจถูกตัดให้เหลือเพียง 3 ไบต์แรก (IPv4) หรือ 6 ไบต์แรก (IPv6) โปรดติดต่อทีมดูแลลูกค้าหากต้องการ ตัวอย่างส่วนหัว HTTP มีดังนี้

URL ติดตามการแสดงผลและมาโครการคลิก

ผู้ซื้อ RTB มักรวมเครื่องมือติดตามการแสดงผลเป็นฟิลด์ที่มีโครงสร้างใน การเสนอราคาตอบ (นี่คือ Bid.burl ซึ่งเป็น "URL การแจ้งการเรียกเก็บเงิน" ใน OpenRTB 2.5)

เมื่อใช้ Authorized Buyers ข้อกำหนดเหล่านี้จะเริ่มทำงานจากฝั่งไคลเอ็นต์ amp-pixel เริ่มการทำงานของ URL ติดตามเมื่อแสดงผลครีเอทีฟโฆษณา amp-analytics สามารถจัดการ Use Case การติดตามขั้นสูงที่นอกเหนือจากการแสดงผลได้

โฆษณา AMPHTML ต้องมีมาโครการคลิกที่ถูกต้องใน AMPHTML ซึ่งโดยทั่วไปจะมีรูปแบบดังนี้

<a href="%%CLICK_URL_UNESC%%http%3A%2F%2my.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
<a href=”https://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%”></a>

โฆษณามักมีคุกกี้ การจับคู่พิกเซลภายในโค้ดโฆษณา โฆษณา AMPHTML สามารถใช้เมธอด amp-pixel และ amp-analytics คอมโพเนนต์สำหรับกรณีการใช้งานนี้ หากกรณีการใช้งานของคุณไม่สามารถรองรับด้วยการใช้ amp-analytics หรือ amp-pixel เปิด ปัญหาเกี่ยวกับ GitHub เพื่อพูดคุยถึง ตัวเลือกอื่นๆ เรายินดีรับส่วนขยายใหม่ๆ ที่สามารถใช้งานได้อย่างแพร่หลายโดย บริษัทต่างๆ มากมาย โปรดดู รายละเอียด หลักเกณฑ์หรือ ด้านเทคนิค ในการสร้างส่วนขยายใหม่

ตัวอย่าง URL ของโฆษณา AMP สำหรับการทดสอบ

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

แหล่งข้อมูล

โครงการ AMP และ Google ได้เผยแพร่แหล่งข้อมูลจำนวนมากเพื่อช่วยคุณเริ่มต้นใช้งาน

การสร้างโฆษณาใน AMP
ข้อเสนอเฉพาะสำหรับ RTB สำหรับกลุ่ม IAB / OpenRTB