Reklamy AMP HTML zamiast RTB

Z tego artykułu dowiesz się, jak zacząć używać reklam AMP HTML z RTB. W sekcji Zasoby poniżej znajdziesz dodatkowe informacje o reklamach AMP HTML i narzędziach, które pomogą Ci zacząć.

Ogólne podejście

Pytanie o stawkę RTB

Pytanie o stawkę RTB wskazuje, czy żądanie pochodzi ze strony AMP, oraz jakie są wymagania dotyczące reklam AMP HTML.

OpenRTB

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

Wymagania dotyczące reklam AMP HTML

// 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 w Authorized Buyers

strona AMP

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

Wymagania dotyczące reklam AMP HTML

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

Odpowiedź na stawkę RTB

OpenRTB

W OpenRTB 3.0 i w powiązanym modelu Advertising Common Model jest kilka nowych opcji obsługi reklam AMP HTML, w tym w najnowszych wersjach roboczych specyfikacji opracowanych przez IAB.

Stawka Pole Attr Typ Opis
Prośba Site.amp amp Liczba całkowita Pole Site.amp wskazuje, czy strona jest renderowana w standardzie AMP (strona jest pomijana w przypadku nieznanych):
0 = strona nie jest stroną AMP
1 = strona została utworzona w języku AMP HTML.
Prośba ampformat rend Liczba całkowita Specyfikacja formatu AMP wskazuje wymagania i sposób renderowania reklam AMP HTML:
1 = wymagania dotyczące reklam AMP są nieznane
2 = reklamy AMP są niedozwolone
3 = Dozwolone są reklamy AMP lub inne niż AMP; reklamy AMP nie zostały jeszcze wyrenderowane w wczesny sposób
4 = Dozwolone są reklamy AMP lub inne niż AMP, a reklamy AMP są renderowane we wczesnej fazie renderowania.
5 = Reklamy AMP są wymagane. Reklamy inne niż AMP mogą zostać odrzucone przez wydawcę.
500+ = wartości specyficzne dla giełdy; należy je z wyprzedzeniem poinformować licytujących.
Odpowiedź display curl ciąg znaków W odpowiedzi na stawkę dodano parametr display.curl, który umożliwia przesyłanie kreacji za pomocą adresu URL – w tym obsługę reklam AMP HTML.
Jest to adres URL, pod którym znajdują się znaczniki kreacji. Odnosi się do takich typów kreacji jak: reklamy AMP, VAST, DAAST i natywne. Zwykle w danej reklamie działa tylko jeden element typu adm lub curl.

RTB w Authorized Buyers

Pole BidResponse.Ad.amp_ad_url w odpowiedziach na stawkę w Authorized Buyers akceptuje adres URL wskazujący treść reklamy AMP HTML. To samo pole występuje jako rozszerzenie w obiekcie Bid w implementacji 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;

Weryfikacja prawidłowego kodu AMP HTML

Aby reklamy AMP HTML mogły być renderowane wczesne, giełda musi je zweryfikować i podpisać, co będzie wskazywać, że reklama jest napisana w formacie kreacji amp4ads <html amp4ads>.

Reklamy z prawidłowym kodem AMP HTML mogą renderować się wcześniej na stronach AMP. Reklamy, które nie zostały zweryfikowane jako prawidłowe, będą się renderować z taką samą szybkością jak reklamy inne niż AMP HTML.

W polu amp_ad_url powinny być zwracane tylko reklamy AMP HTML.

Jeśli w przyszłości wydawca będzie wymagać tylko reklam AMP HTML, reklamy niepodpisane w formacie AMP HTML nie będą renderowane.

W przypadku Authorized Buyers licytujący są obciążani, jeśli zwrócą reklamę inną niż AMP HTML do boksu reklamowego AMP HTML.

Pobieranie po stronie serwera

Aby reklamy AMP HTML były renderowane wczesne, treść reklam AMP HTML musi się renderować bez konieczności wykonywania dodatkowych przeskoków po stronie klienta. Ma to na celu zapobieganie negatywnym skutkom korzystania z aplikacji przez użytkowników z powodu opóźnień reklam i dodatkowych wywołań po stronie klienta.

Gdy licytujący wygra aukcję, giełda wysyła między serwerami żądanie reklamy AMP HTML znajdującej się pod adresem URL podanym w amp_ad_url. Serwery kreacji muszą odpowiedzieć i zwrócić treść w ciągu 300 ms.

Reklama AMP HTML zwrócona przez serwer kreacji jest wstrzykiwana do boksu reklamowego, a następnie renderowana. Pamiętaj, że prawidłowa reklama AMP HTML nie może zawierać elementów iframe ani innych tagów <amp-ad>. Więcej informacji znajdziesz w specyfikacji reklam AMP HTML.

Funkcja dostępna tylko w wersji beta: jeśli jest Ci potrzebna, skontaktuj się z zespołem ds. kont

Podczas pobierania reklamy AMP HTML między serwerami (określonej w ramach amp_ad_url) Authorized Buyers może przekazać nagłówek HTTP i adres IP z przeglądarki użytkownika na serwer kreacji. Dzięki temu serwer kreacji będzie otrzymywać informacje podobne do tych wysyłanych ze standardowego pobierania po stronie klienta. W niektórych przypadkach adres IP może zostać skrócony tylko do pierwszych 3 bajtów (IPv4) lub do pierwszych 6 bajtów (IPv6). Jeśli potrzebujesz tej funkcji, skontaktuj się z zespołem ds. kont. Oto przykładowy nagłówek HTTP:

Linki monitorujące wyświetlenia i makra kliknięć

Kupujący, którzy korzystają z określania stawek w czasie rzeczywistym, często dodają moduły do śledzenia wyświetleń w uporządkowanym polu w odpowiedzi na stawkę (Bid.burl, czyli „adres URL powiadomienia o płatności” w standardzie OpenRTB 2.5).

W przypadku Authorized Buyers będą one uruchamiane po stronie klienta. Komponent amp-pixel uruchamia linki monitorujące podczas renderowania kreacji. Komponent amp-analytics obsługuje bardziej zaawansowane przypadki użycia śledzenia poza renderowaniem.

Reklamy AMP HTML muszą zawierać w kodzie AMP HTML prawidłowe makro kliknięcia. Zwykle będzie to wyglądać mniej więcej tak:

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

Kreacje często zawierają w kodzie kreacji piksele dopasowywania plików cookie. W tym przypadku reklamy AMP HTML mogą używać komponentów amp-pixel i amp-analytics. Jeśli Twojego przypadku użycia nie można użyć za pomocą amp-analytics lub amp-pixel, otwórz problem na GitHubie, aby omówić alternatywne opcje. Cieszymy się, że nowe rozszerzenia są powszechnie używane przez wiele różnych firm. Poznaj szczegółowe wytyczne lub przewodnik techniczny tworzenia nowego rozszerzenia.

Przykładowe adresy URL reklam AMP do testowania

Do testowania możesz użyć tych przykładowych treści reklamy AMP HTML:

Zasoby

Zespół Google i projekt AMP udostępniły szereg materiałów, które pomogą Ci zacząć:

Tworzenie reklam w AMP
Oferty RTB dla partnerów IAB lub grupy OpenRTB