Nesta página, descrevemos como começar a usar os anúncios HTML para AMP com o RTB. Confira os Recursos abaixo para mais informações sobre anúncios HTML para AMP e ferramentas que ajudarão você a começar.
Abordagem de alto nível
Solicitação de lance de RTB
A solicitação de lance de RTB indica se ela vem de uma página AMP e indica os requisitos dos anúncios HTML para AMP.
OpenRTB
página 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; }
Requisitos dos anúncios HTML para AMP
// 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 no Authorized Buyers
página AMP
// Whether this is an AMP page or not. enum AmpPage { // AMP page status unknown. UNKNOWN_AMP_PAGE = 0;
Requisitos dos anúncios HTML para AMP
// Possible requirement types for AMP ads. enum AmpAdRequirementType { // AMP ad requirements unknown. UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 0;
Resposta do lance RTB
OpenRTB
No OpenRTB 3.0 e no modelo comum de publicidade complementar, várias adições para oferecer compatibilidade com anúncios HTML para AMP foram incluídas nas especificações de rascunho mais recentes do IAB, incluindo as seguintes.
Lance | Campo | Attr | Tipo | Descrição |
---|---|---|---|---|
Solicitação | Site.amp |
amp |
número inteiro | O campo Site.amp indica se a página foi renderizada
em AMP, omitido se for desconhecido:0 = a página não é AMP1 = a página foi criada com HTML para AMP |
Solicitação | ampformat |
rend |
número inteiro | A especificação de formato AMP indica os requisitos e o comportamento
de renderização dos anúncios HTML para AMP:1 = os requisitos dos anúncios AMP são desconhecidos2 = os anúncios AMP não são permitidos3 = anúncios AMP ou não AMP são permitidos. Os anúncios AMP não são renderizados antecipadamente4 = os anúncios AMP ou não AMP são permitidos, e os anúncios AMP são obrigatórios.5 = os anúncios AMP são obrigatórios. Anúncios que não são AMP podem ser rejeitados pelo editor500+ = valores específicos de troca. Eles precisam ser comunicados aos bidders com antecedência |
Resposta | display |
curl |
string | Na resposta do lance, foi adicionado display.curl para enviar criativos por meio de um URL, incluindo a compatibilidade com anúncios HTML para AMP.Esse é o URL em que a marcação de criativo será encontrada. Aplicável a tipos de criativos como: anúncios AMP, VAST, DAAST e nativos. Normalmente, apenas um adm ou curl é válido em um determinado anúncio. |
RTB no Authorized Buyers
O campo BidResponse.Ad.amp_ad_url
nas respostas de lance do Authorized Buyers aceita um URL que aponta para o conteúdo do anúncio HTML para AMP. O mesmo campo existe
como uma extensão no objeto Bid
na implementação do OpenRTB
do 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;
Verificação de HTML para AMP válido
Para que os anúncios HTML para AMP sejam renderizados antecipadamente, a troca precisa verificá-los e assiná-los, indicando que o anúncio foi escrito no formato do criativo <html
amp4ads>
amp4ads.
Os anúncios HTML para AMP válidos poderão ser renderizados antes pelas páginas AMP. Os anúncios não verificados como HTML para AMP válidos são renderizados na mesma velocidade que os outros tipos de HTML.
Somente anúncios HTML para AMP precisam ser retornados no amp_ad_url
.
No futuro, se um editor exigir apenas anúncios HTML para AMP, os anúncios não assinados dessa forma não serão renderizados.
Com o Authorized Buyers, os bidders ainda vão ser cobrados se retornarem um anúncio que não seja HTML para AMP para um espaço de anúncio obrigatório para anúncios HTML para AMP.
Busca do lado do servidor
Para que os anúncios HTML para AMP sejam renderizados antecipadamente, o conteúdo do anúncio HTML para AMP precisa ser renderizado sem a necessidade de saltos adicionais do cliente. Isso foi projetado para evitar experiências do usuário ruins devido à latência do anúncio e a chamadas extras do lado do cliente.
Depois que um bidder vence o leilão, a troca faz uma
solicitação de servidor para servidor para recuperar o conteúdo do anúncio HTML para AMP localizado no URL
fornecido em amp_ad_url
. Os servidores de criativos precisam responder e retornar
conteúdo em até 300 ms.
O anúncio HTML para AMP retornado do servidor de criativos será injetado no
adslot e, em seguida, renderizado. Um anúncio HTML para AMP válido não pode conter iframes ou outras tags <amp-ad>
. Consulte as especificações de anúncios HTML para AMP para mais detalhes.
Somente recurso Beta: entre em contato com sua equipe de conta se precisar disso
Durante a recuperação de servidor para servidor do anúncio HTML para AMP (especificado em
amp_ad_url
), o Authorized Buyers pode transmitir o cabeçalho HTTP e o IP
do navegador do usuário para o servidor de criativos. Isso garante que o servidor de criativos receba informações semelhantes às enviadas de uma busca padrão do lado do cliente. Em alguns casos, o endereço IP pode ser truncado para apenas os primeiros 3 bytes
(IPv4) ou os primeiros 6 bytes (IPv6). Entre em contato com sua equipe de conta se precisar desse
recurso. Veja um exemplo de cabeçalho HTTP:
URLs de rastreamento de impressões e macros de cliques
Os compradores de RTB geralmente incluem rastreadores de impressões como um campo estruturado na
resposta do lance. Esse é Bid.burl
, o "URL de aviso de faturamento" no
OpenRTB 2.5.
Com o Authorized Buyers, isso é feito no lado do cliente. O amp-pixel aciona URLs de rastreamento quando o criativo é renderizado. O amp-analytics pode lidar com casos de uso de rastreamento mais avançados além da renderização.
Os anúncios HTML para AMP precisam ter uma macro de clique válida nesse HTML. Isso geralmente assume a forma de algo assim:
<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>
Correspondência de cookie
Os criativos geralmente incluem pixels de correspondência de cookie no código. Os anúncios HTML para AMP podem usar os componentes amp-pixel e amp-analytics para esse caso de uso. Se o caso de uso não puder ser acomodado usando
amp-analytics
ou amp-pixel
, abra um
problema do GitHub para discutir
opções alternativas. Aceitamos novas extensões que podem ser usadas
por várias empresas diferentes. Consulte as diretrizes detalhadas ou um guia técnico para criar uma nova extensão.
Exemplos de URLs de anúncios AMP para testes
Você pode usar a seguinte amostra de conteúdo do anúncio HTML para AMP nos testes:
Recursos
O Projeto AMP e o Google lançaram vários recursos para ajudar você a começar:
- Como criar anúncios em AMP
- Especificações de formato do criativo de anúncios HTML para AMP (GitHub)
- Visão geral de anúncios HTML para AMP (GitHub)
- Site de anúncios HTML para AMP do projeto AMP
- Exemplos de anúncios HTML para AMP
- Comparação de velocidade: veja a velocidade de carregamento de um anúncio HTML para AMP em comparação com um anúncio normal. Melhor visualização em uma conexão 3G.
- Propostas específicas de RTB para o grupo do IAB / OpenRTB