Лучшие практики CSS API

В этом документе описаны некоторые рекомендации по использованию CSS API. Советы, приведённые на этой странице, не являются обязательными для использования API, но могут помочь прояснить некоторые аспекты предполагаемого использования.

Настройте свою среду

Чтобы настроить среду разработки, следуйте инструкциям из документации по быстрому старту .

  • Создайте JSON-файл пользователя и разрешений в Google Cloud Console.
  • Включите CSS API в Google Cloud Console
  • Добавьте этого пользователя с правами администратора в свою учетную запись CSS (группу CSS или домен CSS).
  • Убедитесь, что вы используете правильную область действия OAuth: https://www.googleapis.com/auth/content

Клиентские библиотеки теперь входят в стандартные репозитории большинства языков программирования. Их список можно найти на странице клиентских библиотек .

Используйте правильные идентификаторы

Используйте правильные идентификаторы с правильными конечными точками API:

  • CSS API ( css.googleapis.com ): используйте идентификатор домена CSS при взаимодействии с продуктами CSS (например, accounts/{cssDomainId}/cssProductInputs:insert ).
  • API торговца ( merchantapi.googleapis.com ): используйте API торговца для стандартных продуктов торговца.

Смешение этих параметров приведёт к ошибкам. Подробнее см. в обзоре CSS API .

Хорошие методы для начала

Мы рекомендуем проводить тестирование следующими методами:

Списокдетскихсчетов

ListChildAccounts — это доступный только для чтения вызов, который выводит список всех ваших CSS-доменов (если он вызывается для CSS-группы) или ваших продавцов (если он вызывается для CSS-домена). Поэтому это хороший способ проверить правильность всех настроек.

Вставить/Перечислить/Обновить/Удалить продукт

Убедившись, что API работает, попробуйте добавить товар. Убедитесь, что вы используете raw_provided_id , который вы помните.

  • Вставьте тестовый товар с помощью InsertCssProductInput . Если вам нужна помощь с отправкой атрибутов, у нас есть пример кода .
  • Перечислите все свои товары с помощью ListCssProducts . После добавления товара возможна небольшая задержка, поэтому, если вы его не видите, повторите попытку через несколько секунд.
  • Обновите один товар с помощью UpdateCssProductInput , используя ваш cssproductinput.name . Вам нужно отправить только необходимые для обновления атрибуты. Пример кода см. здесь.
  • Удалите тестовый продукт с помощью DeleteCssProductInput . Вам потребуется использовать raw_provided_id .

Используйте асинхронность для повышения производительности

API CSS разработан для параллельных вызовов. Вы обнаружите, что производительность отдельных операций может быть низкой, но при многократном параллельном вызове одной и той же операции она значительно увеличивается. Лучший способ использовать эту возможность — использовать асинхронный функционал вашего языка программирования.

Примеры из некоторых языков программирования:

Найдите и используйте асинхронную функциональность вашего языка программирования для одновременной вставки нескольких товаров. Вам не нужно беспокоиться о перегрузке наших систем — для этого и существуют квоты .

Более подробную информацию можно найти на нашей странице выступлений .

Проверьте свои полезные нагрузки

Чтобы избежать распространенных ошибок, убедитесь, что ваши полезные данные JSON правильно отформатированы:

  • Ознакомьтесь с официальной документацией: всегда обращайтесь к последней версии справочника CSS API для определений полей, перечислений, типов данных и структуры полезной нагрузки.
  • Ознакомьтесь с примерами полезных нагрузок: сравните ваши полезные нагрузки с предоставленными примерами кода, чтобы выявить несоответствия.
  • Типы данных: убедитесь, что вы используете правильные типы данных (например, строки, объекты, массивы), как указано в документации.
  • Тестируйте постепенно: начните с минимально допустимых полезных нагрузок, чтобы подтвердить базовую связность, и постепенно добавляйте больше атрибутов.

Обновить продукт

После загрузки продукта он будет оставаться в нашей системе до тех пор, пока не будет обновлен, удален или не истечет срок его действия.

  • Вы можете обновить всю информацию о товаре, повторно отправив запрос InsertCssProductInput , используя тот же raw_provided_id который вы использовали изначально. На данный момент вам нужно будет отправлять полные данные о товаре, даже если изменились только некоторые атрибуты (например, цена/наличие).
  • Вы можете обновить части товара, используя метод PATCH UpdateCssProductInput , указав название товара и JSON-код, содержащий данные, которые вы хотите обновить. В отличие от InsertCssProductInput , который требует предоставления всех необходимых полей, UpdateCssProductInput требует указать только те поля, которые вы хотите изменить.
  • Удалить продукт можно, вызвав DeleteCssProductInput с тем же raw_provided_id .
  • Срок действия продуктов автоматически истекает примерно через месяц после последнего обновления.

Непрерывный режим работы

Непрерывный режим работы может выглядеть следующим образом:

  • Используйте собственные внутренние идентификаторы в качестве raw_provided_id .
  • Регулярно обновляйте все товары, например, еженедельно. Это позволит не допустить истечения срока действия активных товаров.
  • Обновляйте отдельные продукты, как только получите измененные данные от своих продавцов.
    • Если вы не можете немедленно отреагировать на изменения, регулярно просматривайте все измененные продукты (возможно, каждый час) и повторно загружайте только эти продукты.
    • Для товаров, которые больше не доступны, вы можете либо воспользоваться функцией удаления, либо установить количество доступных предложений на 0.
    • Не присылайте нам часто неизменённые продукты. Эти вызовы будут учитываться в вашей квоте API. Достаточно еженедельного обновления.

Выбор заголовка предложения

Предложение в заголовке не обязательно должно быть самым топовым или самым дешёвым на вашем сайте, но оно должно быть заметно. Это можно использовать в случаях, когда ваше топовое предложение быстро меняется: например, можно выбрать другое, более стабильное предложение.

Перепроверяйте этот документ время от времени.

Мы получили отзывы о том, как улучшить этот API, и работаем над реализацией некоторых из этих улучшений. Эта страница будет обновлена по мере появления новых функций, упрощающих использование CSS API.