建立動態饋給

媒體動態饋給是 JSON 物件,內含代表目錄中媒體內容的實體集合,例如電視影集、電影、歌曲、專輯等。新手上路程序的第一步是開始開發動態饋給。檔案準備就緒後,您需要使用其中一種支援的託管方法託管動態饋給,以便 Google 定期擷取。

動態饋給檔案格式規定

動態饋給檔案必須符合下列規定:

  • 動態饋給檔案的副檔名必須為 .json。
  • 請勿加密動態饋給檔案。
  • 以 UTF-8 編碼動態饋給檔案 (請檢查檔案編輯器設定)。

    alt_text

  • 如果動態饋給檔案大於 1 GB (未壓縮),請將檔案分割成多個檔案。

  • 建議您為每個實體類型建立一個檔案 (例如 tvseries.json、tvseasons.json、tvepisodes.json、movies.json 等)。

    • 如果其中任何檔案超過 1 GB,請將實體分割成多個檔案 (例如 tvepisodes_01.json、tvepisodes_02.json 等)。
    • 只要檔案大小不超過 1 GB,單一檔案可包含的實體數量就沒有限制。
  • 請確認檔案編碼不含 BOM,符合 JSON 規格。如要檢查 Linux OS,hexdump file.json | head -n 1 不得在位址 0x00 以 BBEF 開頭。

動態饋給類型

正式版動態饋給

  • 這代表一組 JSON 動態饋給檔案,共同代表您要在 Google 上推出的完整目錄。請參閱下節,瞭解如何建立動態饋給。
  • 如果您是首次與 Google 整合,則只需要這個動態饋給。
  • 將這個動態饋給提交給 Google 後,我們會進行廣泛分析並反覆調整幾次,確保擷取的資訊量和正確性達到更高的品質標準,然後才會擷取並發布。

預備動態饋給

  • 在某些情況下,您可能需要擴充產品動態饋給。以下列舉幾個這類情況:
    • 擴充動態饋給,納入先前未推出的新實體類型。
    • 擴充動態饋給,納入大量新實體/中繼資料,以便在新的語言代碼中推出。
    • 將動態消息擴展至新的平台類型。舉例來說,如果正式版產品動態饋給只在 Google 搜尋上推出,而您現在想擴大推出至 Google TV。
  • 在這種情況下,必須使用測試動態饋給。這個動態饋給是正式版動態饋給的副本,但包含額外的中繼資料,例如新平台的深層連結、新語言代碼的中繼資料等。
  • 與產品動態饋給類似,我們會對這項資料進行廣泛分析,並反覆調整幾次,以提高擷取資訊量和正確性的品質標準。達到品質標準後,這個產品動態饋給就會取代目前的正式版動態饋給,成為新的正式版動態饋給。
  • 這個動態饋給可讓我們區分初始發布和後續發布,並執行所有必要測試,而不影響正式版動態饋給。這樣一來,使用者體驗就不會中斷。

如有任何疑問,請洽詢 Google 代表。

建立動態饋給檔案

建立動態饋給時,請遵循下列最佳做法:

  1. 使用一小組實體建立範例動態饋給

    建立包含目錄中所有內容的動態饋給之前,建議您先建立只含少量實體的範例動態饋給。處理動態饋給時,可能會遇到問題。限制實體集的大小,可讓您更輕鬆地偵錯這些錯誤和警告。

  2. 驗證範例動態饋給

    我們提供多項工具,確保動態饋給符合規格。建議您使用這些工具,解決範例動態饋給中的所有錯誤和警告。

  3. 建立產品動態饋給

    確認一小組實體的結構良好後,請為整個目錄建立動態饋給。

建立範例動態饋給

  1. 從目錄中選取一個代表實體。選擇結構合理複雜,但仍是目錄中典型實體的實體。
  2. 使用 JSON 結構定義驗證工具檢查語法錯誤和缺少的必要屬性。(詳情請參閱下一節)。

    包含單一 Movie 實體的動態饋給範例

    {
      "@context": "http://schema.org",
      "@type": "DataFeed",
      "dateModified": "2018-07-20T00:44:51Z",
      "dataFeedElement": [
        {
          "@context": ["http://schema.org", {"@language": "en"}],
          "@type": "Movie",
          "@id": "http://www.example.com/my_favorite_movie",
          "url": "http://www.example.com/my_favorite_movie",
          "name": "My Favorite Movie",
          "potentialAction": {
            "@type": "WatchAction",
            "target": {
              "@type": "EntryPoint",
              "urlTemplate": "http://www.example.com/my_favorite_movie?autoplay=true",
              "inLanguage": "en",
              "actionPlatform": [
                "http://schema.org/DesktopWebPlatform",
                "http://schema.org/MobileWebPlatform",
                "http://schema.org/AndroidPlatform",
                "http://schema.org/AndroidTVPlatform",
                "http://schema.org/IOSPlatform",
                "http://schema.googleapis.com/GoogleVideoCast"
              ]
            },
            "actionAccessibilityRequirement": {
              "@type": "ActionAccessSpecification",
              "category": "subscription",
              "requiresSubscription": {
                "@type": "MediaSubscription",
                "name": "Example Package",
                "commonTier": true,
                "@id": "[partner determined string]"
              },
              "availabilityStarts": "2018-07-21T10:35:29Z",
              "availabilityEnds": "2019-10-21T10:35:29Z",
              "eligibleRegion": [
                {
                  "@type": "Country",
                  "name": "US"
                },
                {
                  "@type": "Country",
                  "name": "CA"
                }
              ]
            }
          },
          "sameAs": "https://en.wikipedia.org/wiki/my_favorite_movie",
          "releasedEvent": {
            "@type": "PublicationEvent",
            "startDate": "2008-01-20",
            "location": {
              "@type": "Country",
              "name": "US"
            }
          },
          "description": "This is my favorite movie.",
          "actor": [
            {
              "@type": "Person",
              "name": "John Doe",
              "sameAs": "https://en.wikipedia.org/wiki/John_Doe"
            },
            {
              "@type": "Person",
              "name": "Jane Doe",
              "sameAs": "https://en.wikipedia.org/wiki/Jane_Doe"
            }
          ],
          "identifier": [
            {
              "@type": "PropertyValue",
              "propertyID": "IMDB_ID",
              "value":  "tt0123456"
            }
          ]
        }
      ]
    }

驗證範例動態饋給

您可以使用下列工具,根據 Google 的媒體動態饋給結構化資料規格,驗證範例動態饋給:

  • JSON 結構定義驗證工具

    JSON 結構定義驗證工具會在本機驗證動態饋給中的所有檔案,再上傳。在開發動態饋給時使用這項工具,可避免常見的結構和類型錯誤。如要進一步瞭解這項工具,請參閱這篇文章。

  • Search Console 中的目錄資源

    Google 代表啟用 Search Console 目錄資源,並擷取範例或測試動態饋給後,請使用 Search Console 的目錄資源,檢查實體層級的驗證錯誤、警告和擷取診斷。

建立正式版動態饋給

  1. 解決範例動態饋給中的所有結構錯誤和警告後,請展開動態饋給,納入目錄中的所有實體。
  2. 對展開的動態饋給檔案執行 JSON 結構定義驗證工具,並在上傳後查看 Search Console 上的目錄屬性,確認沒有驗證錯誤。請比較動態饋給中的實體數量與目錄中的項目數量,確認動態饋給包含目錄中的所有實體。