Esto es similar a esta pregunta, pero necesito ajustar dinámicamente la altura de un amplificador integrado en lugar de un marco de amplificador.
cómo crear iframe AMP ajusta su altura de acuerdo con el contenido
Esta página ofrece ejemplos claros de cómo ajustar la altura de un marco de amplificador:
https://amp.dev/documentation/examples/components/amp-iframe/
Cuando hago lo mismo para un amp-embed, desafortunadamente no funciona y no he encontrado instrucciones similares para un amp-embed o un amp-ad.
Aquí está el marco del amplificador:
<amp-iframe width="300" height="10" layout="responsive" sandbox="allow-scripts allow-same-origin" resizable frameborder="0" src="http://localhost/loader.html" > <div overflow></div> </amp-iframe>Y en el archivo loader.html, después de cargar el contenido, hago esta llamada:
window.parent.postMessage({sentinel: 'amp', type: 'embed-size', height: document.body.scrollHeight},'*');Se puede cambiar el tamaño de amp-embed y amp-ad mediante la llamada a la API requestResize. Aquí hay más información:
Los anuncios pueden llamar a la API especial window.context.requestResize(width, height, opt_hasOverflow) para enviar una solicitud de cambio de tamaño.
Una vez que se procesa la solicitud, el tiempo de ejecución de AMP intentará acomodar esta solicitud lo antes posible, pero tendrá en cuenta dónde está leyendo el lector actualmente, si el desplazamiento está en curso y cualquier otro factor de rendimiento o UX.
https://github.com/ampproject/amphtml/blob/main/ads/README.md#ad-resizing