管理您的產品
內容 API 是一種 RESTful API,會使用 產品 資源來管理 Microsoft 商家中心 (MMC) 存放區中的產品供應專案。
以下是您用來呼叫內容 API 的基底 URI。
https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/
每個 HTTP 要求都必須包含使用者的 OAuth 存取權杖和您的開發人員權杖。 若要指定使用者的存取權杖,請設定 AuthenticationToken 標頭。 若要指定您的開發人員權杖,請設定 DeveloperToken 標頭。
如果您代表其他客戶管理目錄,您必須設定:
- 客戶識別碼的 CustomerId標頭,是您所管理之商店的客戶識別碼。
- 您管理的任何客戶帳戶之帳戶識別碼的 CustomerAccountId 標頭 (不論哪一個 Managed 帳戶) 。
根據預設,內容 API 會使用 JSON 物件來代表產品供應專案。 若要使用 XML,請將 alt 查詢參數設定為 XML。
如需使用 Products 資源的詳細資訊,請參閱下列各節。
從商店取得產品供應專案
若要從市集取得特定的產品供應專案,請將下列範本附加至基底 URI。
{mmcMerchantId}/products/{productUniqueId}
設定 {mmcMerchantId}
為您的 MMC 市集識別碼,並設定 {productUniqueId}
為完整產品 標識 符 (例如 Online:en:US:Sku123) ,而不是產品的 offerId。 因為產品識別碼會區分大小寫,所以請使用 API 在您新增產品時傳回給您的識別碼。
將 HTTP GET 要求傳送至產生的 URL。 如果找到產品,回應會包含包含供應專案的 Product 物件。
如果您在多個目錄中插入具有相同識別碼的產品,服務只會傳回其中一個,也就是哪一個產品和目錄未決定。 因此,您不應該將具有相同產品識別碼的產品插入多個目錄。
如需示範如何取得產品供應專案的程式碼範例,請參閱 管理產品程式碼範例。
從市集取得產品供應專案清單
若要取得市集中的產品供應專案清單,請將下列範本附加至基底 URI。
{mmcMerchantId}/products
設定 {mmcMerchantId}
為您的 MMC 存放區識別碼。
若要逐頁查看供應專案清單,請使用 max-results 和 start-token 查詢參數。 在第一次呼叫中,將 設定 max-results
為您想要服務傳回的供應專案數目上限。 服務可傳回的供應專案數目上限為 250 個。 預設值為 25。 將 HTTP GET 要求傳送至產生的 URL。 以下顯示要求的範例。
https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/{mmcMerchantId}/products?max-results=250
如果市集包含供應專案,回應會包含 Product 物件, 其中最多包含所要求的供應專案數目。
如果有更多可用的供應專案,回應會包含 nextPageToken
欄位 (請參閱 產品) 。 字 nextPageToken
段包含您在下一個 List 要求中用來將 參數設定 start-token
為 的權杖值。 以下顯示使用權杖的範例。
https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/{mmcMerchantId}/products?max-results=250&start-token=DFSos893j...
如需示範如何取得產品供應專案清單的程式碼範例,請參閱 管理產品程式碼範例。
從市集刪除供應專案
若要從市集刪除特定的產品供應專案,請將下列範本附加至基底 URI。
{mmcMerchantId}/products/{productUniqueId}
設定 {mmcMerchantId}
為您的 MMC 市集識別碼,並設定 {productUniqueId}
為完整產品 標識 符 (例如 Online:en:US:Sku123) ,而不是產品的 offerId。 因為產品識別碼會區分大小寫,所以請使用 API 在您新增產品時傳回給您的識別碼。
將 HTTP DELETE 要求傳送至產生的 URL。 如果找到產品,則會將其刪除。
如果您在多個目錄中插入具有相同產品識別碼的產品,服務會刪除所有產品識別碼。 您不應該將具有相同產品識別碼的產品插入多個目錄。
如需示範如何刪除產品供應專案的程式碼範例,請參閱 管理產品程式碼範例。
新增和更新產品供應專案
新增或更新供應專案是插入作業。 因為更新是插入作業,所以您必須在要求中包含供應專案的所有欄位;您無法更新單一欄位。
若要插入產品供應專案,請將下列範本附加至基底 URI。
{mmcMerchantId}/products
設定 {mmcMerchantId}
為您的 MMC 存放區識別碼。
將 HTTP POST 要求傳送至產生的 URL,會將供應專案寫入預設存放區目錄。 若要將供應專案寫入特定目錄,請包含 bmc-catalog-id 查詢參數。
https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/{mmcMerchantId}/products?bmc-catalog-id=123456
如果已插入產品,回應會包含 Product 物件。 物件 Product
包含您用來取得和刪除供應專案的產品 標識符。
供應專案必須包含下欄欄位:
API 會使用 channel
、 contentLanguage
、 targetCountry
和 offerId
來產生產品識別碼。 因為這些欄位是用來產生識別碼,所以您可能不會更新它們。 產品識別碼區分大小寫;識別碼會使用您用來指定 channel
、 contentLanguage
、 targetCountry
和 的相同大小寫 offerId
。
注意
請務必針對 channel
、 contentLanguage
、 targetCountry
和 offerId
使用相同的大小寫,因為如果大小寫不同,您可以有效地新增相同的產品多次。
如果製造商指派了值,也需要下欄欄位。
如果已知,您必須指定值。 如果您未指定其中任何一個,則必須將 identifierExists 欄位設定為 false。 預設值為 true 。
如果已知產品具有這些識別碼,而您未指定這些識別碼,則 MMC 目前接受產品,但 Product
回應中的 物件包含 字 warnings
段。 您應該一律檢查字 warnings
段是否存在,並修正所有已識別的問題。
除了必要欄位之外,您也應該指定您想要供應專案到期的日期和時間, (查看 expirationDate) 。 根據預設,供應專案會在寫入市集或目錄的日期和時間 30 天后到期。 您應該追蹤即將到期的產品,並在到期前更新其到期日,或只是更新產品 (您不需要更新產品的任何欄位) ,這會自動將到期日再延長 30 天。 如果您明確設定到期日,則必須自行設定新的到期日;在此情況下,更新產品不會自動將到期日再延長 30 天。
所有其他欄位都視為選擇性;不過,您應該指定所需數量以正確描述產品。
注意事項
物件 Product
必須只包含設定為值的欄位。 請勿在 物件中 Product
包含 Null 欄位。 例如,請勿包含 "adult":null
。
Microsoft 不會使用所有字 Product
段。 如需 API 接受但不使用的欄位清單,請參閱 我可以使用哪些 Google 屬性? Microsoft 所使用的所有其他欄位都會在提供產品廣告時用來篩選產品。
如果您指定的內容 API 未知的欄位,服務會忽略欄位。
當您插入供應專案時,服務會對供應專案執行基本驗證,並視需要傳回錯誤和警告。 如果發生錯誤,回應會包含 ErrorResponse
物件。 如果發生警告,回應會包含 Product
物件,而 欄位會 warnings
列出警告。
如果供應專案通過基本驗證,則會進行離線驗證和評論,例如編輯評論,最多可能需要 36 小時的時間。 在完成所有驗證和檢閱之前,供應專案將不會提供服務。 若要判斷供應專案的狀態,請使用 狀態 資源。
請注意,API 不提供並行控制,例如 ETag。 如果兩個應用程式嘗試新增或更新相同的產品,最後一個會獲勝。
產品廣告中顯示的供應專案包括價格、標題、商店名稱 (或 sellerName 如果指定) 、包含產品詳細資訊的網頁連結,以及產品的影像。
針對以多種色彩、模式或材質提供的產品,請為每個變體建立產品,並使用 itemGroupId 字 段將所有產品變體分組。
如需示範如何插入產品供應專案的程式碼範例,請參閱 管理產品程式碼範例。
使用批次處理
如果您要處理多個產品供應專案,您應該考慮使用 API 的批次處理功能。 此功能可讓您在單一要求中處理多個插入、取得和刪除。 處理相同要求中的多個供應專案,比為每個供應專案傳送個別要求更有效率。 處理單一要求所產生的成本會分散到批次要求中的數千個供應專案,而不是針對每個個別要求產生該成本。
請勿在相同的要求中插入、取得或刪除相同的產品。
若要傳送批次要求,請將下列範本附加至基底 URI。
{mmcMerchantId}/products/batch
設定 {mmcMerchantId}
為您的 MMC 存放區識別碼。
將 HTTP POST 要求傳送至產生的 URL,會將插入作業套用至預設存放區目錄。 若要將供應專案套用至特定目錄,請包含 bmc-catalog-id 查詢參數。
https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/{mmcMerchantId}/products/batch?bmc-catalog-id=123456
POST 的主體是包含Item物件陣列的Batch物件。 針對所有作業,設定 batchId
、 merchantId
和 method
欄位。
batchId
是您用來識別回應中批次專案的使用者定義識別碼; merchantId
是您的存放區識別碼;而 method
是要執行的作業, (例如,插入、刪除或取得) 。
如果 method
是 insert,請將 字 product
段 設定為 Product 物件,其中包含要新增或更新的供應專案。 否則,如果 method
是 get 或 delete,請將 設定為 productId
您想要取得或刪除之供應專案的完整 標識 符。
批次要求的主體大小不得超過 4 MB。 如果本文超過 4 MB,回應會傳回 HTTP 狀態碼 413。 根據每個供應專案的大小 (您指定) 的欄位數目,您可以傳送 2,000 到 6,000 個供應專案。 如果您壓縮本文,您可以傳送供應專案數目上限,也就是 12,000 (,視其大小) 而定。
若要壓縮本文,請只使用 GZip 壓縮,並將要求的 Content-Encoding 標頭設定為 gzip。
服務會處理批次中的每個專案。 回應包含 Batch
物件,其中包含要求中的每 Item
一個。 請注意,不保證回應中的專案順序與要求中的專案順序相同。
對於插入作業,專案只 batchId
包含 和 product
欄位。 字 product
段包含您在要求中傳送的相同供應專案,但也包含完整的產品識別碼。 如果發生錯誤或警告,專案會包含 batchId
、 method
和 error
欄位。 字 error
段包含插入失敗的原因,或您需要修正之供應專案問題的警告。
針對取得作業,此專案包含 batchId
和 product
欄位。 字 product
段包含您要求的供應專案。 如果找不到產品,物件將不會包含 字 product
段。
針對刪除作業,專案只包含 字 batchId
段;不表示供應專案是否存在且已刪除。
如需示範如何使用批次處理的程式碼範例,請參閱 建立批次要求。