スキル詳細ページにリッチメディアを追加する


スキル詳細ページにリッチメディアを追加する

Alexaアプリのスキル詳細ページには、スキルに関する情報が表示されます。画像やビデオなどのリッチメディアアセットを追加することで、スキルのエクスペリエンスを充実させ、詳細ページを使用して新規ユーザーや使用を再開したユーザーにスキルの使用方法を伝えることができます。

用語

このトピックでは、以下の用語を使用します。

  • リッチメディアアセット - スキルの機能を説明、つまり「プレビュー」するための画像やビデオ。

  • 主要機能フレーム - リッチメディアビデオアセットが自動再生されない場合に詳細ページに表示される、オプションのカスタムサムネイル画像。主要機能フレームは手動で指定する必要があります。ビデオのフレームまたは別の画像を使用できます。

  • アセットプロファイル - ビューポートモードとアセットシェイプでグループ化された、リッチメディアアセットのコレクション。アセットプロファイルは、Alexa Presentation Language(APL)のビューポートプロファイルとは異なります。ビューポートプロファイルは、APLをレンダリングするデバイスを表します。これとは対照的に、アセットプロファイルはデバイスとアセットを表します。

前提条件

スキル詳細ページ用のリッチメディアアセットをアップロードする前に、アセットが以下のアセットの制限事項やガイドラインに従っていることを確認してください。

アセットの制限事項

Alexaでは、mobileRectangleアセットプロファイルに分類されるリッチメディアアセットについて、以下の制限事項が適用されます。一貫性のあるユーザーエクスペリエンスを提供するために、アセットの解像度は正確に一致している必要があります。

画像

  • 解像度: 1280 x 800px
  • アスペクト比: 16:10
  • ファイルの最大サイズ: 20MB
  • サポートされている形式: PNG

ビデオ

  • 解像度: 1280 x 720px
  • アスペクト比: 16:9
  • ファイルの最大サイズ: 100MB
  • 時間: 15~60秒
  • サポートされている形式: QuickTime、H.264 MPEG-4(MP4、MOV)
  • 最小ビットレート: 1200kbps
  • 解像度: 1280 x 720px
  • アスペクト比: 16:9
  • ファイルの最大サイズ: 20MB
  • サポートされている形式: PNG

アセットガイドライン

使用する画像とビデオがAmazonポリシーガイドラインに従っていることを確認します。詳細については、ポリシーのテストを参照してください。リッチメディアコンテンツでのEchoデバイスの表現については、Echoブランドガイドライン審査プロセスを参照してください。さらに、スキル詳細ページのリッチメディアコンテンツは、すべての年齢のユーザーに適している必要があります。

リッチメディアをスキルに関連付ける手順

リッチメディアアセットをスキルに関連付けるには、以下の手順を実行します。

ステップ1: アセットをS3にアップロードする

最初の手順は、SMAPIカタログAPIを使用してアセットをS3にアップロードすることです。

スキルのリッチメディアアセットをS3にアップロードするには

  1. 後続のステップで使用するためにアクセストークンを取得します。

    すべてのSMAPIリクエストのAuthorizationヘッダーに、このトークンを指定する必要があります。

  2. 新しいカタログを作成するには、以下のPOSTリクエストを実行します。

    カタログのタイトルには、覚えやすく、所有しているほかのカタログと区別しやすい名前を選択します。

    POST /v0/catalogs HTTP/1.1
    Host: api.amazonalexa.com
    Accept: application/json
    Authorization: Bearer <SMAPIアクセストークン>
    
    {
       "title": "<カタログタイトル>",
       "type": "AMAZON.PreviewMedia",
       "usage": "AlexaSkillStore.Catalog.PreviewMedia",
       "vendorId": "<ベンダーID>"
    }
    

    以下の応答コードを受け取ります。

    201 Created
    

    以下の応答本文を受け取ります。後続の手順で使用するために、idcatalogId)の値をメモしておきます。

    {
       "associatedSkillIds": [],
       "createdDate": "<日付>",
       "id": "<catalogId>",
       "lastUpdatedDate": "<日付>",
       "title": "<カタログタイトル>",
       "type": "AMAZON.PreviewMedia",
       "usage": "AlexaSkillStore.Catalog.PreviewMedia"
    }
    
  3. 後続の手順で使用するために、idcatalogId)の値をメモしておきます。
  4. カタログをスキルに関連付けるには、以下のPUTリクエストを実行します。前のリクエストで取得したものと同じカタログidの値を使用します。この手順は、カタログにアセットをアップロードする前に行う必要があります。詳細については、カタログをスキルに関連付けるを参照してください。

    PUT /v0/skills/{skillId}/catalogs/{catalogId} HTTP/1.1
    Host: api.amazonalexa.com
    Accept: application/json
    Authorization: Bearer <lwaToken>
    

    以下の応答コードを受け取ります。

    201 Created
    
  5. AMAZON.PreviewMediaカタログにアセットを追加するには、以下の手順に従ってアップロードを作成します。各アップロードは、1つ以上のリッチメディアアセットを含むZIPファイルです。詳細については、アップロードを作成する(v0)を参照してください。
    1. 以下の制限事項に従ってZIPファイルを作成します。
      1. ZIPファイルには、最大7つのリッチメディアアセットファイルを含めることができます。
      2. ZIPファイルの最大サイズは500MBです。
      3. 解凍時の各ファイルの最大サイズは100MBです。
      4. 画像はPNG形式である必要があります。
      5. ビデオはMOVまたはMP4形式である必要があります。
    2. 以下のPOSTリクエストを実行します。
      POST /v0/catalogs/{catalogId}/uploads HTTP/1.1
      Host: api.amazonalexa.com
      Accept: application/json
      Authorization: Bearer <lwaToken>
      

      以下の応答コードを受け取ります。

      201 Created
      

      以下の応答本文を受け取ります。

      {
         "id": "<uploadId>",
         "catalogId": "<catalogId>",
         "status": "string",
         "locales": [
            "string"
         ],
         "createdDate": "2019-04-06T23:52:20.528Z",
         "lastUpdatedDate": "2019-04-06T23:52:20.528Z",
         "ingestionSteps": [{
            "name": "UPLOAD",
            "status": "string",
            "logUrl": "string",
            "errors": [{
               "code": "string",
               "message": "string"
            }]
         }],
         "presignedUploadParts": [{
            "url": "<signedExpiringS3Url>",
            "partNumber": 1
         }]
      }
      
  6. iduploadId)の値をメモしておきます。この値はcatalogIdとは異なります。後でスキルマニフェストでアセットを指定するときに、両方の値を使用します。
  7. ZIPファイルをS3にアップロードするには、前の手順で取得したurlsignedExpiringS3Url)の値を使用して、以下のPUTリクエストを実行します。詳細については、オブジェクトをアップロードするための署名付きURLの生成を参照してください。

    PUT <signedExpiringS3Url route> HTTP/1.1
    Host: <signedExpiringS3Url host>
    Content-Type: application/zip
    

    以下の応答コードを受け取ります。ZIPファイルのサイズにもよりますが、この操作には数秒かかる場合があります。

    200 OK
    
  8. アップロードを完了としてマークするには、以下のPOSTリクエストを実行します。

    POST /v0/catalogs/<catalogId>/uploads/<uploadId> HTTP/1.1
    Host: api.amazonalexa.com
    Authorization: Bearer <lwaToken>
    

    以下の応答コードを受け取ります。ZIPファイルのサイズにもよりますが、この操作には数秒かかる場合があります。

    202 Accepted
    
  9. アップロードを完了としてマークした後、Alexaチームが非同期的にZIPファイルの内容を検証します。
  10. (任意)以下のGETリクエストを実行して、定期的に検証のステータスを確認します。詳細については、指定したアップロードについての情報を取得する(v0)を参照してください。

    GET /v0/catalogs/<catalogId>/uploads/<uploadId> HTTP/1.1
    Host: api.amazonalexa.com
    Authorization: Bearer <lwaToken>
    

    以下の応答コードを受け取ります。

    200 OK
    

    以下の応答本文を受け取ります。

    {
       "catalogId": "<catalogId>",
       "createdDate": "2021-05-19T22:09:27.941Z",
       "file": {
          "presignedDownloadUrl": "<url>",
          "status": "AVAILABLE"
       },
       "id": "<uploadId>",
       "ingestionSteps": [
          {
             "errors": [],
             "logUrl": "",
             "name": "UPLOAD",
             "status": "SUCCEEDED"
          },
          {
             "errors": [],
             "logUrl": "",
             "name": "VALIDATION",
             "status": "SUCCEEDED"
          }
       ],
       "lastUpdatedDate": "2021-05-19T22:11:00.831Z",
       "status": "SUCCEEDED"
    }
    

    応答には、検証の現在のステータスに関する詳細情報が含まれます。

  11. アップロードの検証について現在のステータスを確認するには、ingestionSteps.[1]VALIDATIONステップを定期的に確認します。

    表示される可能性のある状態は、SUCCEEDEDまたはFAILEDです。FAILEDの場合、詳細については、ingestionSteps[1].errorsのerrorsフィールドを参照してください。検証が完了すると、アップロードしたアセットをスキルマニフェストで指定できます。

ステップ2: アップロードしたアセットをスキルマニフェストで指定する

アップロードの検証が完了した後、更新したスキルマニフェストをアップロードできるようになるまでに24時間かかります。このスキルマニフェストでは、以下の例に示すように、スキルマニフェストのpublishingInformationセクションでプレビューメディアアセットを指定します。

{
  "manifest": {
    "publishingInformation": {
      "locales": {
        "ja-JP": {
          "summary": "これはAlexaカスタムスキルのサンプルです。",
          "examplePhrases": [
            "アレクサ、サンプルのカスタムスキルを開いて。",
            "アレクサ、サンプルのカスタムスキルを再生して。"
          ],
          "keywords": [
            "関連するキーワード_1",
            "関連するキーワード_2",
            "関連するキーワード_3"
          ],
          "smallIconUri": "https://smallUri.com",
          "largeIconUri": "https://largeUri.com",
          "name": "サンプルのカスタムスキル名です。",
          "description": "このスキルの内容はおもしろいです。"
          "preview": {
            "assets": {
                "mobileRectangle": {
                    "images": [
                        {
                            "source": {
                                "type": "CATALOG_UPLOAD",
                                "catalogId": "<アップロードしたアセットが含まれるカタログのID>",
                                "uploadId": "<アップロードしたアセットが含まれるアップロードのID>",
                                "filePathInUpload": "foo/image.png"
                            }
                        }
                    ],
                    "videos": [
                        {
                            "source": {
                                "type": "CATALOG_UPLOAD",
                                "catalogId": "<アップロードしたアセットが含まれるカタログのID>",
                                "uploadId": "<アップロードしたアセットが含まれるアップロードのID>",
                                "filePathInUpload": "foo/bar.mov"
                            },
                            "featuredFrame": {
                                "type": "CATALOG_UPLOAD",
                                "catalogId": "<アップロードしたアセットが含まれるカタログのID>",
                                "uploadId": "<アップロードしたアセットが含まれるアップロードのID>",
                                "filePathInUpload": "foo/frame.png"
                            }
                        }
                    ]
                }
            }
        }
      },
      "isAvailableWorldwide": false,
      "testingInstructions": "1) 'アレクサ、こんにちは'と言って",
      "category": "HEALTH_AND_FITNESS",
      "distributionCountries": [
        "JP",
        "GB",
        "DE"
      ]
    },
    "apis": {
        ...
    },
    "manifestVersion": "1.0",
    "permissions": [
      ...
    ],
    "privacyAndCompliance": {
      ...
    },
    "events": {
      ...
    }
  }
}

更新したスキルマニフェストをアップロードするには

  1. 更新したスキルマニフェストをアップロードする前に、マニフェストが以下の要件を満たしていることを確認してください。
    • プレビューメディアアセットには、アセットプロファイルごとに、最大5つの画像と1つのビデオを含めることができます。前の例で示したように、アセットはロケール固有です。
    • filePathInUploadフィールドで以下を確認します。
      • リッチメディアアセットが作成したZIPファイルのフォルダ内にある場合は、フォルダを指定する必要があります。たとえば、ZIPファイルにfolderという名前のフォルダが含まれ、そのフォルダにasset1.pngというアセットファイルがあるとします。このアセットファイルへのパスはfolder/asset1.pngのように指定します。
      • リッチメディアアセットがフォルダに保存されていない場合、フォルダを指定する必要はありません。たとえば、ZIPファイルにasset1.pngというアセットファイルが含まれているとします。このアセットファイルへのパスはasset1.pngのように指定します。
  2. スキルマニフェストをアップロードするには、既存スキルの更新で説明されているようなPUTリクエストを実行します。

ステップ3: スキル詳細ページでアセットを検証する

各ロケールのアセットを確認するには、モバイルデバイスのAlexaアプリでスキル詳細ページに移動します。Alexaアプリに表示されるアセットは、Amazonアカウントの国/地域の設定によって決まります。スキルを提供する対象のAlexaがサポートされている国ごとにAlexaアカウントが必要です。


このページは役に立ちましたか?

最終更新日: 2023 年 02 月 14 日