Партнеры Google могут предоставлять структурированные данные о меню компании Google через интеграцию «Списки ожидания бронирования» для использования в разделе «Меню» профиля Google Business Profile ресторана и других точках доступа на различных платформах Google для потребителей.
Данные меню загружаются с помощью универсальных каналов. Перед началом работы:
- Убедитесь, что настройка учетной записи завершена.
- Разберитесь в процессе загрузки стандартного фида.
- Узнайте, как настроить свою учетную запись для загрузки файлов из общего канала.
Создание и загрузка лент меню
При создании и загрузке лент меню следуйте этим рекомендациям и правилам:- Для предоставления информации о ресторане следуйте спецификации данных, описанной в разделе «Фид продавца» . Например, для JSON-файла обратитесь к образцу JSON . Имена файлов данных должны быть уникальными для всех загружаемых файлов. Рекомендуется включать метку времени в имя файла, например,
menu1_1633621547.json - В дескрипторе набора файлов для ленты меню установите поле
nameравнымgoogle.food_menu. Пример содержимого файла дескриптора можно посмотреть в примере JSON-файла дескриптора . Имена файлов дескрипторов должны быть уникальными при каждой загрузке. Рекомендуется включать метку времени в имя файла, например,descriptor_1633621547.filesetdesc.json. Файл дескриптора должен быть загружен на универсальный SFTP-сервер как часть ленты меню. - Каналы данных необходимо загружать на стандартный SFTP-сервер ежедневно с полным обновлением.
- Ограничьте количество фрагментов (файлов) в потоке до 1000, как указано в разделе «Использование универсального потока sftp».
Статус загрузки фидов можно найти в разделе «Загрузка > История» на партнерском портале. Информацию о SFTP-сервере фидов можно найти в разделе «Конфигурация > Фиды» на партнерском портале.

Статус загрузки фидов можно найти в разделе «Загрузка > История» на партнерском портале. Информацию о SFTP-сервере фидов можно найти в разделе «Конфигурация > Фиды» на партнерском портале.
Работа с пунктами меню
Параметры пунктов меню можно указать с помощью протокола MenuItemOption .
Партнеры, у которых для одного пункта меню предусмотрено несколько обязательных опций (например, латте с вариантами размера и молока), должны решить, как лучше всего отобразить эти опции в Google. Google рекомендует следующее:
- Меню должно соответствовать сайту заказа партнера (или меню ресторана, если у вас нет сайта заказа для данного заведения). Если на сайте заказа товар отображается с индивидуальной ценой, следует использовать
MenuItem. Если товар отображается с базовой ценой и несколькими вариантами, следует использоватьMenuItemOption. - Избегайте включения длинного списка вариантов, например:
- Буррито с курицей
- Буррито с курицей и сыром
- Буррито с курицей и сальсой
- Буррито с курицей, сальсой и сыром.
- Буррито с курицей и гуакамоле
- Буррито с курицей, гуакамоле и сальсой.
- Поддерживаются только те пункты меню, для которых требуется выбрать один из этих пунктов. Например, при заказе пиццы размер является обязательным параметром. Пункты меню, предназначенные для добавления ингредиентов (например, «добавить авокадо»), не поддерживаются и не должны включаться в ленты.
Цена пункта меню должна соответствовать полной цене товара с выбранным этим пунктом. Цена должна быть указана либо для самого пункта меню, либо для его пунктов, но не для обоих одновременно.
Рестораны с разнообразным меню
Один ресторан (субъект) может иметь только одно меню. Для ресторана, имеющего несколько меню (например, отдельные меню для обеда и ужина), можно объединить все меню в одно с помощью MenuSections (то есть одно меню с разделом для обеда и разделом для ужина). Полученное меню будет иметь следующую структуру:
- Меню
- Раздел "Обед"
- Супы
- Суп 1
- Суп 2
- Сэндвичи
- Сэндвич 1
- Сэндвич 2
- Раздел "Ужин"
- Стартовые
- Стартер 1
- Стартер 2
- Главные
- Основное блюдо 1
- Основное блюдо 2
Совместное использование меню в разных ресторанах
Одно меню можно использовать в нескольких ресторанах, добавив все рестораны в список merchant_ids этого меню. Обратите внимание, что этот список принимает идентификаторы сущностей партнеров, использующих канал Entity .
Передовые методы
Ниже приведены рекомендации по разработке меню-лент.
- К каждому ресторану можно привязать только одно меню .
- Укажите предпочтительный язык в качестве первого языка в текстовом поле . Если вы отправляете несколько объектов LocalizedText , пользователям будет отображаться первый объект из списка.
- Все пункты меню должны быть добавлены в разделы меню . Не добавляйте пункты меню непосредственно в объект меню.
- Указывайте содержимое в кодировке UTF-8. Экранирование символов, не относящихся к ASCII, не требуется.
- Если вы запускаете продукт в нескольких регионах, убедитесь, что используете правильные коды валют и номиналы в полях «единицы» и «нано» — обратите особое внимание на поле «нано», которое соответствует 10⁻⁹ единицам. Используйте визуализатор меню в окне просмотра инвентаря, чтобы убедиться в правильности установленных цен.
- Предоставление пользователям визуально привлекательных, исчерпывающих и современных меню является ключом к обеспечению полезного и увлекательного пользовательского опыта. Цены, описания, фотографии и информация о диетических ограничениях — все это важные элементы, влияющие на принятие решений, и партнерам рекомендуется предоставлять как можно больше этих данных для обеспечения оптимального взаимодействия как с пользователями, так и с продавцами.
- Чтобы цена не отображалась, добавьте пустой прототип цены в прототип предложения .
Инструменты разработки и тестирования
После запуска функции отображения данных в меню, эти данные станут доступны для просмотра в поисковых системах и могут отображаться на вкладке «Меню» в меню ресторана. Вкладка «Меню» поддерживается в Google Поиске (мобильные и десктопные версии), и в будущем эта функция будет расширена на другие платформы, включая Google Карты. Отображаемый интерфейс может отличаться в зависимости от платформы.

Чтобы убедиться в правильной структуре меню, используйте инструмент «Визуализация меню» в программе просмотра инвентаря для предварительного просмотра меню.
Меню для ресторанов могут поступать из множества источников, включая сами рестораны через их профиль Google Business Profile, партнеров по заказу и бронированию еды, фотографии меню, сделанные пользователями, и многое другое. Если меню для одного и того же ресторана предоставляются несколькими источниками, продавец может выбрать предпочтительного поставщика в редакторе меню в профиле Google Business Profile.
Схема
Полную схему меню можно найти здесь .
FoodMenuFeed
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
data | массив объектов(MenuComponent) |
MenuComponent
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
| один из(type) | В этом объекте oneOf можно задать значение только для одного из полей. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
menu_id | нить | Необходимый | Непрозрачная строка от партнера, которая однозначно идентифицирует меню в партнерской ленте. Обязательно. |
merchant_ids | массив строк | Необходимый | Торговые точки, к которым относится меню. Примечание: это поле повторяется, чтобы сетевые рестораны могли использовать одно и то же меню в нескольких заведениях, каждое из которых является отдельной торговой точкой. Обязательно к заполнению. |
display_name | объект(TextField) | Название, позволяющее пользователю идентифицировать меню при его просмотре. Необязательно. | |
language | нить | Код языка по умолчанию, связанный с текстовыми метками в меню. Ожидается код языка BCP-47, например, "en-US" или "sr-Latn". Для получения дополнительной информации см. http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Необязательный параметр. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
text | массив объектов(LocalizedText) | Необходимый | Значения текста для каждой локали. Если требуется поддержка только одной локали, то параметр language_code в каждом тексте задавать не нужно, и язык будет определяться на основе языка меню по умолчанию. Если текстов несколько, относящихся к разным локалям, то параметр language_code необходимо задать для каждого текста. Первый текст в списке считается предпочтительным. Обязательно. |
Локализованный текст
Локализованный вариант текста на определённом языке.
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
text | нить | Локализованная строка на языке, соответствующем [language_code][google.type.LocalizedText.language_code] ниже. | |
language_code | нить | Языковой код текста в системе BCP-47, например, "en-US" или "sr-Latn". Для получения дополнительной информации см. http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
menu_section_id | нить | Необходимый | Непрозрачная строка от партнера, которая однозначно идентифицирует MenuSection в партнерской ленте. Обязательно. |
display_name | объект(TextField) | Необходимый | Имя, позволяющее идентифицировать раздел меню при просмотре пользователем меню. Обязательно к вводу. |
description | объект(TextField) | Описание раздела меню. Необязательно. | |
images | массив объектов(Image) | Изображение(я) раздела меню. Необязательно. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
uri | нить | Необходимый | URL-адрес, содержащий исходные пиксели изображения. Обязателен. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
menu_item_id | нить | Необходимый | Непрозрачная строка от партнера, которая однозначно идентифицирует пункт меню в партнерской ленте. Обязательно. |
display_name | объект(TextField) | Необходимый | Имя, позволяющее идентифицировать пункт меню при просмотре пользователем меню. Обязательно для заполнения. |
description | объект(TextField) | Описание пункта меню. Необязательно. | |
images | массив объектов(Image) | Изображение(я) пункта меню. Необязательно. | |
| один из(pricing) | Необходимый | В этом объекте oneOf можно задать значение только для одного из полей. |
item_attributes | объект(MenuItemAttributes) | Характеристики данного пункта меню. Необязательно. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
offers | массив объектов(Offer) | Необходимый | Список возможных предложений. Обязательно. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
price | объект(Money) | Следующие случаи являются недопустимыми и приведут к удалению пункта меню: Цена без кода валюты, но с единицами измерения, наносекундами или и тем и другим: price {units: 100, nanos: 1000000} price {units: 100} price {nanos: 1000000} Цена с недопустимым кодом валюты, но с единицами измерения, наносекундами или и тем и другим: price {currency_code: 'gXYZ', units: 100, nanos: 1000000} price {currency_code: 'gXYZ', units: 100} price {currency_code: 'gXYZ', nanos: 1000000} Цена с кодом валюты, но с недопустимыми единицами измерения или наносекундами: price {currency_code: 'USD', units: 100, nanos: -100} price {currency_code: 'USD', units: -100, nanos: 100} |
Деньги
Представляет собой сумму денег с указанием типа валюты.
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
currency_code | нить | Трехбуквенный код валюты, определенный в стандарте ISO 4217. | |
units | нить | Целые единицы суммы. Например, если currencyCode — "USD" , то 1 единица — это один доллар США. | |
nanos | число | Количество нано (10^-9) единиц величины. Значение должно находиться в диапазоне от -999 999 999 до +999 999 999 включительно. Если units положительно, то nanos должно быть положительным или равным нулю. Если units равно нулю, nanos может быть положительным, равным нулю или отрицательным. Если units отрицательно, то nanos должно быть отрицательным или равным нулю. Например, $-1,75 представляется как units = -1 и nanos = -750 000 000. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
menu_item_option_ids | массив строк | Необходимый | Идентификаторы пунктов меню, применимых к данному пункту меню. Обязательно. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
number_of_servings | число | Количество порций, доступных для данного блюда в меню. Необязательно. | |
nutrition_information | объект(NutritionInformation) | Указывает всю информацию о пищевой ценности продукта, например, калорийность, содержание жиров. (Необязательно) | |
suitable_diets | массив перечислений(DietaryRestriction) | Информация о диетических ограничениях, которым соответствует данное блюдо. (Необязательно) | |
additive | массив объектов(Additive) | Добавки к этому блюду. Необязательно. | |
allergen | массив объектов(Allergen) | Информация об аллергенах данного блюда. (По желанию) | |
packaging_deposit_info | объект(DepositInfo) | Информация об упаковке и утилизации данного блюда. (Необязательно). |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
energy | объект(NutritionValue) | Количество пищевой энергии в порции продукта. Может быть выражено в калориях или килоджоулях. (Необязательно) | |
sodium_content | объект(NutritionValue) | Содержание натрия, измеренное в граммах или миллиграммах. (Необязательно) | |
serving_size | число | Укажите количество порций, к которым относится пищевая ценность. (Необязательно) | |
description | объект(TextField) | Информация о пищевой ценности в свободной текстовой форме. Например: "Содержит консерванты". (Необязательно). |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
| один из(value) | В этом объекте oneOf можно задать значение только для одного из полей. | |
unit | перечисление(NutritionValueUnit) | Необходимый | Единица измерения, соответствующая количеству, указанному партнером. Мы проверим данные, чтобы единица измерения для каждого типа пищевой ценности соответствовала ожидаемой. Например, для свойства «Энергетическая ценность» объекта NutritionalInformation ожидаются только значения ENERGY_CALORIES и ENERGY_KILOJOULES. Обязательно. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
min | число | Необходимый | Минимальный уровень пищевой ценности. Обязательный. |
max | число | Необходимый | Максимально допустимое содержание питательных веществ. Требуется. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
name | объект(TextField) | Необходимый | Описательный текст добавки, например, «консерванты». Обязательно. |
containment_level_code | перечисление(ContainmentLevelCode) | Указывает, содержит ли, может ли содержать или не содержит ли данный пункт меню эту добавку. По умолчанию — содержит. Необязательный параметр. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
allergen_type_code | перечисление(AllergenTypeCode) | Необходимый | Тип аллергена. Обязательно. |
containment_level_code | перечисление(ContainmentLevelCode) | Указывает, содержит ли пункт меню данный аллерген, может ли он его содержать или не содержит. По умолчанию — содержит. Необязательный параметр. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
deposit_code | перечисление(DepositCode) | Стратегия внесения депозита, например, "многоразовый". Необязательно. | |
deposit_value | объект(Money) | Возврат денежных средств осуществляется при правильном размещении товара. (Необязательно) |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
menu_item_option_id | нить | Необходимый | Непрозрачная строка от партнера, которая однозначно идентифицирует MenuItemOption в партнерской ленте. Обязательно. |
value | объект(MenuItemOptionProperty) | Необходимый | Параметр свойства и значения, например, Размер: Маленький. Обязательно. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
property_type | перечисление(PropertyType) | Необходимый | Тип свойства данного параметра. Обязательно к заполнению. |
| один из(value) | Необходимый | В этом объекте oneOf можно задать значение только для одного из полей. |
Пищевая ценность (единица измерения)
| Имя | Описание |
|---|---|
NUTRITION_VALUE_UNIT_UNSPECIFIED | Не использовать. Единица измерения пищевой ценности явно не указана. |
ENERGY_CALORIES | Единицы измерения, используемые для выражения количества энергии в блюде из меню. |
ENERGY_KILOJOULES | |
WEIGHT_MILLIGRAMS | Единицы измерения, используемые для выражения количества вещества, присутствующего в пункте меню, в весовых единицах. |
WEIGHT_GRAMS |
Диетические ограничения
Указывает на диетическое ограничение или правило, которого придерживаются при приготовлении пищи.
| Имя | Описание |
|---|---|
DIET_UNSPECIFIED | Не применять. Диетические ограничения не указаны. |
DIET_DIABETIC | |
DIET_GLUTEN_FREE | |
DIET_HALAL | |
DIET_HINDU | |
DIET_KOSHER | |
DIET_LOW_CALORIE | |
DIET_LOW_FAT | |
DIET_LOW_LACTOSE | |
DIET_LOW_SALT | |
DIET_VEGAN | |
DIET_VEGETARIAN |
ContainmentLevelCode
Указывает на уровень защиты пищевого продукта от определенного вещества, такого как аллергены или добавки.
| Имя | Описание |
|---|---|
CONTAINMENT_LEVEL_CODE_UNSPECIFIED | Не использовать. Код уровня защиты явно не указан. |
CONTAINMENT_LEVEL_CODE_CONTAINS | |
CONTAINMENT_LEVEL_CODE_DOES_NOT_CONTAIN | |
CONTAINMENT_LEVEL_CODE_MAY_CONTAIN |
Код типа аллергена
Тип аллергена определяется на основе данных GS1: http://gs1.org/voc/AllergenTypeCode
| Имя | Описание |
|---|---|
ALLERGEN_TYPE_CODE_UNSPECIFIED | Не использовать. Код типа аллергена явно не указан. |
ALLERGEN_TYPE_CODE_ALMONDS | |
ALLERGEN_TYPE_CODE_ALPHA_ISOMETHYL_IONONE | |
ALLERGEN_TYPE_CODE_ALCOHOL | |
ALLERGEN_TYPE_CODE_AMYL_CINNAMAL | |
ALLERGEN_TYPE_CODE_ANISE_ALCOHOL | |
ALLERGEN_TYPE_CODE_BARLEY | |
ALLERGEN_TYPE_CODE_BENZYL_ALCOHOL | |
ALLERGEN_TYPE_CODE_BENZYL_BENZOATE | |
ALLERGEN_TYPE_CODE_BENZYL_CINNAMATE | |
ALLERGEN_TYPE_CODE_BENZYL_SALICYLATE | |
ALLERGEN_TYPE_CODE_BRAZIL_NUTS | |
ALLERGEN_TYPE_CODE_BUTYLPHENYL_METHYLPROPIONATE | |
ALLERGEN_TYPE_CODE_CARROTS | |
ALLERGEN_TYPE_CODE_CASHEW_NUTS | |
ALLERGEN_TYPE_CODE_CELERY | |
ALLERGEN_TYPE_CODE_CEREALS_CONTAINING_GLUTEN | |
ALLERGEN_TYPE_CODE_CINNAMAL | |
ALLERGEN_TYPE_CODE_CINNAMYL_ALCOHOL | |
ALLERGEN_TYPE_CODE_CITRAL | |
ALLERGEN_TYPE_CODE_CITRONELLOL | |
ALLERGEN_TYPE_CODE_COCOA | |
ALLERGEN_TYPE_CODE_CORIANDER | |
ALLERGEN_TYPE_CODE_CORN | |
ALLERGEN_TYPE_CODE_COUMARIN | |
ALLERGEN_TYPE_CODE_CRUSTACEANS | |
ALLERGEN_TYPE_CODE_EGGS | |
ALLERGEN_TYPE_CODE_EUGENOL | |
ALLERGEN_TYPE_CODE_EVERNIA_FURFURACEA | |
ALLERGEN_TYPE_CODE_EVERNIA_PRUNASTRI | |
ALLERGEN_TYPE_CODE_FARNESOL | |
ALLERGEN_TYPE_CODE_FISH | |
ALLERGEN_TYPE_CODE_GERANIOL | |
ALLERGEN_TYPE_CODE_GLUTEN | |
ALLERGEN_TYPE_CODE_HAZELNUTS | |
ALLERGEN_TYPE_CODE_HEXYL_CINNAMAL | |
ALLERGEN_TYPE_CODE_HYDROXYCITRONELLAL | |
ALLERGEN_TYPE_CODE_HYDROXYISOHEXYL_3_CYCLOHEXENE_CARBOXALDEHYDE_ISOEUGENOL_LIMONENE_LINAL | |
ALLERGEN_TYPE_CODE_KAMUT | |
ALLERGEN_TYPE_CODE_LACTOSE | |
ALLERGEN_TYPE_CODE_LUPINE | |
ALLERGEN_TYPE_CODE_MACADAMIA_NUTS | |
ALLERGEN_TYPE_CODE_METHYL_2_OCTYNOATE | |
ALLERGEN_TYPE_CODE_MILK | |
ALLERGEN_TYPE_CODE_MOLLUSCS | |
ALLERGEN_TYPE_CODE_MUSTARD | |
ALLERGEN_TYPE_CODE_NO_DECLARED_ALLERGENS | |
ALLERGEN_TYPE_CODE_OAT | |
ALLERGEN_TYPE_CODE_PEANUTS | |
ALLERGEN_TYPE_CODE_PEAS | |
ALLERGEN_TYPE_CODE_PECAN_NUTS | |
ALLERGEN_TYPE_CODE_PISTACHIOS | |
ALLERGEN_TYPE_CODE_POD_FRUITS | |
ALLERGEN_TYPE_CODE_QUEENSLAND_NUTS | |
ALLERGEN_TYPE_CODE_RYE | |
ALLERGEN_TYPE_CODE_SESAME_SEEDS | |
ALLERGEN_TYPE_CODE_SOYBEANS | |
ALLERGEN_TYPE_CODE_SPELT | |
ALLERGEN_TYPE_CODE_SULPHUR_DIOXIDE | |
ALLERGEN_TYPE_CODE_TREE_NUTS | |
ALLERGEN_TYPE_CODE_TREE_NUT_TRACES | |
ALLERGEN_TYPE_CODE_WALNUTS | |
ALLERGEN_TYPE_CODE_WHEAT |
DepositCode
Указывает, как правильно вылить пищевой продукт или бутылку.
| Имя | Описание |
|---|---|
DEPOSIT_CODE_UNSPECIFIED | Не использовать. Код депозита явно не указан. |
DEPOSIT_CODE_REUSABLE | |
DEPOSIT_CODE_RECYCLABLE |
Тип недвижимости
Типы недвижимости, на которые распространяется действие опциона.
| Имя | Описание |
|---|---|
UNKNOWN_PROPERTY_TYPE | Не использовать. Тип свойства явно не указан. |
OPTION | Универсальное свойство параметра пункта меню, не относящееся к одному из более специфических типов, перечисленных ниже. Используйте его, если свойство не относится к типу SIZE или PIZZA_SIDE. |
SIZE | Обозначает свойство параметра пункта меню, определяющее его размер (например, маленький, средний или большой). |
PIZZA_SIDE | Свойство, специфичное для пиццы. Например: этот параметр MenuItemOption действителен только для части/целой пиццы (например, с грибами слева, справа или целиком). |
Стоимость недвижимости
Четко определенные значения для свойства опции.
| Имя | Описание |
|---|---|
UNKNOWN_PROPERTY_VALUE | Не использовать. Значение свойства явно не указано. |
PIZZA_SIDE_LEFT | Параметр MenuItemOption применяется только к левой стороне пиццы. |
PIZZA_SIDE_RIGHT | Параметр MenuItemOption применяется только к правой стороне пиццы. |
PIZZA_SIDE_WHOLE | Параметр MenuItemOption применяется ко всей пицце. |
тип
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
menu | объект(Menu) | Взаимоисключающий с | |
section | объект(MenuSection) | Взаимоисключающий с | |
item | объект(MenuItem) | Взаимоисключающий с | |
option | объект(MenuItemOption) | Взаимоисключающий с |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
offer_set | объект(OfferSet) | Взаимоисключающий с | Доступны предложения по покупке этого продукта питания. |
menu_item_option_set | объект(MenuItemOptionSet) | Взаимоисключающий с | Доступные параметры для этого пункта меню. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
amount | число | Взаимоисключающие с | Единое число, представляющее собой показатель пищевой ценности. |
range | объект(Range) | Взаимоисключающий с | Диапазон, отражающий уровень пищевой ценности. |
| Название поля | Тип | Требование | Описание |
|---|---|---|---|
property_val | перечисление(PropertyValue) | Взаимоисключающий с | Четко определенное значение для свойства option. В настоящее время ожидается только в том случае, если property_type имеет значение PIZZA_SIDE. |
text_val | объект(TextField) | Взаимоисключающий с | Свободный текст для значения свойства. Ожидается для property_type OPTION и SIZE. |