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 ativo. Ao usar contas de teste em sandbox, você pode testar chamadas de API, validar código e identificar possíveis problemas no início do ciclo de desenvolvimento, sem afetar dados de produção, interromper operações em tempo real ou violar inadvertidamente as políticas do Merchant Center.

Pré-requisitos

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

  • Conta do Merchant Center:é necessário 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 rapidamente a testar seus recursos e integrações.
  • Integridade e segurança dos dados: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 teste:você pode testar uma ampla variedade de cenários diversos e casos extremos sem o ônus de manter uma conta de produção paralela para fins de teste.
  • Validação imediata da oferta:aproveite a isenção automática da reivindicação e verificação da página inicial para contas de teste e teste 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 a confiabilidade dos resultados do teste.
  • Migrações de API mais tranquilas:as contas de teste facilitam uma transição confiante e sem problemas 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 exclusivo e o nome do recurso 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 de teste e subcontas 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. Siga as orientações do artigo da Central de Ajuda Converter para uma configuração de conta avançada para transformar essa conta de teste independente em uma conta avançada no Merchant Center.
  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 contam para o limite padrão de contas do Merchant Center por Conta do Google.
  • Integração com cotas da API Merchant:do ponto de vista de uma cota de API, a API Merchant trata as contas de teste como contas de produção. As contas de teste estão sujeitas às mesmas cotas das contas de produção. Não é possível aumentar a cota para contas de teste.
  • Conversão de contas e contas avançadas:não é possível converter uma conta normal (ativa), seja 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 depois converta para uma conta avançada.
  • Sem veiculação pública:os dados enviados a 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 alguns 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.
  • Não é possível se inscrever com contas de teste:não é possível fazer inscrições com contas de teste.

Práticas recomendadas

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

  • Desenvolvimento com foco no 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.
  • Nomenclatura 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".