구글 AMP – Story

6 min read

Amp-story는 사용자가 스토리에 계속 참여할 수 있도록 콘텐츠를 표시하는 데 사용되는 amp 구성 요소입니다. 예를 들어 브랜드에 대해 소개하는 일련의 이미지를 사용할 수 있습니다.

amp-story로 작업하려면 아래와 같이 스크립트를 포함해야 합니다.

<script async custom-element="amp-story" 
src="https://cdn.ampproject.org/v0/amp-story-1.0.js"></script>

이 글에서는 amp-story가 무엇이며 어떻게 작동하는지 이해하겠습니다. 이미지 갤러리가 있고 페이지에 동일하게 표시하고 싶다고 가정합니다. amp 페이지에서 amp-story 구성 요소를 사용하여 사용자에게 멋지고 상호 작용하는 UI로 보이도록 만들 수 있습니다.

amp-story 태그의 형식은 다음과 같습니다.

<amp-story standalone> ---> 메인 스토리 태그
  <amp-story-page id="page-1"> ---> 스토리 내부 페이지 (예 : page1)
    <amp-story-grid-layer template="fill"> --> 페이지 레이어 1. 둘 이상의 레이어를 가질 수 있습니다.
      //여기에 html 요소 또는 amp 구성 요소 추가
    </amp-story-grid-layer>
    <amp-story-grid-layer template="fill"> --> 페이지 레이어 1. 둘 이상의 레이어를 가질 수 있습니다.
      //여기에 html 요소 또는 amp 구성 요소 추가
    </amp-story-grid-layer>
    ...
  </amp-story-page>
  <amp-story-page id="page-2"> ---> 스토리 내부 페이지 (예 : page2)
    <amp-story-grid-layer template="fill"> --> 페이지에 대한 레이어 2. 둘 이상의 레이어를 가질 수 있습니다.
      //여기에 html 요소 또는 amp 구성 요소 추가
    </amp-story-grid-layer>
    ...
  </amp-story-page>
  ...
</amp-story>

다음과 같이 amp-story에 추가된 몇 가지 추가 속성이 있습니다.

<amp-story standalone title="My Story"
           publisher="The AMP Team"
           publisher-logo-src="publisherlogo image here"
           poster-portrait-src="poster portrait here"
           poster-square-src="poster square image here"
           poster-landscape-src="poster landscape image here">

이 기능은 amp를 사용하여 스토리텔링을 매우 인터렉티브하게 만듭니다.

다음 코드는 amp-story의 작동 예를 보여줍니다. 동일한 출력은 데스크톱 및 모바일 모드에 대해 표시됩니다.

예제

<!doctype html>
<html ⚡ lang="ko">
<head>
  <meta charset="utf-8">
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <title>Google AMP - Story</title>
  <link rel="canonical" href="https://googleblogamp.blogspot.com/2021/01/google-amp-story.html">
  <meta name="viewport" content="width=device-width,minimum-scale=1">
  <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>
  <style amp-custom>
    amp-story {
      font-family: Roboto, Helvetica, Arial, sans-serif;
    }
    amp-story-page * {
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <amp-story standalone
             title="Stories in AMP - Hello World"
             publisher="AMP Project">
    <amp-story-page id="page-1">
      <amp-story-grid-layer template="fill">
        <amp-img src="images/christmas1.jpg"
                 width="300" height="250" 
                 layout="responsive">
        </amp-img>
      </amp-story-grid-layer>
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is an AMP Story.</p>
      </amp-story-grid-layer>
    </amp-story-page>
    <amp-story-page id="page-2">
      <amp-story-grid-layer template="fill">
        <amp-img src="images/christmas5.jpg"
                 width="300" height="250" 
                 layout="responsive">
        </amp-img>
      </amp-story-grid-layer>
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is an AMP Story.</p>
      </amp-story-grid-layer>
    </amp-story-page>
    <amp-story-page id="page-3">
      <amp-story-grid-layer template="fill">
        <amp-img src="images/christmas3.jpg"
                 width="300" height="250" 
                 layout="responsive">
        </amp-img>
      </amp-story-grid-layer>
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is an AMP Story.</p>
      </amp-story-grid-layer>
    </amp-story-page>
    <amp-story-page id="page-4">
      <amp-story-grid-layer template="fill">
        <amp-img src="images/christmas4.jpg"
                 width="300" height="250" 
                 layout="responsive">
        </amp-img>
      </amp-story-grid-layer>
      <amp-story-grid-layer template="vertical">
        <h1>Hello World</h1>
        <p>This is an AMP Story.</p>
      </amp-story-grid-layer>
    </amp-story-page> 
    <amp-story-bookend src="ampstory.json" layout="nodisplay">
    </amp-story-bookend> 
  </amp-story> 
</body>
</html>

ampstory.json

{
  "bookendVersion": "v1.0",
  "shareProviders": [
    "email",
    "twitter",
    "tumblr",
    {
      "provider": "facebook",
      "app_id": "254325784911610"
    }
  ],
  "components": [
    {
      "type": "heading",
      "text": "Introduction"
    },
    {
      "type": "small",
      "title": "Next Story is on Car Brands",
      "url": "ampcarbrand.html",
      "image": "images/audi.jpg"
    }
  ]
}

데스크탑

이것이 스토리 섹션이 표시되는 방식입니다. 동영상이나 기타 amp 구성 요소를 추가하여 스토리를보다 상호 작용할 수도 있습니다.

스토리의 끝에 도달하면 아래와 같이 amp-bookend에 주어진 내용이 표시됩니다.

<amp-story-bookend src="ampstory.json" layout="nodisplay">
</amp-story-bookend>

amp-bookend에 ampstory.json 파일을 제공했습니다. json 파일에는 아래와 같이 다음 스토리의 미리보기에 대한 세부 정보가 있습니다. 사용자가 오른쪽에 표시된 세 개의 점을 클릭하면 다음 화면이 표시됩니다.

스토리를 다시 로드하는 리플레이 버튼을 제공합니다. 자동차 브랜드의 스토리를 보여주는 자동차 이미지를 클릭하면 됩니다.

모바일 모드는 다음과 같습니다.

방문해주셔서 감사합니다. 즐거운 하루 되세요!

관심 있을 만한 글

  • 아코디언 메뉴가 확장되면, AMP가 해당 섹션에 expanded 속성을 적용합니다. 이 expanded 속성을 사용하여 아코디언 메뉴 개선할 수 있습니다. 다음과 같이 확장된 상태의 아코디언 섹션을 CSS로 타겟팅 할 수 있습니다. expanded: amp-accor…
  • AMP의 유용한 레이아웃 속성 중 하나인 flex-item은 플렉스가 적용된 상위 요소에서 자식 요소가 사용 가능한 모든 공간을 차지합니다. 이를 사용하여 여러 가지 레이아웃을 만들 수 있는데 그 중 몇 가지를 간략히 살펴보겠습니다. 1. flex-item 가로 배열 flex-item은 기본값으로 …
  • AMP에는 팝업 및 해제 가능한 알림을 표시하기 위한 기본 구성 요소인 amp-user-notification를 제공합니다. 이 구성 요소의 일반적인 용도는 쿠키 경고 (유럽 연합 EU에서 쿠키를 사용하는 사이트에 대한 사용자 동의 알림)를 표시하는 것입니다. 사용자…
  • 글꼴 선택은 사용자의 읽기 환경 및 가독성에 중요하며, 그뿐만 아니라 웹 페이지를 차별화하여 제공하는 데 도움이 될 수 있습니다. 글꼴은 주로 웹 페이지의 테마 및 디자인에 따라 달라집니다. 대부분의 시스템에서 다양한 글꼴을 사용할 수 있습니다. 기본적으로 제공되는 글꼴에는 다음이 포함됩니다. …
  • 사용자 경험을 개선하려면 상황에 따라 적절하게 자리 표시자 및 대체 요소를 사용해야 합니다. Placeholder는 해당 요소가 렌더링 될 준비가 될 때까지 요소를 대신하여 표시되는 반면, 요소가 브라우저에서 지원되지 않는 경우 fallback가 요소를 대신하여 표시됩니다. Placeholder …
  • 구글 AMP 페이지에서 사용되는 이미지는 표준 html 페이지에서 사용되는 방식과 비슷하지만 몇 가지 추가 속성과 함께 태그 이름이 사용되는 방식만 다릅니다. 이 글에서는 이에 대해 자세히 설명합니다. 아래 표시된 구문을 준수하십시오. 표준 HTML <img src="example.jpg"…

댓글 쓰기