AMP

Dettagli tecnici delle storie web

Important: this documentation is not applicable to your currently selected format websites!

Questa guida spiega tutti i dettagli tecnici e le procedure consigliate per creare con successo storie web tramite AMP.

Validità AMP

Una Storia web dal punto di vista tecnico è una singola pagina web realizzata tramite AMP e conforme alle specifiche AMP. Essa deve:

  • Iniziare con il doctype <!doctype html>.
  • Contenere un tag di primo livello <html ⚡> (<html amp> è ugualmente accettato).
  • Contenere i tag <head> e <body> (questi sono opzionali in HTML).
  • Contenere un tag <meta charset="utf-8"> come primo elemento figlio del tag <head>.
  • Contenere un tag <script async src="https://cdn.ampproject.org/v0.js"></script> all'interno del proprio tag <head>. Le procedure consigliate suggeriscono l'inclusione dello script il prima possibile nella sezione <head>.
  • Contenere un tag <link rel="canonical" href="page/url"> all'interno della propria sezione <head> con l'elemento href che punta all'URL della Storia web.
  • Contenere un tag <meta name="viewport" content="width=device-width"> all'interno del tag <head>. Si consiglia inoltre di includere l'attributo initial-scale=1.
  • Contenere il codice boilerplate AMP nel tag <head>.

La differenza tra una semplice pagina web AMP e una storia web realizzata con AMP è il componente amp-story È l'unico elemento figlio diretto della sezione <body> del documento e deve contenere l'attributo standalone. Tutte le pagine, i livelli e gli elementi della Storia web sono definiti all'interno dei tag <amp-story>.

<!DOCTYPE html>
<html >
  <head>
    <meta charset="utf-8" />
    <title>Joy of Pets</title>
    <link rel="canonical" href="pets.html" />
    <meta name="viewport" content="width=device-width" />
    <style amp-boilerplate>
      body {
        -webkit-animation: -amp-start 8s steps(1, end) 0s 1 normal both;
        -moz-animation: -amp-start 8s steps(1, end) 0s 1 normal both;
        -ms-animation: -amp-start 8s steps(1, end) 0s 1 normal both;
        animation: -amp-start 8s steps(1, end) 0s 1 normal both;
      }
      @-webkit-keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
      @-moz-keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
      @-ms-keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
      @-o-keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
      @keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
    </style>
    <noscript
      ><style amp-boilerplate>
        body {
          -webkit-animation: none;
          -moz-animation: none;
          -ms-animation: none;
          animation: none;
        }
      </style></noscript
    >
    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <script
      async
      custom-element="amp-video"
      src="https://cdn.ampproject.org/v0/amp-video-0.1.js"
    ></script>
    <script
      async
      custom-element="amp-story"
      src="https://cdn.ampproject.org/v0/amp-story-1.0.js"
    ></script>
    <style amp-custom>
      ...;
    </style>
  </head>
  <body>
    <!-- Cover page -->
    <amp-story
      standalone
      title="Joy of Pets"
      publisher="AMP tutorials"
      publisher-logo-src="assets/AMP-Brand-White-Icon.svg"
      poster-portrait-src="assets/cover.jpg"
    >
      <amp-story-page id="cover">
        <amp-story-grid-layer template="fill">
          <amp-img
            src="assets/cover.jpg"
            width="720"
            height="1280"
            layout="responsive"
          >
          </amp-img>
        </amp-story-grid-layer>
        <amp-story-grid-layer template="vertical">
          <h1>The Joy of Pets</h1>
          <p>By AMP Tutorials</p>
        </amp-story-grid-layer>
      </amp-story-page>

      <!-- Page 1 -->
      <amp-story-page id="page1">
        <amp-story-grid-layer template="vertical">
          <h1>Cats</h1>
          <amp-img
            src="assets/cat.jpg"
            width="720"
            height="1280"
            layout="responsive"
          >
          </amp-img>
          <q
            >Dogs come when they're called. Cats take a message and get back to
            you. --Mary Bly</q
          >
        </amp-story-grid-layer>
      </amp-story-page>
      ...
    </amp-story>
  </body>
</html>

Per ulteriori informazioni, è possibile seguire l'esercitazione Crea la tua prima Storia Web e leggere la documentazione di riferimento di amp-story.

Prestazioni nei momenti di punta ed esperienza utente

Gli utenti potrebbero visualizzare le storie web in aree con connessione di rete scadente o su dispositivi obsoleti. Per garantire sempre la migliore esperienza possibile, si suggerisce di applicare le seguenti procedure consigliate.

Colore dello sfondo

Occorre indicare un colore dello sfondo per ogni pagina di una Storia web. Definire un colore dello sfondo fornisce un buon fallback se le condizioni dell'utente gli impediscono di scaricare immagini o risorse video. Si consiglia di scegliere un colore rappresentativo del colore dominante della risorsa di sfondo prevista per la pagina oppure di utilizzare un tema cromatico coerente per tutte le pagine della storia. Per assicurare la leggibilità inoltre utilizzare un colore di fondo diverso da quello del testo.

Definire il colore dello sfondo per le pagine all'interno dei tag <style amp-custom> nell'intestazione del documento della Storia web o inline nel componente <amp-story-page>.

Stratificazione degli elementi

L'intestazione di sistema contiene controlli come le icone di disattivazione audio e di condivisione. Essa appare a un valore dell'indice z più alto rispetto all'immagine di sfondo e ai video. Verificare che nessuna informazione essenziale sia coperta da queste icone.

Proporzioni

Le risorse delle Storie web vanno definite con proporzioni 9:16. Poiché l'altezza e la larghezza della pagina variano a seconda dei browser e dei dispositivi, mai collocare i contenuti essenziali vicino ai bordi della pagina.

Immagini dei poster

Le immagini di un poster sono visualizzate agli utenti durante il download dei video. L'immagine del poster dovrebbe essere rappresentativa del video per consentire una transizione graduale. Per indicare l'immagine di un poster aggiungere l'attributo poster al relativo elemento amp-video e farlo puntare alla posizione dell'immagine.

<amp-video autoplay loop
  width="720" height="1280" layout="responsive"
  poster="images/kitten-playing.png">
  <source src="videos/kitten-playing.mp4"
    type="video/mp4" />
</amp-video>

Video

Tutti i video devono essere aggiunti tramite il componente amp-video.

<amp-video controls
  width="640"
  height="360"
  layout="responsive"
  poster="/static/inline-examples/images/kitten-playing.png">
  <source src="/static/inline-examples/videos/kitten-playing.webm"
    type="video/webm" />
  <source src="/static/inline-examples/videos/kitten-playing.mp4"
    type="video/mp4" />
  <div fallback>
    <p>This browser does not support the video element.</p>
  </div>
</amp-video>

Risoluzione e qualità

Codificare i video per adattare la qualità alle seguenti ottimizzazioni consigliate:

MP4 -crf 23
WEBM -b:v 1M

Mantenere la durata dei segmenti HLS inferiore ai 10 secondi.

Formato e dimensioni

Mantenere la dimensione dei video al di sotto dei 4 MB per garantire prestazioni ottimali. Considerare anche l'idea di suddividere i video di grandi dimensioni su più pagine.

Se è possibile fornire un solo formato video, scegliere MP4. Se possibile, utilizzare video HLS e indicare MP4 come opzione di fallback per garantire la compatibilità del browser. Utilizzare il seguente codec video:

MP4, HLS e DASH H.264
WEBM VP9

Uso di <source> vs src

Utilizzare più elementi figli <source> all'interno del componente <amp-video> per specificare la sorgente video sull'attributo src. L'utilizzo dell'elemento <source> consente di specificare il tipo di video e di aggiungere sorgenti video di backup. È necessario utilizzare l'attributo type per specificare il tipo MIME. Usare application/x-mpegurl o application/vnd.apple.mpegurl per i video HLS. Per tutti gli altri tipi di video, usare il prefisso MIME video/ seguito dal formato video, ad esempio ”video/mp4”.

<amp-video
  id="video-page1"
  autoplay
  loop
  layout="fill"
  poster="https://example.com/media/poster.jpg"
>
  <source
    src="https://amp-example.com/media/movie.m3u8"
    type="application/vnd.apple.mpegurl"
  />
  <source src="https://amp-example.com/media/movie.mp4" type="video/mp4" />
</amp-video>

Avanzamento automatico dopo i video

L'attributo auto-advance-after aggiunto al componente amp-story-page indica se e quando inserire un avanzamento di pagina di una storia senza tocchi da parte dell'utente. Per l'avanzamento automatico dopo un video, far puntare l'attributo all'ID video.

<amp-story-page auto-advance-after="myvideo"></amp-story-page>

Esperienza desktop

Il formato delle Storie web supporta un'esperienza desktop opzionale. Questo permette di rendere l'esperienza desktop una modalità coinvolgente a tutto schermo, sostituendo il formato predefinito con tre pannelli verticali e permette agli utenti di dispositivi mobili di visualizzare la pagina anche quando il dispositivo è tenuto in orizzontale.

Attivare il supporto del formato desktop aggiungendo l'attributo supports-landscape al componente <amp-story>.

<amp-story
  standalone
  supports-landscape
  title="Joy of Pets"
  publisher="AMP tutorials"
  publisher-logo-src="assets/icon.svg"
  poster-portrait-src="assets/cover.jpg"
>
</amp-story>