Migrar fontes de dados

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 de fontes de dados oferece 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 automaticamente uma fonte de dados "API Content" na primeira inserção de produto. Na API Merchant, você cria as fontes de dados explicitamente antes de fazer upload de produtos para elas. Isso oferece mais controle sobre a organização e o gerenciamento dos seus pipelines de dados de produtos desde o início.

  • Suporte para várias fontes de dados de API. Na API Content for Shopping, você tinha apenas uma 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 feedLabel e contentLanguage. Esse tipo de fonte de dados aceita produtos em qualquer combinação de feedLabel e contentLanguage, o que simplifica o upload de produtos para integrações que não exigem fontes de dados separadas para regiões diferentes.

  • Destinos de dados simplificados. Cada fonte de dados agora corresponde a um único destino, definido por uma combinação exclusiva de feedLabel e contentLanguage. Os feeds de segmentação de vários dados foram descontinuados na API Merchant.

  • Status dedicado de upload de arquivos. A API Merchant representa o status das fontes de dados baseadas em arquivos usando um recurso fileUploads separado e somente leitura. Para recuperar o status de um upload de arquivo, use o método fileUploads.get com o alias latest.

  • Novos tipos de fontes de dados. O recurso DataSource é compatível com mais setores, incluindo promoções, inventário local e 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 automáticas na sua conta usando o método autofeedSettings.updateAutofeedSettings na sub-API Accounts. Para mais informações, consulte Definir as configurações do feed automático.

Escolher sua estratégia de fonte de dados

Há três opções para gerenciar suas fontes de dados:

  • Crie uma única fonte de dados da API Merchant para qualquer rótulo de feed e idioma. Use essa opção para simplificar o gerenciamento com uma única fonte de dados que aceita produtos com qualquer feedLabel e contentLanguage. Na configuração antiga da API Content, você define regras para rótulos e idiomas específicos usando fontes de dados separadas e insere produtos na fonte de dados com as regras de segmentação correspondentes. Se você escolher essa opção, recomendamos migrar todos os produtos para a nova fonte de dados e remover as fontes de dados da API Content depois que todos os produtos forem migrados.

  • Crie 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 feedLabel e contentLanguage (e preferir manter uma separação estrita entre elas) ou se usar a configuração de regras de fonte de dados que depende de feedLabel e contentLanguage específicos. Você precisará criar uma fonte de dados separada para cada par de feedLabel e contentLanguage que usar. É possível combinar as fontes de dados da API Merchant com as fontes de dados criadas com a API Content for Shopping.

  • 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. Encontre os nomes dos recursos usando dataSources.list ou na interface do Merchant Center. As fontes de dados principais da API Content só são compatíveis com os valores específicos de feedLabel e contentLanguage 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á-los com novas fontes de dados da API Merchant que também segmentam pares específicos de feedLabel e contentLanguage.

Recomendamos preencher o banco de dados de produtos locais armazenando os nomes de todas as fontes de dados principais uma vez para cada um dos seus produtos para evitar chamadas dataSources.list repetidas.

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
Receber 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 status de 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 arquivos.

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 Em vez disso, use chamadas de API individuais.
datafeeds.delete dataSources.delete Disponível.
datafeeds.fetchnow dataSources.fetch Disponível. Agora, esse método 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 Em vez disso, 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 conferir o status do upload mais recente. Para outros tipos de fonte de dados, as informações de status fazem parte do recurso DataSource.
datafeedstatuses.list Indisponível Para conferir o status de várias fontes de dados, primeiro liste todas as fontes com dataSources.list. Em seguida, chame fileUploads.get com o alias latest para cada fonte de dados baseada em arquivo.

Mudanças detalhadas nos campos

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 recurso principal 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 voltado ao 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. Esse campo agora está aninhado em fileInput.
fetchSchedule fileInput.fetchSettings A programação para buscar uma fonte de dados baseada em arquivos. Agora, ele 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. Agora, eles são detectados automaticamente.
targets primaryProductDataSource.feedLabel, primaryProductDataSource.contentLanguage, primaryProductDataSource.countries O campo repetido targets foi removido. Cada fonte de dados agora tem um único destino definido por esses campos, refletindo a descontinuação dos feeds com vários destinos de 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 pai.
processingStatus processingState O status de processamento do upload. Os valores de string (success, failure, in progress) são substituídos por um tipo enumerado (SUCCEEDED, FAILED, IN_PROGRESS).
errors, warnings issues Os 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.