หน้านี้จะอธิบายวิธีเริ่มต้นใช้งานโฆษณา 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 = หน้าเว็บไม่ใช่ AMP1 = หน้าเว็บสร้างขึ้นด้วย AMP HTML |
ส่งคำขอ | ampformat |
rend |
จำนวนเต็ม | ข้อกำหนดรูปแบบ AMP ระบุข้อกำหนดและลักษณะการทำงานของโฆษณา AMPHTML1 = ไม่ทราบข้อกำหนดของโฆษณา AMP2 = ไม่อนุญาตให้ใช้โฆษณา AMP3 = อนุญาตให้ใช้โฆษณา 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
- ข้อกำหนดรูปแบบโฆษณา AMPHTML (GitHub)
- ภาพรวมโฆษณา AMPHTML (GitHub)
- เว็บไซต์โฆษณา AMPHTML จากโครงการ AMP
- ตัวอย่างโฆษณา AMPHTML
- การเปรียบเทียบความเร็ว - ดูความเร็วในการโหลดโฆษณา AMPHTML โดยเปรียบเทียบกับโฆษณาปกติ เหมาะสำหรับการดูผ่านการเชื่อมต่อ 3G
- ข้อเสนอ RTB เฉพาะสำหรับ IAB / OpenRTB Group