AMP

amp-analytics

Inserta de forma dinámica anuncios en una página AMP mediante un archivo de configuración servido de forma remota.

Disponibilidad Experimental
Secuencia de comandos obligatoria <script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>
Diseños admitidos N/D

Comportamiento

Si hay un número suficiente de emplazamientos válidos (definidos en la configuración), amp-auto-ads intenta insertar anuncios adicionales teniendo en cuenta ciertas restricciones de la red publicitaria. Estas restricciones limitan:

  • El número total de anuncios que se pueden insertar
  • La distancia mínima que debe haber entre anuncios adyacentes

Además, los anuncios solo se insertarán en las ubicaciones de la página que no provoquen una redistribución inaceptable (según lo determinado por attemptChangeSize).

La etiqueta <amp-auto-ads> debe estar colocada como primer elemento secundario de <body>.

Debe especificarse en la etiqueta el tipo de red publicitaria y cualquier otra información que requiera dicha red.

<amp-auto-ads
    type="adsense"
    data-ad-client="ca-pub-5439573510495356">
  </amp-auto-ads>

Redes publicitarias admitidas

Atributos

type (obligatorio) Identificador de la red publicitaria.
data-foo-bar La mayoría de las redes publicitarias requieren más configuración, que se puede transferir a la red mediante atributos HTML del tipo data-. Los nombres de los parámetros pasan de ser nombres estándar de atributos de datos (separados mediante guiones) a alternar mayúsculas y minúsculas (camel case). Por ejemplo, "data-foo-bar" se envía al anuncio para su configuración como "fooBar". Consulta la documentación de la red publicitaria específica para saber qué atributos se pueden usar.
atributos comunes Este elemento incluye atributos comunes que se aplican a los componentes de AMP.

Especificación de la configuración

La configuración define en qué parte de la página <amp-auto-ads> puede colocar anuncios. La configuración se obtiene de la red publicitaria de terceros a la que enlaza la URL que aparece en ad-network-config.js. La configuración debe ser un objeto JSON serializado que coincida con la definición de ConfigObj que se describe más abajo.

Configuración de ejemplo

En el siguiente ejemplo se especifica que el anuncio debe posicionarse inmediatamente después de todos los elementos <P class='paragraph'> que se encuentren dentro del tercer <DIV id='domId'> de la página. El anuncio que se coloque en cualquiera de estas posiciones debe ser de tipo BANNER y tener un margen superior de 4 píxeles y un margen inferior de 10.

{
  "placements": [
    {
      "anchor": {
        "selector": "DIV#domId",
        "index": 2,
        "sub": {
          "selector": "P.paragraph",
          "all": true,
        },
      },
      "pos": 4,
      "type": 1,
      "style": {
        "top_m": 5,
        "bot_m": 10,
      },
    },
  ]
}

Definiciones de objetos

ConfigObj

Estos son los campos que se especifican en el objeto de configuración:

Nombre del campo Tipo Descripción
placements Array<!PlacementObj> Campo obligatorio que indica las partes de la página en las que se pueden insertar anuncios.
attributes Object<string, string> Campo opcional que sirve para especificar la asignación de valores a nombres de atributo y la aplica a todos los elementos <amp-ad> que se inserten mediante esta configuración. Solo se permiten los siguientes nombres de atributo:
  • type
  • layout
  • data-* (es decir, cualquier atributo de datos)
adConstraints AdConstraintsObj Campo opcional que especifica las restricciones que se deben utilizar al colocar anuncios en la página. Si no se especifican, amp-auto-ads intentará utilizar las restricciones predeterminadas definidas en ad-network-config.js.

PlacementObj

Campos que se deben especificar en el objeto de configuración placements:

Nombre del campo Tipo Descripción
anchor AnchorObj Campo obligatorio que proporciona información que se utiliza para buscar los elementos de la página a los que están anclados los emplazamientos de anuncios.
pos RelativePositionEnum Campo obligatorio que indica el emplazamiento del anuncio en relación con su elemento de anclaje.
type PlacementTypeEnum Campo obligatorio que indica el tipo de emplazamiento.
style PlacementStyleObj Campo opcional que indica cualquier estilo que se deba aplicar a un anuncio insertado en este emplazamiento.
attributes Object<string, string> Campo opcional que sirve para asignar un valor a un nombre de atributo y aplicar esto a todos los elementos <amp-ad> insertados en este emplazamiento. Cualquier atributo especificado aquí anula los demás que tengan el mismo nombre y aparezcan en el elemento ConfigObj superior. Solo se permiten los siguientes nombres de atributo:
  • type
  • layout
  • data-* (es decir, cualquier atributo de datos)

AnchorObj

Los campos que se especifican en el objeto de configuración anchor son:

Nombre del campo Tipo Descripción
selector cadena Campo obligatorio que define un selector de CSS para elegir los elementos de este nivel de la definición del campo "anchor".
index número Campo opcional que sirve para especificar el índice de los elementos elegidos por el selector a los que se debe limitar este nivel de la definición de "anchor". De forma predeterminada, el valor es 0 si el campo all es "false".
all boolean Se ignora si se ha especificado el campo index. Si se define en true, se incluirán todos los elementos que haya elegido el selector. Si no quieres que se incluyan, debes definirlo en false.
min_c número Campo opcional que especifica la longitud mínima de la propiedad textContent de un elemento para que se pueda incluir. El valor predeterminado es 0.
sub objeto AnchorObj Campo opcional que especifica un objeto AnchorObj recursivo que seleccionará los elementos de cualquier elemento seleccionado en este nivel de definición de "anchor".

PlacementStyleObj

Los campos que se especificarán en el objeto de configuración style son:

Nombre del campo Tipo Descripción
top_m número Campo opcional que indica el margen superior en píxeles que debe tener cualquier anuncio insertado en esta posición. El valor predeterminado es 0.
bot_m número Campo opcional que indica el margen inferior en píxeles que debe tener cualquier anuncio insertado en esta posición. El valor predeterminado es 0.

RelativePositionEnum

Los valores ENUM del campo pos del objeto de configuración placements son:

Nombre Valor Descripción
BEFORE 1 El anuncio debe insertarse como elemento del mismo nivel inmediatamente antes del anclaje.
FIRST_CHILD 2 El anuncio debe insertarse como el primer elemento secundario del anclaje.
LAST_CHILD 3 El anuncio debe insertarse como el último elemento secundario del anclaje.
AFTER 4 El anuncio debe insertarse como elemento del mismo nivel inmediatamente después del anclaje.

PlacementTypeEnum

Los valores ENUM del campo type del objeto de configuración placements son:

Nombre Valor Descripción
BANNER 1 Describe una posición de anuncio de banner.

AdConstraintsObj

Los campos que se especifican en el objeto de configuración adConstraints son:

Nombre del campo Tipo Descripción
initialMinSpacing cadena Campo obligatorio que indica en el momento de la inserción la distancia mínima que debe haber entre un anuncio y cualquier otro que ya esté en la página (colocado de forma manual o que haya insertado amp-auto-ads). Los valores se expresan como un número junto a una forma abreviada de la unidad correspondiente. Por ejemplo, "10px" quiere decir "10 píxeles", mientras que "0.5vp" representa la mitad de la altura de un viewport. Los valores negativos no son válidos. Las unidades admitidas son:
  • px: píxeles
  • vp: múltiplo de la altura del viewport
Este valor solo se aplica cuando el número de anuncios que ya están en la página es inferior al de cualquier coincidencia de adCount que se especifique en el campo subsequentMinSpacing.
subsequentMinSpacing Array<!SubsequentMinSpacingObj> Campo opcional que especifica el espaciado entre anuncios que se debe aplicar en función de la cantidad de anuncios que hay en la página en el momento de la inserción.
maxAdCount número Campo obligatorio que especifica el número máximo de anuncios que amp-auto-ads puede hacer que haya en una página. Se cuentan tanto los anuncios colocados manualmente como los que inserta amp-auto-ads. Por ejemplo, si este campo se define en 5 y hay 3 anuncios colocados de forma manual en la página, amp-auto-ads colocaría un máximo de 2 anuncios adicionales.

SubsequentMinSpacingObj

Campos que se especifican en el objeto de configuración subsequentMinSpacing. Las entradas de este objeto`` se pueden utilizar para cambiar el espaciado requerido entre los anuncios adicionales en función del número de anuncios que ya se hayan incluido en la página. Por ejemplo, supongamos que se da la siguiente situación:

  • Hay 2 anuncios en la página.
  • En el campo subsequentMinSpacing aparece: [ {adCount: 3, spacing: "500px"}, {adCount: 5, spacing: "1000px"}, ] ```

Al principio, hay 2 anuncios en la página, por lo que no coincide ninguna asignación. Por lo tanto, se asigna el espaciado mínimo predeterminado, initialMinSpacing, en el objeto AdConstraints. amp-auto-ads intentará insertar anuncios hasta que se agoten los emplazamientos disponibles, sin infringir las reglas de adConstraints. Cuando amp-auto-ads haya colocado el primer anuncio, habrá 3 anuncios en la página. Dado que en el parámetro subsequentMinSpacing hay una asignación de 3 anuncios o más, el espaciado mínimo será de 500 píxeles. Esto se aplica hasta que hay 5 anuncios en la página, ya que hay una regla para 5 anuncios. Si se insertan 6 o más, el espacio entre anuncios deberá ser de 1000 píxeles como mínimo.

Nombre del campo Tipo Descripción
adCount número Campo obligatorio que indica el número mínimo de anuncios presentes en la página que provoca que se aplique esta regla (si no hay otra regla que tenga prioridad). Para obtener una explicación más detallada, consulta la descripción que aparece más arriba.
spacing cadena Campo obligatorio que especifica el espacio entre anuncios mínimo que se aplica cuando se cumple esta regla en función de adCount. Los valores se expresan como un número junto a una forma abreviada de la unidad correspondiente. Por ejemplo, "10px" quiere decir "10 píxeles", mientras que "0.5vp" representa la mitad de la altura de un viewport. Los valores negativos no son válidos. Las unidades admitidas son:
  • px: píxeles
  • vp: múltiplo de la altura del viewport

Validación

Consulta las reglas de amp-auto-ads en la especificación de la herramienta de validación de AMP.

¿Necesitas más ayuda?

You've read this document a dozen times but it doesn't really cover all of your questions? Maybe other people felt the same: reach out to them on Stack Overflow.

Go to Stack Overflow
Found a bug or missing a feature?

The AMP project strongly encourages your participation and contributions! We hope you'll become an ongoing participant in our open source community but we also welcome one-off contributions for the issues you're particularly passionate about.

Go to GitHub