Тестовые аккаунты Merchant API – это безопасная изолированная среда, в которой можно тщательно протестировать интеграции, прежде чем развертывать их в рабочей среде. Используя тестовые аккаунты в изолированной среде, вы можете экспериментировать с вызовами API, проверять код и выявлять потенциальные проблемы на ранних этапах разработки, не влияя на рабочие данные, не нарушая операции в реальном времени и не нарушая правила Merchant Center.
Требования
Прежде чем создавать и использовать тестовые аккаунты, убедитесь, что вы отвечаете следующим требованиям:
- Аккаунт Merchant Center. У вас должен быть аккаунт Merchant Center.
- Доступ к Merchant API. Вы должны быть зарегистрированным пользователем Merchant API.
Преимущества тестовых аккаунтов
Использование тестовых аккаунтов дает несколько преимуществ:
- Простая настройка. Настроить тестовый аккаунт несложно, и вы сможете быстро приступить к тестированию функций и интеграций.
- Целостность и безопасность данных. Рабочие данные остаются защищенными, а риск нарушения правил в рабочих аккаунтах исключается.
- Эффективность тестирования. Вы можете тестировать самые разные сценарии и пограничные случаи без необходимости поддерживать параллельный рабочий аккаунт для тестирования.
- Мгновенная проверка предложений. Воспользуйтесь автоматическим исключением из требований к подтверждению прав на главную страницу и проверке для тестовых аккаунтов, чтобы быстро тестировать вставку предложений. Предложения в тестовых аккаунтах одобряются по умолчанию.
- Реалистичное моделирование. Среда имитирует рабочие процессы для критически важных функций, таких как загрузка товаров и управление инвентарем, что обеспечивает надежность результатов тестирования.
- Более простой переход на другую версию 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 всегда создает отдельный тестовый аккаунт. Чтобы настроить иерархию расширенного аккаунта для тестирования:
- Создайте отдельный тестовый аккаунт, используя адрес
accounts.createTestAccount. - Преобразуйте этот отдельный тестовый аккаунт в расширенный аккаунт Merchant Center, следуя инструкциям из статьи Справочного центра Как перейти на расширенный аккаунт.
- Создайте дополнительные тестовые дочерние аккаунты в расширенном тестовом аккаунте, вызвав метод
accounts.createAndConfigureи указав расширенный тестовый аккаунт в качестве поставщикаaccountAggregation. Все дочерние аккаунты, созданные в тестовом аккаунте поставщика, автоматически становятся тестовыми (testAccount: true).
Ограничения
Тестовые аккаунты предназначены для функциональной проверки и имеют следующие ограничения:
- Количество тестовых аккаунтов. В одном аккаунте Google можно создать не более пяти тестовых аккаунтов. Тестовые аккаунты учитываются в стандартном ограничении на количество аккаунтов Merchant Center на аккаунт Google.
- Интеграция с квотами Merchant API. С точки зрения квот API, Merchant API рассматривает тестовые аккаунты как рабочие. На тестовые аккаунты распространяются те же квоты, что и на рабочие. Увеличить квоту для тестовых аккаунтов нельзя.
- Преобразование аккаунтов и расширенные аккаунты. Обычный (активный) аккаунт, как отдельный, так и расширенный, нельзя преобразовать в тестовый, и наоборот. Кроме того, вы не можете напрямую создать расширенный тестовый аккаунт с помощью
accounts.createTestAccount. Сначала создайте отдельный тестовый аккаунт, а затем преобразуйте его в расширенный аккаунт. - Отсутствие общедоступного показа. Данные, отправленные в тестовый аккаунт, никогда не будут опубликованы на платформах Google, например в Поиске или торговой рекламе.
- Ограниченные конечные точки. Тестовые аккаунты нельзя использовать с некоторыми функциями, например:
- Ограничения на связывание. Тестовые аккаунты нельзя связывать с другими аккаунтами Google Рекламы или профилями компании в Google.
- Тестовые аккаунты нельзя зарегистрировать. Вы не можете зарегистрировать тестовые аккаунты.
Рекомендации
При использовании тестовых аккаунтов рекомендуем следовать следующим рекомендациям:
- Разработка с использованием изолированной среды. Всегда проверяйте новые функции интеграции в тестовом аккаунте, прежде чем применять их в рабочей среде.
- Автоматизированное тестирование интеграции. Используйте тестовые аккаунты в качестве стабильной среды для проведения автоматизированных регрессионных тестов.
- Название тестового аккаунта. Используйте
account_name, чтобы указать назначение каждого тестового аккаунта, например "Тестирование переноса" или "Тестовый аккаунт для интеграции".