Quảng cáo AMPHTML qua RTB

Trang này mô tả cách bắt đầu sử dụng quảng cáo AMPHTML bằng RTB. Hãy xem các Tài nguyên bên dưới để biết thêm thông tin về quảng cáo AMPHTML và các công cụ nhằm giúp bạn bắt đầu.

Phương pháp tổng thể

Yêu cầu giá thầu RTB

Yêu cầu giá thầu RTB cho biết liệu yêu cầu có đến từ một trang AMP hay không và các yêu cầu đối với quảng cáo AMPHTML.

OpenRTB

trang 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;
}

Yêu cầu về quảng cáo 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];
}

đặt giá thầu theo thời gian thực (RTB) của Authorized Buyers

trang AMP

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

Yêu cầu về quảng cáo AMPHTML

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

Phản hồi giá thầu RTB

OpenRTB

Trong OpenRTB 3.0Mô hình quảng cáo chung đi kèm, có một số thành phần bổ sung để hỗ trợ quảng cáo AMPHTML được IAB đưa vào các thông số kỹ thuật dự thảo mới nhất của IAB, bao gồm các thông số sau.

Giá thầu Trường Attr Loại Nội dung mô tả
Yêu cầu Site.amp amp số nguyên Trường Site.amp cho biết liệu trang có được hiển thị trong AMP hay không, bị bỏ qua nếu không xác định:
0 = trang không phải AMP
1 = trang được tạo bằng HTML AMP
Yêu cầu ampformat rend số nguyên Thông số kỹ thuật về định dạng AMP cho biết các yêu cầu và hành vi hiển thị cho quảng cáo AMPHTML:
1 = Không xác định được yêu cầu đối với quảng cáo AMP
2 = Không cho phép quảng cáo AMP
3 = Cho phép quảng cáo AMP hoặc quảng cáo không phải AMP; quảng cáo AMP không được hiển thị sớm
4 = Cho phép quảng cáo AMP hoặc quảng cáo không phải AMP được hiển thị sớm
5 = Bắt buộc phải hiển thị quảng cáo AMP. Quảng cáo không phải AMP có thể bị nhà xuất bản từ chối
500+ = Giá trị dành riêng cho từng trao đổi; cần thông báo trước cho bên đặt giá thầu
Phản hồi display curl string Trong mục phản hồi giá thầu, display.curl đã được thêm vào để có thể gửi mẫu quảng cáo thông qua một URL, bao gồm cả tính năng hỗ trợ cho quảng cáo AMPHTML.
Đây là URL tại đó hệ thống sẽ tìm thấy mã đánh dấu mẫu quảng cáo. Áp dụng cho các loại mẫu quảng cáo như: Quảng cáo AMP, VAST, DAAST và Gốc. Thông thường, chỉ một trong số adm hoặc curl hợp lệ trong một quảng cáo nhất định.

đặt giá thầu theo thời gian thực (RTB) của Authorized Buyers

Trường BidResponse.Ad.amp_ad_url trong các phản hồi về giá thầu của Authorized Buyers chấp nhận URL trỏ đến nội dung quảng cáo AMPHTML. Trường này tồn tại ở dạng phần mở rộng trong đối tượng Bid trong quá trình triển khai OpenRTB của 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;

Xác minh AMPHTML hợp lệ

Để quảng cáo AMPHTML hiển thị sớm, bên trao đổi phải xác minh và ký các quảng cáo đó, cho biết rằng quảng cáo được viết ở định dạng quảng cáo <html amp4ads> amp4ads.

Những quảng cáo là quảng cáo AMPHTML hợp lệ sẽ được các trang AMP cho phép hiển thị sớm. Quảng cáo chưa được xác minh là quảng cáo AMPHTML hợp lệ sẽ hiển thị ở cùng tốc độ với quảng cáo không phải quảng cáo AMPHTML.

Hệ thống chỉ trả về quảng cáo AMPHTML trong amp_ad_url.

Trong tương lai, nếu nhà xuất bản chỉ yêu cầu quảng cáo AMPHTML, thì quảng cáo không được ký dưới dạng AMPHTML sẽ không hiển thị.

Với Authorized Buyers, bên đặt giá thầu vẫn sẽ bị tính phí nếu trả lại quảng cáo không phải AMP vào vùng quảng cáo bắt buộc có quảng cáo AMPHTML.

Tìm nạp phía máy chủ

Để quảng cáo AMPHTML hiển thị sớm, nội dung quảng cáo AMPHTML phải được hiển thị mà không yêu cầu bước bổ sung từ ứng dụng. Tính năng này được thiết kế để tránh mang lại trải nghiệm không tốt cho người dùng do độ trễ quảng cáo và các lệnh gọi phía máy khách bổ sung.

Sau khi bên đặt giá thầu giành chiến thắng trong phiên đấu giá, bên trao đổi sẽ thực hiện yêu cầu từ máy chủ đến máy chủ để truy xuất nội dung quảng cáo AMPHTML tại URL đã cung cấp trong amp_ad_url. Máy chủ mẫu quảng cáo phải phản hồi và trả về nội dung trong vòng 300 mili giây.

Quảng cáo AMPHTML được trả về từ máy chủ mẫu quảng cáo sẽ được đưa vào vùng quảng cáo và sau đó hiển thị. Xin lưu ý rằng quảng cáo AMPHTML hợp lệ không được chứa iframe hoặc các thẻ <amp-ad> khác. Hãy xem quy cách về quảng cáo CSS để biết thêm thông tin chi tiết.

Tính năng chỉ dành cho giai đoạn thử nghiệm: Hãy liên hệ với nhóm quản lý tài khoản của bạn nếu bạn yêu cầu

Trong quá trình truy xuất quảng cáo AMPHTML từ máy chủ đến máy chủ (được chỉ định trong amp_ad_url), Authorized Buyers có thể chuyển tiêu đề HTTP và IP từ trình duyệt của người dùng đến máy chủ mẫu quảng cáo. Điều này đảm bảo rằng máy chủ mẫu quảng cáo nhận được thông tin tương tự với thông tin được gửi từ quá trình tìm nạp phía máy khách chuẩn. Trong một số trường hợp, địa chỉ IP có thể bị cắt bớt thành chỉ 3 byte đầu tiên (IPv4) hoặc 6 byte đầu tiên (IPv6). Liên hệ với nhóm quản lý tài khoản của bạn nếu bạn cần tính năng này. Dưới đây là một tiêu đề HTTP mẫu:

URL theo dõi lượt hiển thị và macro lượt nhấp

Người mua RTB thường đưa trình theo dõi lượt hiển thị vào dưới dạng một trường có cấu trúc trong giá thầu phản hồi (Bid.burl, "URL thông báo thanh toán" trong OpenRTB 2.5).

Với Authorized Buyers, các tính năng này sẽ được kích hoạt từ phía máy khách; amp-pixel sẽ kích hoạt URL theo dõi khi mẫu quảng cáo hiển thị. amp-analytics có thể xử lý các trường hợp sử dụng theo dõi nâng cao hơn ngoài việc hiển thị.

Quảng cáo AMPHTML phải chứa macro nhấp chuột hợp lệ trong CSS. Thông tin này thường có dạng như sau:

<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>

Mẫu quảng cáo thường bao gồm các pixel so khớp cookie trong mã mẫu quảng cáo. Quảng cáo AMPHTML có thể sử dụng các thành phần amp-pixelamp-analytics cho trường hợp sử dụng này. Nếu không thể hỗ trợ trường hợp sử dụng của bạn bằng cách sử dụng amp-analytics hoặc amp-pixel, hãy mở vấn đề trên GitHub để thảo luận về các lựa chọn thay thế. Chúng tôi hoan nghênh các tiện ích mới có thể được một số công ty sử dụng rộng rãi. Xem nguyên tắc chi tiết hoặc hướng dẫn kỹ thuật để tạo một tiện ích mới.

URL quảng cáo AMP mẫu để thử nghiệm

Bạn có thể sử dụng nội dung quảng cáo AMPHTML mẫu sau để thử nghiệm:

Tài nguyên

Dự án AMP và Google đã phát hành một số tài nguyên để giúp bạn bắt đầu:

Tạo quảng cáo trong AMP
Đề xuất dành riêng cho RTB tới IAB / Nhóm OpenRTB