Contas de teste na API Merchant

O recurso de contas de teste da API Merchant oferece um espaço seguro e isolado para testar as integrações antes de implantá-las em um ambiente de produção. Ao usar contas de teste em sandbox, é possível testar chamadas de API, validar códigos e identificar possíveis problemas no início do ciclo de desenvolvimento, sem afetar os dados de produção, interromper as operações em tempo real ou violar as políticas do Merchant Center por engano.

Pré-requisitos

Antes de criar e usar contas de teste, verifique se você atende aos seguintes requisitos:

  • Conta do Merchant Center: você precisa ter uma conta do Merchant Center.
  • Acesso à API Merchant: você precisa ser um usuário registrado da API Merchant.

Benefícios das contas de teste

O uso de contas de teste oferece várias vantagens importantes:

  • Configuração simples: a configuração da conta de teste é um processo de baixa complexidade que permite começar a testar seus recursos e integrações rapidamente.
  • Integridade de dados e segurança: os dados de produção permanecem protegidos, e o risco de violações da política em contas de produção é eliminado.
  • Eficiência de testes: é possível testar uma ampla variedade de cenários e casos extremos sem o ônus de manter uma conta de produção paralela para fins de teste.
  • Validação imediata de ofertas: aproveite a isenção automática da reivindicação e verificação da página inicial para contas de teste para testar rapidamente as inserções de ofertas. As ofertas são aprovadas por padrão para contas de teste.
  • Simulação realista: o ambiente espelha o comportamento de produção para funcionalidades críticas, como uploads de produtos e gerenciamento de inventário, garantindo que os resultados dos testes sejam confiáveis.
  • Migrações de API mais fáceis: as contas de teste facilitam uma transição confiável e perfeita para quem está migrando da API Content para a API Merchant ou de uma versão da API para outra, permitindo a validação lado a lado.

Como criar contas de teste

As contas de teste são criadas usando um método personalizado específico na API Merchant.

Use o método accounts.createTestAccount.

  POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}:createTestAccount
  Content-Type: application/json
  Authorization: Bearer {ACCESS_TOKEN}"

  {
    "account_name": "{TEST_ACCOUNT_NAME}",
    "time_zone": {
      "id": "America/Los_Angeles"
    },
    "language_code": "en-US"
  }

Substitua:

  • ACCOUNT_ID: seu ID do Merchant Center.
  • ACCESS_TOKEN: o token de autorização para fazer a chamada de API.
  • TEST_ACCOUNT_NAME: o nome da conta de teste. Recomendamos usar nomes significativos que sugiram que eles são usados para testes. Por exemplo, inclua a palavra test no nome da conta de teste.

Os seguintes campos são obrigatórios ao criar uma conta de teste:

  • time_zone: o fuso horário de relatórios e exibição da conta.
  • language_code: o código de idioma BCP-47 da conta, como en-US.

Uma chamada bem-sucedida retorna um recurso Account que inclui o accountId e o nome do recurso exclusivos da nova conta de teste:

  {
    "name": "accounts/{TEST_ACCOUNT_ID}",
    "accountId": "{TEST_ACCOUNT_ID}",
    "accountName": "{TEST_ACCOUNT_NAME}",
    "adultContent": false,
    "testAccount": true,
    "timeZone": {
      "id": "America/Los_Angeles"
    },
    "languageCode": "en-US"
  }

Os exemplos de código a seguir mostram como criar uma conta de teste:

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.Account;
import com.google.shopping.merchant.accounts.v1.AccountsServiceClient;
import com.google.shopping.merchant.accounts.v1.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.CreateTestAccountRequest;
import com.google.type.TimeZone;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to create a new Merchant Center test account.
 *
 * <p>For more information refer to:
 * https://developers.google.com/merchant/api/guides/accounts/test-accounts
 */
public class CreateTestAccountSample {

  // Method to create a test account.
  public static void createTestAccount(Config config, String newAccountName) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    AccountsServiceSettings accountsServiceSettings =
        AccountsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Calls the API and catches and prints any network failures/errors.
    try (AccountsServiceClient accountsServiceClient =
        AccountsServiceClient.create(accountsServiceSettings)) {

      // The test account to be created.
      Account account =
          Account.newBuilder()
              .setAccountName(newAccountName)
              .setTimeZone(TimeZone.newBuilder().setId("Europe/Zurich"))
              .setLanguageCode("en-US")
              .build();

      // Creates parent to identify where to insert the account.
      String parent = String.format("accounts/%s", config.getAccountId());

      // Create the request message.
      CreateTestAccountRequest request =
          CreateTestAccountRequest.newBuilder().setParent(parent).setAccount(account).build();

      System.out.println("Sending Create Test Account request:");
      Account response = accountsServiceClient.createTestAccount(request);

      System.out.println("Created Test Account below:");
      System.out.println(response);
    } catch (Exception e) {
      System.err.println("Error during test account creation:");
      e.printStackTrace();
    }
  }

  // Main method to run the sample.
  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    // This is the name of the new test account to be created.
    String newAccountName = "MyNewTestShop";

    createTestAccount(config, newAccountName);
  }
}

cURL

curl -X POST \
"https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/:createTestAccount" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
 "account_name": "{TEST_ACCOUNT_NAME}",
 "time_zone": {
   "id": "America/Los_Angeles"
   },
 "language_code": "en-US"
}'

Contas e subcontas de teste avançadas

O método accounts.createTestAccount sempre cria uma conta de teste independente. Para configurar uma hierarquia de conta avançada para testes:

  1. Crie uma conta de teste independente usando accounts.createTestAccount.
  2. Converta essa conta de teste independente em uma conta avançada no Merchant Center seguindo as orientações do artigo da Central de Ajuda Converter para uma configuração de conta avançada.
  3. Crie outras subcontas de teste na conta de teste avançado chamando accounts.createAndConfigure e especificando a conta de teste avançado como o provedor accountAggregation. Qualquer subconta criada em uma conta de provedor de teste é criada automaticamente como uma conta de teste (testAccount: true).

Limitações

As contas de teste são projetadas para validação funcional e têm restrições específicas:

  • Número de contas de teste: é possível criar no máximo cinco contas de teste por Conta do Google. As contas de teste são contabilizadas no limite padrão de contas do Merchant Center por Conta do Google.
  • Integração com as cotas da API Merchant: do ponto de vista da cota da API, a API Merchant trata as contas de teste como contas de produção. As contas de teste estão sujeitas às mesmas cotas que as contas de produção. Não é possível aumentar as cotas para contas de teste.
  • Conversão de conta e contas avançadas: não é possível converter uma conta normal (ativa), seja ela independente ou avançada, em uma conta de teste, nem converter uma conta de teste em uma conta ativa. Além disso, não é possível criar diretamente uma conta de teste avançada com accounts.createTestAccount. Primeiro, crie uma conta de teste independente e, em seguida, converta-a em uma conta avançada.
  • Sem veiculação pública: os dados enviados para uma conta de teste nunca serão publicados em nenhuma plataforma do Google, como a Pesquisa ou os anúncios do Shopping.
  • Endpoints restritos: não é possível usar contas de teste com determinados recursos, como:
  • Restrições de vinculação: não é possível vincular contas de teste a outras contas do Google Ads ou do Perfil da Empresa no Google.
  • Sem registro para contas de teste: não é possível realizar o registro para contas de teste.

Práticas recomendadas

Recomendamos seguir algumas práticas recomendadas ao usar contas de teste:

  • Desenvolvimento priorizando o sandbox: sempre valide novos recursos de integração em uma conta de teste antes de aplicá-los ao ambiente de produção.
  • Teste de integração automatizado: use contas de teste como ambientes estáveis para executar testes de regressão automatizados.
  • Nome da conta de teste: use o account_name para indicar a finalidade de cada conta de teste, como "Teste de migração" ou "Conta de teste de integração".