批次擷取

您的資料動態饋給 只要透過「端對端訂購」功能提供餐廳、服務和菜單即可。

本文說明如何代管沙箱和實際執行環境,以及使用批次擷取功能 。

資料動態饋給環境

有三種資料動態饋給環境可用於整合開發:

動態饋給環境 說明 批次擷取
沙箱 動態饋給開發的測試環境。 必填
正式版 要發布商品目錄的正式環境。 必填

代管資料動態饋給

為運用端對端排序功能,以批次方式處理沙箱和正式環境資料動態饋給 擷取作業中,您必須使用 。

建議您為沙箱和實際執行環境代管資料動態饋給 。這個方法可讓您在沙箱動態饋給環境中進行開發和測試 再將變更部署至正式環境

舉例來說,如果使用 Google Cloud Storage 做為託管選項,則結果如下: 路徑:

  • 沙箱動態饋給: gs://foorestaurant-google-feed-sandbox/
  • 正式版動態消息: gs://foorestaurant-google-feed-prod/

如要代管廣告空間,請執行下列操作:

  1. 產生資料動態饋給檔案。
  2. 選擇託管解決方案。
  3. 代管資料動態饋給。
  4. 確保您的資料動態饋給檔案定期更新。必須更新正式版資料動態饋給 每日執行。

如要進一步瞭解如何建立商品目錄動態饋給,請參閱 RestaurantService, 和Menu 實體及 建立資料動態饋給 專區。

資料動態饋給檔案規範

每個檔案 (可能包含多個實體) 不得超過 200 MB。頂層 RestaurantServiceMenu 等實體,以及 子實體,全部不得超過 4 MB。

選擇託管解決方案

下表列出代管資料動態饋給的選項,以及主機如何與這些主機搭配運作 端對端排序:

Amazon S3 Google Cloud Storage Sitemap 中包含 HTTPS
憑證與存取權

向 Google 提供下列資訊:

  • 存取金鑰 ID
  • 私密存取金鑰
  • 實際執行環境、沙箱 S3 目錄和 marker.txt 的路徑 檔案。路徑的開頭必須是 s3://

S3 值區必須包含以下資訊:

  • 商品目錄資料的動態饋給檔案。
  • marker.txt,包含用於擷取的時間戳記。

marker.txt 檔案範例:2018-12-03T08:30:42.694Z

將實際執行環境和沙箱值區目錄的路徑提供給 Google,以及 marker.txt 檔案。路徑的開頭必須是 gs://

將 Google 顧問提供的服務帳戶新增為 Google 的讀取者 Cloud Storage 值區

如要進一步瞭解如何控管 Google Cloud Storage (GCS) 存取權,請參閱 Google Cloud Platform Console:設定值區權限

GCS 值區必須包含以下資訊:

  • 商品目錄資料的動態饋給檔案。
  • marker.txt,包含用於擷取的時間戳記。

marker.txt 檔案範例:2018-12-03T08:30:42.694Z

向 Google 提供下列資訊:

  • 基本驗證的憑證。
  • 正式環境和沙箱 Sitemap 路徑的路徑。 路徑的開頭必須是 https://
  • 通訊協定:請務必將動態饋給檔案設為透過 HTTPS (而非 HTTP) 提供。
  • 安全性:Google 強烈建議您使用 。
Google 如何知道需要擷取哪些檔案 值區中所有檔案的目錄清單。 值區中所有檔案的目錄清單。 Sitemap 中列出的檔案個別網址。
Google 如何得知檔案已可擷取 資料動態饋給產生完成後,請更新 marker.txt 檔案 最新的時間戳記。 資料動態饋給產生完成後,請更新 marker.txt 檔案 最新的時間戳記。 資料動態饋給產生完畢後,請更新回應標頭 sitemap.xmllast-modified,最新時間戳記。
檔案限制

檔案數量上限:100,000 個。

Amazon S3 值區中的檔案總數不得超過 100,000 個檔案。

檔案數量上限:100,000 個。

Google Cloud Storage 值區中的檔案總數不得超過 100,000 個。

檔案數量上限:100,000 個。

Sitemap XML 檔案中的檔案路徑數量不得超過 100,000 個。

連結資料動態饋給以進行批次擷取

代管動態饋給後,請在 Actions Center 中將動態饋給連結至專案。 如要進行正式版動態饋給的初始設定,請前往新手上路工作頁面。之後 任何入口網站使用者只要擁有> 管理員角色沙箱環境是用於開發和測試用途, 系統會向使用者顯示正式版動態饋給。

如果你使用 Amazon S3 代管資料動態饋給

  1. 動作中心中,依序前往「設定」> 動態饋給
  2. 按一下 [編輯],然後填寫「更新動態饋給」表單:

    • 動態饋給提交方式:設為 Amazon S3
    • 標記檔案:提供 marker.txt 檔案的網址。
    • 資料檔案:提供資料動態饋給所在 S3 值區的網址。
    • 存取權 ID:輸入具備從 S3 讀取權限的 IAM 存取金鑰 ID 再複習一下,機構節點 是所有 Google Cloud Platform 資源的根節點
    • 存取金鑰:輸入具備可從 S3 讀取權限的 IAM 私密存取金鑰 再複習一下,機構節點 是所有 Google Cloud Platform 資源的根節點
  3. 按一下 [提交]。
  4. 經過一到兩小時後,請確認批次擷取功能是否會擷取動態饋給檔案。

如果您是透過 Google Cloud Storage 託管資料動態饋給

  1. 動作中心中,依序前往「設定」> 動態饋給
  2. 按一下 [編輯],然後填寫「更新動態饋給」表單:

    • 動態饋給提交方式:設為「Google Cloud Storage」
    • 標記檔案:提供 marker.txt 檔案的網址。
    • 資料檔案:提供資料動態饋給所屬 GCS 值區的網址。
  3. 按一下 [提交]。
  4. 系統會建立服務帳戶來存取 GCS 值區。帳戶名稱會顯示在 完成加入工作後的設定 > 動態饋給 。這個服務帳戶需要「Storage 舊版物件讀取者」角色。這個角色可以 在 Google Cloud 控制台的「IAM」頁面中授予服務帳戶。
  5. 經過一到兩小時後,請確認批次擷取功能是否會擷取動態饋給檔案。

如果你使用 HTTPS 代管資料動態饋給

  1. 動作中心中,依序前往「設定」> 動態饋給
  2. 按一下 [編輯],然後填寫「更新動態饋給」表單:

    • 動態饋給放送方式:設為「HTTPS」
    • Sitemap 檔案:提供 sitemap.xml 檔案的網址。
    • 使用者名稱:輸入使用者名稱憑證來存取 HTTPS 伺服器。
    • 密碼:輸入用於存取 HTTPS 伺服器的密碼。
  3. 按一下 [提交]。
  4. 經過一到兩小時後,請確認批次擷取功能是否會擷取動態饋給檔案。

路徑範例

下表列出各個代管選項的範例路徑:

Amazon S3 Google Cloud Storage Sitemap 中包含 HTTPS
路徑 s3://foorestaurant-google-feed-sandbox/ gs://foorestaurant-google-feed-sandbox/ https://sandbox-foorestaurant.com/sitemap.xml
標記檔案 s3://foorestaurant-google-feed-sandbox/marker.txt gs://foorestaurant-google-feed-sandbox/marker.txt 不適用

HTTPS 代管服務的 Sitemap

定義 Sitemap 時,請遵循下列準則:

  • Sitemap 中的連結必須指向檔案本身。
  • 如果您的 Sitemap 提及雲端服務供應商而非自己的網域名稱, 請確定網址開頭,例如 https://www.yourcloudprovider.com/your_id。 是對批次工作的穩定值
  • 請注意,請勿上傳部分 Sitemap (例如上傳部分資料時)。執行 因此,Google 只會擷取 Sitemap 中的檔案,導致商品目錄 等級下滑,並有可能導致動態饋給擷取功能遭到封鎖。
  • 確認 Sitemap 中參照的檔案路徑並未變更。舉例來說 是否有 Sitemap 參照 https://www.yourcloudprovider.com/your_id/10000.json 今天,但參照 https://www.yourcloudprovider.com/your_id/20000.json 重新開始。
範例 Sitemap

以下是提供資料動態饋給檔案的 sitemap.xml 範例檔案:

示例 1:按照商家分類的實體 (建議使用)。

XML

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_1.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_2.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_3.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
</urlset>

範例 2:按照類型分組的實體。

XML

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>https://your_fulfillment_url.com/restaurant.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/menu.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/service.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
</urlset>

更新資料動態饋給

資料動態饋給成功連線後,Google 每小時會檢查一次更新,不過我們只會擷取 marker.txtsitemap.xml 檔案傳送時,所有的資料動態饋給 已修改。資料動態饋給應每天更新一次,以免商品目錄資料過時。

如要指明資料動態饋給已修改且準備就緒,可以進行批次擷取,請更新資料的 marker.txt 檔案的 last-modified 物件中繼資料欄位 (用於 GCP, S3) 或 sitemap.xml 檔案的 last-modified 回應標頭。Google 敬上 系統會使用這些值來判斷資料動態饋給的更新程度。

系統擷取批次動態饋給時

  • 目前訂購端對端庫存中沒有的新實體,且沒有任何新實體 發生錯誤
  • 已經出現在商品目錄中的實體,且沒有任何錯誤 且 dateModified 比 若是目前的項目,如果沒有 dateModified,則 動態饋給擷取開始時間晚於目前輸入的時間 如果未更新,系統會將它們標示為過時。
  • 先前動態饋給中的實體,但已不再包含 在沒有檔案的情況下,系統會刪除目前正在處理的批次資訊提供 動態饋給層級錯誤

時間戳記或 last-modified 回應標頭只能在所有資料完成後更新 系統隨即會產生並更新動態饋給檔案限制更新資料動態饋給的批次工作只在執行時執行 每天一次或者,每個批次工作之間有至少 3 小時的間隔。如果您不 採取這些步驟,Google 可能會擷取過時的檔案。