AMP

Technische Besonderheiten von Web Storys

Diese Anleitung geht auf alle technischen Besonderheiten und Best Practices ein, die du für eine erfolgreiche Erstellung von Web Storys mit AMP benötigst.

Gültiges AMP

Eine Web Story ist technisch gesehen eine einzelne Webseite, die mit AMP erstellt wurde und den AMP Spezifikationen entspricht:

  • Sie beginnt mit dem Doctype <!doctype html>.
  • Se enthält das Tag <html ⚡> oder <html amp> der obersten Ebene.
  • Sie enthält die Tags <head> und <body>.
  • Sie enthält das Tag <meta charset="utf-8"> als untergeordnetes Element des Tags <head>.
  • Sie enthält das Tag <script async src="https://cdn.ampproject.org/v0.js"></script> in ihrem Tag <head>. Als Best Practice solltest du das Skript so früh wie möglich in <head> platzieren.
  • Sie enthält das Tag <link rel="canonical" href="page/url"> in ihrem Tag <head>, wobei href auf die URL der Web Story verweist.
  • Sie enthält das Tag <meta name="viewport" content="width=device-width"> innerhalb des Tags <head>. Es wird auch empfohlen, 'initial-scale=1' anzugeben.
  • Sie enthält den Code der AMP Boilerplate im Tag <head>.

Der Unterschied zwischen einer AMP Webseite und einer mit AMP erstellten Web Story liegt in der Komponente amp-story. Das ist das einzige direkt untergeordnete Element des Elements <body> des Dokuments und muss das Attribut standalone enthalten. Alle Seiten, Ebenen und Elemente der Web Story werden innerhalb der Tags <amp-story> definiert.

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

Sieh dir das Tutorial zum Erstellen deiner ersten Webstory an und lies die Referenzdokumentation zu amp-story, um mehr zu erfahren.

Spitzenleistung und bestmögliche Benutzererfahrung

Benutzer sehen sich die Web Storys möglicherweise in Gebieten mit schlechter Internetverbindung oder auf älteren Geräten an. Die folgenden Best Practices sorgen für die bestmögliche Benutzererfahrung.

Hintergrundfarbe

Gib für jede Seite der Web Story eine Hintergrundfarbe an. Eine Hintergrundfarbe bietet ein gutes Fallback für den Fall, dass die Benutzer keine Bilder oder Video Assets herunterladen können. Wähle eine Farbe, die der dominanten Farbe des eigentlichen Hintergrundobjekts der Seite entspricht, oder verwende eine einheitliche Farbpalette für alle Seiten der Story. Stelle sicher, dass sich die Hintergrundfarbe für gute Lesbarkeit von der Textfarbe unterscheidet.

Lege die Hintergrundfarbe für die Seiten innerhalb der Tags <style amp-custom> im Kopf des Web Story Dokuments oder inline in der Komponente <amp-story-page> fest.

Überlagerung von Elementen

Der Systemheader enthält Steuerelemente wie die Symbole zum Stummschalten und Teilen. Er besitzt einen höheren z-Index als das Bild oder Video im Hintergrund. Stelle sicher, dass diese Symbole keine wichtigen Informationen verdecken.

Seitenverhältnis

Gestalte deine Web Story Assets in einem Seitenverhältnis von 9:16. Da die Höhe und Breite der Seiten von Browser zu Browser unterschiedlich ist, solltest du keine wichtigen Informationen in der Nähe der Seitenränder platzieren.

Standbilder

Während des Downloads von Videos wird dem Benutzer ein Standbild angezeigt. Das Standbild sollte für das Video repräsentativ sein, um einen reibungslosen Übergang zu ermöglichen. Gib ein Standbild an, indem du das Attribut poster zu deinem amp-video Element hinzufügst und den Speicherort des Bildes referenzierst.

<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

Alle Videos müssen über die Komponente amp-video hinzugefügt werden.

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

Auflösung und Qualität

Passe beim Kodieren deiner Videos die Qualität für die folgenden empfohlenen Optimierungen an:

MP4 -crf 23
WEBM -b:v 1M

Versuche, HLS Segmenten eine Dauer von höchstens 10 Sekunden zu geben.

Format und Größe

Für eine optimale Leistung sollten deine Videos kleiner sein als 4 MB. Teile große Videos eventuell auf mehrere Seiten auf.

Wenn du nur ein einziges Videoformat bereitstellen kannst, sollte es MP4 sein. Verwende nach Möglichkeit HLS Video und gibt MP4 als Fallback zwecks Browserkompatibilität an. Verwende den folgenden Video Codec:

MP4, HLS und DASH H.264
WEBM VP9

Angabe von vs src

Verwende untergeordnete <source> Elemente in der Komponente <amp-video>, um die Videoquelle mit dem Attribut src anzugeben. Mit dem Element <source> kannst du den Videotyp angeben und Videoquellen als Backup hinzufügen. Du musst das Attribut type verwenden, um den MIME Typ anzugeben. Verwende application/x-mpegurl oder application/vnd.apple.mpegurl für HLS Videos. Verwende für alle anderen Videotypen das MIME Präfix video/ gefolgt vom Videoformat, z. B. ”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>

Automatisches Vorrücken nach dem Video

Das Attribut auto-advance-after, das amp-story-page verfügbar macht, gibt an, ob und wann eine Story Seite vorrücken soll, ohne dass Benutzer darauf tippen. Referenziere im Attribut die Video ID, um nach einem Video in der Story vorzurücken.

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

Desktopdarstellung

Das Web Story Format unterstützt eine optionale Desktopdarstellung. Das ermöglicht die Darstellung in einem immersiven Randlosmodus, der die Standardanzeige mit drei Bereichen im Hochformat ersetzt und mobilen Benutzern ermöglicht, die Story auf horizontal gehaltenen Geräten anzusehen.

Aktiviere die Unterstützung für das Desktopformat, indem du der Komponente <amp-story> das Attribut supports-landscape hinzufügst.

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