Тестовые аккаунты в 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. Преобразуйте этот отдельный тестовый аккаунт в расширенный аккаунт Merchant Center, следуя инструкциям из статьи Справочного центра Как перейти на расширенный аккаунт.
  3. Создайте дополнительные тестовые дочерние аккаунты в расширенном тестовом аккаунте, вызвав метод accounts.createAndConfigure и указав расширенный тестовый аккаунт в качестве поставщика accountAggregation. Все дочерние аккаунты, созданные в тестовом аккаунте поставщика, автоматически становятся тестовыми (testAccount: true).

Ограничения

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

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

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

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

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