Este guia explica como migrar sua integração dos serviços datafeeds e
datafeedstatuses da API Content for Shopping para a sub-API Data sources
na API Merchant. A nova sub-API Data sources oferece um controle mais direto sobre seus pipelines de dados e simplifica o gerenciamento de fontes de dados.
Para mais informações sobre os novos recursos, consulte o guia Gerenciar suas fontes de dados.
principais diferenças
Em comparação com a API Content for Shopping, a API Merchant oferece várias vantagens.
Criação explícita de fontes de dados. A API não cria mais uma fonte de dados da API Content automaticamente na primeira inserção de produto. Na API Merchant, você cria fontes de dados explicitamente antes de fazer upload de produtos para elas. Isso oferece mais controle sobre a organização e o gerenciamento dos pipelines de dados de produtos desde o início.
Suporte a várias fontes de dados da API. Na API Content for Shopping, você estava limitado a uma única fonte de dados da API Content criada automaticamente. Com a API Merchant, é possível criar e gerenciar várias fontes de dados do tipo de entrada
API.Fontes de dados sem rótulo e idioma. A API Merchant permite criar uma fonte de dados principal sem especificar um
feedLabele umcontentLanguage. Esse tipo de fonte de dados aceita produtos em qualquer combinação defeedLabelecontentLanguage, o que simplifica os uploads de produtos para integrações que não exigem fontes de dados separadas para diferentes regiões.Segmentações de dados simplificadas. Cada fonte de dados agora corresponde a uma única segmentação, definida por uma combinação exclusiva de
feedLabelecontentLanguage. Os feeds de segmentação de vários dados foram descontinuados na API Merchant.Escolha sua estratégia de fonte de dados. Você tem três opções para gerenciar suas fontes de dados:
Manter as fontes de dados da API Content. Você pode continuar usando as fontes de dados criadas com a API Content for Shopping, já que elas são compatíveis com a API Merchant. É possível encontrar os nomes dos recursos usando
dataSources.listou na interface do Merchant Center. As fontes de dados principais da API Content só oferecem suporte aofeedLabele aocontentLanguageespecíficos com que foram criadas. As fontes de dados da API Content são mostradas no Merchant Center com a origem "API Content", mesmo que os produtos sejam inseridos usando a API Merchant. É possível combiná-las com novas fontes de dados da API Merchant que também segmentam pares específicos defeedLabelecontentLanguage.Criar novas fontes de dados da API Merchant para cada rótulo e idioma. Use essa opção se precisar oferecer suporte a novas combinações de
feedLabelecontentLanguage(e preferir manter uma separação estrita entre elas) ou se usar a configuração de regras de fonte de dados que depende defeedLabelecontentLanguageespecíficos. Será necessário criar uma fonte de dados separada para cada par defeedLabelecontentLanguageque você usar.Criar uma única fonte de dados da API Merchant para qualquer rótulo e idioma. Use essa opção para simplificar o gerenciamento com uma única fonte de dados que aceita produtos com qualquer
feedLabelecontentLanguage. Se você escolher essa opção, recomendamos migrar todos os produtos para essa nova fonte de dados e remover as fontes de dados antigas da API Content depois que os produtos forem migrados.
Status de upload de arquivo dedicado. A API Merchant representa o status das fontes de dados baseadas em arquivos usando um recurso
fileUploadsseparado e somente leitura. Para recuperar o status de um upload de arquivo, use o métodofileUploads.getcom o aliaslatest.Novos tipos de fontes de dados. O recurso
DataSourceoferece suporte a mais verticais, incluindo promoções, inventário local e inventário regional, oferecendo uma maneira unificada de gerenciar todos os pipelines de dados.Fontes de dados automatizadas. Com a API Merchant, agora é possível ativar ou desativar o recurso Fontes de dados automatizadas para sua conta usando o método
autofeedSettings.updateAutofeedSettingsna sub-API Accounts. Para mais informações, consulte Configurar as definições do feed automático.
Solicitações
A tabela a seguir compara os formatos de URL de solicitação entre a API Content for Shopping e a API Merchant.
| Descrição da solicitação | API Content for Shopping | API Merchant |
|---|---|---|
| Criar uma fonte de dados | POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds |
POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources |
| Acessar uma fonte de dados | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Listar fontes de dados | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources |
| Atualizar uma fonte de dados | PUT https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
PATCH https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Excluir uma fonte de dados | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
DELETE https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Buscar uma fonte de dados | POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID}/fetchNow |
POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}:fetch |
| Acessar o status da fonte de dados | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses/{DATAFEED_ID} |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}/fileUploads/latest |
| Listar os status das fontes de dados | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses |
Indisponível. Use dataSources.list e fileUploads.get para cada fonte de dados baseada em arquivo. |
Identificadores
A API Merchant usa um nome de recurso baseado em string como identificador.
| Descrição do identificador | API Content for Shopping | API Merchant |
|---|---|---|
| Identificador da fonte de dados | datafeedId (numérico) |
name (string, formato: accounts/{account}/dataSources/{datasource}) |
Métodos
Esta tabela compara os métodos dos serviços datafeeds
e datafeedstatuses da API Content for Shopping com os equivalentes na API Merchant.
| Método da API Content for Shopping | Método da API Merchant | Disponibilidade e observações |
|---|---|---|
datafeeds.custombatch |
Indisponível | Use chamadas de API individuais. |
datafeeds.delete |
dataSources.delete |
Disponível. |
datafeeds.fetchnow |
dataSources.fetch |
Disponível. Esse método agora só funciona para fontes de dados com uma entrada de arquivo. |
datafeeds.get |
dataSources.get |
Disponível. |
datafeeds.insert |
dataSources.create |
Disponível. |
datafeeds.list |
dataSources.list |
Disponível. |
datafeeds.update |
dataSources.update |
Disponível. Usa a semântica PATCH em vez de PUT. |
datafeedstatuses.custombatch |
Indisponível | Use chamadas de API individuais. Consulte Enviar várias solicitações de uma só vez para mais detalhes. |
datafeedstatuses.get |
fileUploads.get |
Disponível para fontes de dados baseadas em arquivos. Use o alias latest para acessar o status do upload mais recente. Para outros tipos de fontes de dados, as informações de status fazem parte do recurso DataSource. |
datafeedstatuses.list |
Indisponível | Para acessar o status de várias fontes de dados, primeiro liste todas as fontes de dados com dataSources.list. Em seguida, chame fileUploads.get com o alias latest para cada fonte de dados baseada em arquivo. |
Mudanças detalhadas no campo
Esta tabela mostra as mudanças no nível do campo entre os recursos Datafeed e
DatafeedStatus na API Content for Shopping e os recursos DataSource
e FileUpload na API Merchant.
| API Content for Shopping | API Merchant | Descrição |
|---|---|---|
Datafeed |
DataSource |
O principal recurso para a configuração da fonte de dados. |
id |
name |
O identificador do recurso. Mudou de um ID numérico para um nome de recurso de string. |
name |
displayName |
O nome da fonte de dados que aparece para o usuário. |
attributeLanguage |
primaryProductDataSource.contentLanguage |
O código de idioma ISO 639-1 de duas letras dos itens na fonte de dados. |
fileName |
fileInput.fileName |
O nome do arquivo enviado por upload. Esse campo agora está aninhado em fileInput. |
fetchSchedule |
fileInput.fetchSettings |
A programação para buscar uma fonte de dados baseada em arquivo. Agora está aninhado em fileInput. |
fetchSchedule.paused |
fileInput.fetchSettings.enabled |
A lógica é invertida. paused: true é equivalente a enabled: false. |
format |
Indisponível | Os campos fileEncoding, columnDelimiter e quotingMode foram removidos. Eles agora são detectados automaticamente. |
targets |
primaryProductDataSource.feedLabel, primaryProductDataSource.contentLanguage, primaryProductDataSource.countries |
O campo targets repetido foi removido. Cada fonte de dados agora tem uma única segmentação definida por esses campos, refletindo a descontinuação dos feeds de segmentação de vários dados. |
DatafeedStatus |
FileUpload |
O status de um upload de arquivo agora é um recurso separado e somente leitura. |
datafeedId |
name |
O identificador do upload de arquivo, que faz referência à fonte de dados mãe. |
processingStatus |
processingState |
O status de processamento do upload. Os valores de string (success, failure, in progress) são substituídos por um enum (SUCCEEDED, FAILED, IN_PROGRESS). |
errors, warnings |
issues |
Erros e avisos são mesclados em uma única lista issues. Cada problema tem um campo severity (ERROR ou WARNING). |
lastUploadDate |
uploadTime |
O carimbo de data/hora do último upload. O formato mudou de uma string para um objeto Timestamp. |
country, language, feedLabel |
Não relevante | Esses campos não estão mais no recurso de status. Eles fazem parte do recurso DataSource. |
targets[].included_destinations, targets[].excluded_destinations |
primaryProductDataSource.destinations |
As duas listas separadas para destinos incluídos e excluídos são substituídas por uma única lista destinations. Cada item na nova lista é um objeto que especifica o destino e o estado dele (ENABLED ou DISABLED), fornecendo uma configuração mais explícita. |