Iklan AMPHTML melalui RTB

Halaman ini menjelaskan cara untuk mulai menggunakan Iklan AMPHTML dengan RTB. Lihat Referensi di bawah untuk info tambahan tentang iklan dan alat AMPHTML untuk membantu Anda memulai.

Pendekatan tingkat tinggi

Permintaan bid RTB

Permintaan bid RTB menunjukkan apakah permintaan tersebut berasal dari halaman AMP dan persyaratan untuk iklan AMPHTML.

OpenRTB

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

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

halaman AMP

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

Persyaratan iklan AMPHTML

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

Respons bid RTB

OpenRTB

Di OpenRTB 3.0 dan Iklan yang menyertainya Model Umum beberapa tambahan untuk mendukung iklan AMPHTML disertakan dalam spesifikasi draf terbaru oleh IAB, termasuk yang berikut ini.

Bid Kolom Attr Jenis Deskripsi
Permintaan Site.amp amp bilangan bulat Kolom Site.amp menunjukkan apakah halaman dirender atau tidak di AMP, dihilangkan jika tidak diketahui:
0 = halaman adalah non-AMP
1 = halaman dibuat dengan HTML AMP
Permintaan ampformat rend bilangan bulat Spesifikasi Format AMP menunjukkan persyaratan dan rendering untuk iklan AMPHTML:
1 = Persyaratan iklan AMP tidak diketahui
2 = Iklan AMP tidak diizinkan
3 = Iklan AMP atau non-AMP diizinkan; Iklan AMP tidak dirender lebih awal
4 = Iklan AMP atau non-AMP diizinkan, dan iklan AMP dirender lebih awal
5 = Iklan AMP wajib diisi. Iklan yang merupakan non-AMP dapat ditolak oleh penayang
500+ = Nilai khusus bursa; harus dikomunikasikan kepada bidder terlebih dahulu
Respons display curl string Dalam respons bid, display.curl telah ditambahkan agar dapat mengirimkan materi iklan melalui URL, termasuk dukungan untuk iklan AMPHTML.
Ini adalah URL tempat markup materi iklan akan ditemukan. Berlaku untuk jenis materi iklan seperti: Iklan AMP, VAST, dan DAAST serta Native. Biasanya hanya satu adm atau curl yang valid dalam iklan tertentu.

RTB Authorized Buyers

Kolom BidResponse.Ad.amp_ad_url dalam bid Authorized Buyers menerima URL yang mengarah ke konten iklan AMPHTML. Terdapat kolom yang sama sebagai ekstensi pada objek Bid di OpenRTB Google terlepas dari implementasi layanan.

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

Verifikasi AMPHTML yang valid

Agar iklan AMPHTML dirender lebih awal, pertukaran diperlukan untuk memverifikasi dan tanda tangani, yang menunjukkan bahwa iklan tersebut ditulis dalam format materi iklan <html amp4ads> amp4ads.

Iklan yang merupakan AMPHTML yang valid akan diizinkan untuk dirender lebih awal oleh halaman AMP. Google Ads yang tidak diverifikasi sebagai AMPHTML yang valid akan dirender dengan kecepatan yang sama iklan non-AMPHTML.

Hanya iklan AMPHTML yang boleh ditampilkan di amp_ad_url.

Pada masa mendatang, jika penayang hanya memerlukan iklan AMPHTML, iklan yang tidak ditandatangani sebagai AMPHTML tidak akan dirender.

Dengan Authorized Buyers, bidder akan tetap ditagih jika mereka menampilkan Iklan non-AMPHTML ke slot iklan yang wajib diisi iklan AMPHTML.

Pengambilan sisi server

Agar iklan AMPHTML dirender lebih awal, konten iklan AMPHTML harus dirender tanpa memerlukan hop tambahan dari klien. Hal ini dirancang untuk menghindari pengalaman pengguna yang buruk karena latensi iklan dan panggilan sisi klien tambahan.

Setelah bidder memenangkan lelang, bursa akan melakukan permintaan server ke server untuk mengambil konten iklan AMPHTML yang terletak di URL yang disediakan di amp_ad_url. Server materi iklan harus merespons dan kembali konten dalam waktu 300 md.

Iklan AMPHTML yang ditampilkan dari server materi iklan akan dimasukkan ke slot iklan dan dirender setelahnya. Perhatikan bahwa iklan AMPHTML yang valid tidak boleh berisi iframe atau tag <amp-ad> lainnya. Lihat AMPHTML spesifikasi iklan untuk mengetahui detail selengkapnya.

Fitur khusus beta: Hubungi tim akun Anda jika Anda memerlukannya

Selama pengambilan iklan AMPHTML di server ke server (ditentukan dalam amp_ad_url), Authorized Buyers dapat meneruskan header HTTP dan IP dari browser pengguna ke server materi iklan. Hal ini memastikan materi iklan server menerima informasi yang serupa dengan yang dikirimkan dari sisi klien standar, pengambilan. Dalam beberapa kasus, alamat IP mungkin dipangkas hanya menjadi 3 byte pertama (IPv4) atau 6 byte pertama (IPv6). Hubungi tim akun Anda jika Anda memerlukannya aplikasi baru. Berikut adalah contoh header HTTP:

URL pelacakan tayangan dan makro klik

Pembeli RTB sering kali menyertakan pelacak tayangan iklan sebagai kolom terstruktur di respons bid (ini adalah Bid.burl, "URL pemberitahuan penagihan" di OpenRTB 2.5).

Dengan Authorized Buyers, pembeli ini akan diaktifkan dari sisi klien; amp-pixel mengaktifkan URL pelacakan saat materi iklan dirender. amp-analytics dapat menangani kasus penggunaan pelacakan lanjutan di luar rendering.

Iklan AMPHTML harus berisi makro klik yang valid dalam AMPHTML. Hal ini biasanya dalam bentuk sesuatu seperti ini:

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

Materi iklan sering kali menyertakan cookie yang cocok dalam kode materi iklan. Iklan AMPHTML dapat menggunakan amp-pixel dan amp-analytics untuk kasus penggunaan ini. Jika kasus penggunaan Anda tidak dapat diakomodasi dengan menggunakan amp-analytics atau amp-pixel, buka Masalah GitHub yang perlu dibahas opsi alternatif. Kami menerima ekstensi baru yang dapat digunakan secara luas oleh sejumlah perusahaan yang berbeda. Lihat mendetail pedoman atau teknis panduan untuk membuat ekstensi baru.

Contoh URL Iklan AMP untuk pengujian

Anda dapat menggunakan contoh konten iklan AMPHTML berikut untuk pengujian:

Resource

Project AMP dan Google telah merilis sejumlah referensi untuk membantu Anda memulai:

Membuat iklan di AMP
Proposal khusus RTB untuk Grup IAB / OpenRTB