โฆษณา 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 ซึ่งรวมถึงข้อกำหนดต่อไปนี้

การเสนอราคา ฟิลด์ แอตทริบิวต์ Type คำอธิบาย
ส่งคำขอ 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 เพียง 1 ประเภทเท่านั้น

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 สามารถจัดการกรณีการใช้งานการติดตามขั้นสูงได้มากกว่าการแสดงผล

โฆษณา 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 สำหรับกรณีการใช้งานนี้ได้ หากไม่สามารถอำนวยความสะดวกให้กับ Use Case ของคุณได้โดยใช้ amp-analytics หรือ amp-pixel ให้เปิดปัญหาเกี่ยวกับ GitHub เพื่อพูดคุยเกี่ยวกับตัวเลือกอื่นๆ เรายินดีรับส่วนขยายใหม่ๆ ที่บริษัทต่างๆ จำนวนมากสามารถ ใช้กันได้อย่างกว้างขวาง ดูหลักเกณฑ์โดยละเอียดหรือคำแนะนำทางเทคนิคในการสร้างส่วนขยายใหม่

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

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

แหล่งข้อมูล

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

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