Тестовые аккаунты в Merchant API

Функция тестовых аккаунтов Merchant API позволяет тщательно тестировать интеграции в безопасной и изолированной среде перед их развертыванием в рабочей среде. Используя тестовые аккаунты в изолированной среде, вы можете экспериментировать с вызовами API, проверять код и выявлять потенциальные проблемы на ранних этапах разработки, не влияя на рабочие данные, не нарушая работу в реальном времени и не нарушая случайно правила Merchant Center.

Требования

Чтобы создавать и использовать тестовые аккаунты, необходимо выполнить следующие требования:

Преимущества тестовых аккаунтов

У тестовых аккаунтов есть несколько важных преимуществ:

  • Простая настройка. Настройка тестового аккаунта – это несложный процесс, который позволяет быстро начать тестирование функций и интеграций.
  • Целостность и безопасность данных. Рабочие данные остаются защищенными, а риск нарушения правил в рабочих аккаунтах устраняется.
  • Эффективность тестирования. Вы можете тестировать самые разные сценарии и пограничные случаи, не тратя ресурсы на поддержку параллельного рабочего аккаунта для тестирования.
  • Мгновенная проверка предложений. Воспользуйтесь автоматическим исключением из требований по заявлению прав на главную страницу и ее подтверждению для тестовых аккаунтов, чтобы быстро проверить добавление предложений. В тестовых аккаунтах предложения одобряются по умолчанию.
  • Реалистичная симуляция. Среда имитирует поведение рабочей среды для критически важных функций, таких как загрузка товаров и управление инвентарем, что обеспечивает надежность результатов тестирования.
  • Более плавный переход на новые API. Тестовые аккаунты позволяют уверенно и без проблем перейти с Content API на Merchant API или с одной версии API на другую, поскольку вы можете параллельно проверять работу обеих версий.

Как создать тестовые аккаунты

Тестовые аккаунты создаются с помощью специального пользовательского метода в Merchant API.

Используйте метод 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"
  }

Замените следующее:

  • ACCOUNT_ID – идентификатор Merchant Center.
  • ACCESS_TOKEN – токен авторизации для вызова API.
  • TEST_ACCOUNT_NAME – название тестового аккаунта. Рекомендуем использовать понятные названия, указывающие на то, что эти объекты предназначены для тестирования. Например, в название тестового аккаунта можно включить слово test.

При создании тестового аккаунта необходимо заполнить следующие поля:

  • time_zone – часовой пояс, используемый в аккаунте для отчетов и отображения данных.
  • language_code – код языка по стандарту BCP-47 для аккаунта, например en-US.

При успешном вызове возвращается ресурс Account, который включает уникальный идентификатор accountId и название ресурса нового тестового аккаунта:

  {
    "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"
  }

Ниже приведены примеры кода, показывающие, как создать тестовый аккаунт.

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"
}'

Расширенные тестовые аккаунты и дочерние аккаунты

Метод accounts.createTestAccount всегда создает отдельный тестовый аккаунт. Чтобы настроить иерархию расширенного аккаунта для тестирования, выполните следующие действия:

  1. Создайте отдельный тестовый аккаунт с помощью accounts.createTestAccount.
  2. Преобразуйте тестовый аккаунт в расширенный, следуя инструкциям из статьи Как перейти на расширенный аккаунт.
  3. Создайте дополнительные дочерние аккаунты в расширенном тестовом аккаунте, вызвав метод accounts.createAndConfigure и указав расширенный тестовый аккаунт в качестве поставщика accountAggregation. Любой дочерний аккаунт, созданный в тестовом аккаунте поставщика, автоматически становится тестовым (testAccount: true).

Ограничения

Тестовые аккаунты предназначены для проверки функциональности и имеют определенные ограничения:

  • Количество тестовых аккаунтов. В одном аккаунте Google можно создать не более пяти тестовых аккаунтов. Тестовые аккаунты учитываются в лимите на количество аккаунтов Merchant Center, которые можно связать с одним аккаунтом Google.
  • Интеграция с квотами Merchant API. С точки зрения квот API Merchant API обрабатывает тестовые аккаунты как рабочие. Для тестовых аккаунтов действуют те же квоты, что и для рабочих. Увеличить квоту для тестовых аккаунтов нельзя.
  • Преобразование аккаунтов и расширенные аккаунты. Вы не можете преобразовать обычный (рабочий) аккаунт – будь то отдельный или расширенный – в тестовый аккаунт или преобразовать тестовый аккаунт в рабочий. Кроме того, вы не можете напрямую создать расширенный тестовый аккаунт с помощью accounts.createTestAccount. Сначала создайте отдельный тестовый аккаунт, а затем преобразуйте его в расширенный аккаунт.
  • Отсутствие общедоступных данных. Данные, отправленные в тестовый аккаунт, никогда не будут опубликованы на платформах Google, например в Поиске или товарных объявлениях.
  • Ограниченные конечные точки. Тестовые аккаунты нельзя использовать с некоторыми функциями, например:
  • Ограничения на связывание. Тестовые аккаунты нельзя связывать с другими аккаунтами Google Рекламы или профилями компаний в Google.
  • Не регистрируйте тестовые аккаунты. Регистрация тестовых аккаунтов запрещена.

Рекомендации

При использовании тестовых аккаунтов рекомендуем следовать приведенным ниже советам.

  • Разработка в изолированной среде. Всегда проверяйте новые функции интеграции в тестовом аккаунте, прежде чем применять их в рабочей среде.
  • Автоматизированное интеграционное тестирование. Используйте тестовые аккаунты как стабильную среду для автоматизированного регрессионного тестирования.
  • Названия тестовых аккаунтов. Используйте account_name, чтобы указать назначение каждого тестового аккаунта, например "Тестирование переноса" или "Тестовый аккаунт для интеграции".