Google создает поверхность на устройстве, которая организует приложения пользователей по вертикалям и обеспечивает новый захватывающий опыт для персонализированного потребления и обнаружения контента приложений. Этот полноэкранный режим дает партнерам-разработчикам возможность продемонстрировать свой лучший насыщенный контент на специальном канале за пределами своего приложения.
Этот документ содержит инструкции для партнеров-разработчиков по интеграции нового контента, такого как бронирование, мероприятия, жилье, достопримечательности, люди и другой контент. которые могут не принадлежать ни к одной из этих категорий, если использовать Engage SDK для заполнения этой новой области поверхности.
Детали интеграции
Терминология
Эта интеграция включает следующие три типа кластеров: Рекомендация , Рекомендуемые и Продолжение .
В кластерах рекомендаций отображаются персонализированные предложения от отдельного партнера-разработчика. Это представление пользовательского интерфейса, содержащее группу рекомендаций от одного и того же партнера-разработчика.
ArticleEntity : ArticleEntity, представляющий текстовую рекомендацию для контента, который имеет отношение к более чем одной категории контента. Элемент ArticleEntity позволяет разработчикам предоставлять разнообразный текстовый и графический контент с большим количеством метаданных для донесения информации до пользователей по сравнению с GenericFeaturedEntity. Пример: маркетинговый контент, фрагмент новостей.
EventEntity : EventEntity представляет событие, которое произойдет в будущем. Время начала мероприятия — это важная информация, которую необходимо донести до пользователей.
LodgingEntity : LodgingEntity представляет собой жилье, например, отель, квартиру, дом для отдыха для краткосрочной и долгосрочной аренды.
StoreEntity : StoreEntity представляет магазин, ресторан, кафе и т. д. Он выделяет контент, в котором ресторан или магазин являются важной частью информации, которую необходимо передать пользователям.
PointOfInterestEntity : PointOfInterestEntity представляет собой достопримечательность, например заправочную станцию, место проведения мероприятий, тематический парк, музей, туристическую достопримечательность, пешеходную тропу и т. д. Он выделяет контент, местоположение которого является важной частью информации, которую необходимо передать пользователям. Его не следует использовать под жилье, магазин или столовую.
PersonEntity : PersonEntity представляет человека. Рекомендации могут заключаться в том, чтобы выделить человека в таких категориях, как здоровье и фитнес, спорт, знакомства и т. д.
Кластер «Продолжение» показывает контент, недавно использованный пользователями от нескольких партнеров-разработчиков, в одной группе пользовательского интерфейса. Каждому партнеру-разработчику будет разрешено транслировать максимум 10 сущностей в кластере продолжения.
Ваш контент-продолжение может иметь следующую структуру:
ArticleEntity : ArticleEntity, представляющий текстовую рекомендацию для контента, который имеет отношение к более чем одной категории контента. Этот объект можно использовать для представления незаконченных новостных статей или другого контента, который пользователь хотел бы продолжать использовать с того места, где он его оставил. Пример: маркетинговый контент, фрагмент новостей.
RestaurantReservationEntity : RestaurantReservationEntity представляет резервирование ресторана или кафе и помогает пользователям отслеживать предстоящие или текущие бронирования в ресторане.
EventReservationEntity : EventReservationEntity представляет собой резервирование события и помогает пользователям отслеживать резервирования предстоящих или текущих событий. События могут включать, помимо прочего, следующее:
- Спортивные мероприятия, такие как бронирование на футбольный матч
- Игровые мероприятия, такие как резервирование для киберспорта
- Развлекательные мероприятия, такие как бронирование фильмов в кинотеатре, на концерт, театр, автограф-сессия.
- Бронирование поездок или достопримечательностей, таких как экскурсии, билеты в музеи.
- Бронирование социальных сетей / семинаров / конференций
- Бронирование образовательных/тренировочных занятий
LodgingReservationEntity : LodgingEntityReservation представляет собой бронирование жилья для путешествий и помогает пользователям отслеживать предстоящие или текущие бронирования отелей или аренды на время отпуска.
TransportationReservationEntity : TransportationReservationEntity представляет резервирование перевозки любым видом транспорта и помогает пользователям отслеживать резервирования на предстоящий или текущий рейс, паром, поезд, автобус, такси или круиз.
VehicleRentalReservationEntity : VehicleRentalReservationEntity представляет бронирование аренды автомобиля и помогает пользователям отслеживать предстоящие или текущие бронирования аренды автомобиля.
Кластер Featured — это представление пользовательского интерфейса, которое демонстрирует выбранного героя
GenericFeaturedEntity
от многих партнеров-разработчиков в одной группе пользовательского интерфейса. Существует один кластер «Рекомендуемые», который отображается в верхней части пользовательского интерфейса и имеет приоритетное размещение над всеми кластерами «Рекомендации». Каждому партнеру-разработчику разрешено транслировать одну сущность поддерживаемого типа в избранном, а множество сущностей (возможно, разных типов) от нескольких разработчиков приложений в избранном кластере.GenericFeaturedEntity : GenericFeaturedEntity отличается от элемента «Рекомендация» тем, что избранный элемент должен использоваться для одного основного контента от разработчиков и должен представлять единственный наиболее важный контент, который будет интересен и актуален для пользователей.
Предварительная работа
Минимальный уровень API: 19
Добавьте библиотеку com.google.android.engage:engage-core
в свое приложение:
dependencies {
// Make sure you also include that repository in your project's build.gradle file.
implementation 'com.google.android.engage:engage-core:1.5.2'
}
Краткое содержание
Проект основан на реализации привязанного сервиса .
На данные, которые клиент может публиковать, распространяются следующие ограничения для разных типов кластеров:
Тип кластера | Ограничения кластера | Минимальные ограничения на сущности в кластере | Максимальные ограничения объектов в кластере |
---|---|---|---|
Кластер(ы) рекомендаций | Максимум 5 | минимум 5 | Не более 25 ( ArticleEntity , EventEntity , LodgingEntity , StoreEntity , PointOfInterestEntity или PersonEntity ) |
Продолжение кластера | Максимум 1 | минимум 1 | Не более 10 ( ArticleEntity , EventReservationEntity , LodgingReservationEntity , TransportationReservationEntity или VehicleRentalReservationEntity ) |
Рекомендуемый кластер | Максимум 1 | минимум 1 | Не более 10 ( GenericFeaturedEntity ). |
Шаг 1. Предоставьте данные об объекте
В SDK определены разные объекты для представления каждого типа элементов. Мы поддерживаем следующие объекты для категории «Другие»:
-
GenericFeaturedEntity
-
ArticleEntity
-
EventEntity
-
LodgingEntity
-
StoreEntity
-
PointOfInterestEntity
-
PersonEntity
-
RestaurantReservationEntity
-
EventReservationEntity
-
LodgingReservationEntity
-
TransportationReservationEntity
-
VehicleRentalReservationEntity
В таблицах ниже показаны доступные атрибуты и требования для каждого типа.
GenericFeaturedEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Изображения для плакатов | Необходимый | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. Примечание. Если значок предоставляется, обеспечьте безопасное пространство в 24 dps как вверху, так и внизу изображения. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Заголовок | Необязательный | Название сущности. | Произвольный текст Рекомендуемый размер текста: 50 символов. |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Значки | Необязательный | Каждый значок представляет собой либо произвольный текст (максимум 15 символов), либо небольшое изображение. Специальная UX-обработка поверх изображения/видео, например, в виде значка на изображении.
| |
Значок – текст | Необязательный | Название для значка Примечание. Для значка требуется текст или изображение. | Произвольный текст Рекомендуемый размер текста: максимум 15 символов. |
Значок – изображение | Необязательный | Маленькое изображение Специальная UX-обработка, например наложение значка на миниатюру изображения или видео. Примечание. Для значка требуется текст или изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Категории контента | Необязательный | Опишите категорию контента в сущности. | Список перечислений Дополнительные сведения см. в разделе «Категория контента» . |
ArticleEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Произвольный текст Рекомендуемый размер текста: максимум 50 символов. |
Изображения для плакатов | Необязательный | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. Примечание. Изображение настоятельно рекомендуется. Если имеется значок, обеспечьте безопасное пространство в 24 dps вверху и внизу изображения. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Источник - Название | Необязательный | Имя автора, организации или репортера | Произвольный текст Рекомендуемый размер текста: до 25 символов. |
Источник – изображение | Необязательный | Изображение источника, например автора, организации, репортера. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Значки | Необязательный | Каждый значок представляет собой либо произвольный текст (максимум 15 символов), либо небольшое изображение. Специальная UX-обработка поверх изображения/видео, например наложение значка на изображение.
| |
Значок – текст | Необязательный | Название для значка Примечание. Для значка требуется текст или изображение. | Произвольный текст Рекомендуемый размер текста: максимум 15 символов. |
Значок – изображение | Необязательный | Маленькое изображение Специальная UX-обработка, например наложение значка на миниатюру изображения или видео. Примечание. Для значка требуется текст или изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Время публикации контента | Необязательный | Это временная метка эпохи в миллисекундах, когда контент был опубликован/обновлен в приложении. | Временная метка эпохи в миллисекундах |
Время последнего взаимодействия | Условно требуется | Временная метка эпохи в миллисекундах, когда пользователь последний раз взаимодействовал с этим объектом. Примечание. Это поле является обязательным, если данный объект является частью кластера продолжения. | Временная метка эпохи в миллисекундах |
Процент прогресса | Условно требуется | Процент всего контента, использованного пользователем на сегодняшний день. Примечание. Это поле является обязательным, если данный объект является частью кластера продолжения. | Целое значение от 0 до 100 включительно. |
Категории контента | Необязательный | Опишите категорию контента в сущности. | Список перечислений Дополнительные сведения см. в разделе «Категория контента» . |
EventEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Нить Рекомендуемый размер текста: максимум 50 символов. |
Время начала | Необходимый | Временная метка эпохи, когда ожидается начало события. Примечание. Это будет указано в миллисекундах. | Временная метка эпохи в миллисекундах |
Режим событий | Необходимый | Поле, указывающее, будет ли мероприятие виртуальным, очным или и тем, и другим. | Перечисление: VIRTUAL, IN_PERSON или HYBRID. |
Изображения для плакатов | Необходимый | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. Примечание. Изображение настоятельно рекомендуется. Если имеется значок, обеспечьте безопасное пространство в 24 dps вверху и внизу изображения. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Местоположение — Страна | Условно требуется | Страна, в которой происходит событие. Примечание. Это необходимо для событий IN_PERSON или HYBRID. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение - Город | Условно требуется | Город, в котором происходит событие. Примечание. Это необходимо для событий IN_PERSON или HYBRID. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — отображение адреса | Условно требуется | Адрес или название места проведения мероприятия, которое должно отображаться пользователю. Примечание. Это необходимо для событий IN_PERSON или HYBRID. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – адрес | Необязательный | Адрес (если применимо) места проведения мероприятия. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — штат | Необязательный | Штат или провинция (если применимо), в которой проводится мероприятие. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — почтовый индекс | Необязательный | Почтовый индекс (если применимо) места, в котором проводится мероприятие. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – район | Необязательный | Район (если применимо), в котором проводится мероприятие. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Время окончания | Необязательный | Временная метка эпохи, когда ожидается завершение события. Примечание. Это будет указано в миллисекундах. | Временная метка эпохи в миллисекундах |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Значки | Необязательный | Каждый значок представляет собой либо произвольный текст (максимум 15 символов), либо небольшое изображение. | |
Значок – текст | Необязательный | Название для значка Примечание. Для значка требуется текст или изображение. | Произвольный текст Рекомендуемый размер текста: максимум 15 символов. |
Значок – изображение | Необязательный | Маленькое изображение Специальная UX-обработка, например наложение значка на миниатюру изображения или видео. Примечание. Для значка требуется текст или изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Цена - Текущая цена | Условно требуется | Текущая цена билета/пропуска на мероприятие. Должно быть указано, если указана зачеркнутая цена. | Произвольный текст |
Цена - Зачеркнутая цена | Необязательный | Первоначальная цена билета/пропуска на мероприятие. | Произвольный текст |
Выноска цены | Необязательный | Выноска с ценами, чтобы указать промо-акцию, мероприятие, скидку для участников, если таковая имеется. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Категории контента | Необязательный | Опишите категорию контента в сущности. | Список подходящих перечислений
Дополнительные сведения см. в разделе «Категория контента» . |
LodgingEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Нить Рекомендуемый размер текста: максимум 50 символов. |
Изображения для плакатов | Необходимый | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. Примечание. Если значок предоставляется, обеспечьте безопасное пространство в 24 dps как вверху, так и внизу изображения. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Местоположение — Страна | Необходимый | Страна, в которой происходит проживание. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение - Город | Необходимый | Город, в котором происходит проживание. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — отображение адреса | Необходимый | Адрес проживания, который будет отображаться пользователю. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – адрес | Необязательный | Адрес (если применимо) места проживания. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — штат | Необязательный | Штат или провинция (если применимо), в которой находится жилье. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — почтовый индекс | Необязательный | Почтовый индекс (если применимо) места проживания. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – район | Необязательный | Район (если применимо) места проживания. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Значки | Необязательный | Каждый значок представляет собой либо произвольный текст (максимум 15 символов), либо небольшое изображение. | |
Значок – текст | Необязательный | Название для значка Примечание. Для значка требуется текст или изображение. | Произвольный текст Рекомендуемый размер текста: максимум 15 символов. |
Значок – изображение | Необязательный | Маленькое изображение Специальная UX-обработка, например наложение значка на миниатюру изображения или видео. Примечание. Для значка требуется текст или изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
AvailabilityTimeWindow — время начала | Необязательный | Временная метка эпохи в миллисекундах, когда ожидается, что жилье будет открыто/доступно. | Временная метка эпохи в миллисекундах |
AvailabilityTimeWindow — время окончания | Необязательный | Временная метка эпохи в миллисекундах, до которой жилье будет открыто/доступно. | Временная метка эпохи в миллисекундах |
Рейтинг – максимальное значение | Необязательный | Максимальное значение рейтинговой шкалы. Должно быть указано, если также указано текущее значение рейтинга. | Число >= 0,0 |
Рейтинг - Текущее значение | Необязательный | Текущее значение оценочной шкалы. Должно быть указано, если также указано максимальное значение рейтинга. | Число >= 0,0 |
Рейтинг – подсчет | Необязательный | Подсчет оценок за жилье. Примечание. Укажите это поле, если ваше приложение контролирует отображение счетчика пользователям. Используйте краткую строку. Например, если счетчик равен 1 000 000, рассмотрите возможность использования сокращения, например 1M, чтобы счетчик не обрезался на дисплеях меньшего размера. | Нить |
Рейтинг – значение подсчета | Необязательный | Подсчет оценок за жилье. Примечание. Укажите это поле, если вы не обрабатываете логику сокращений дисплея самостоятельно. Если присутствуют и счетчик, и значение счетчика, пользователям отображается счетчик. | Длинный |
Цена - Текущая цена | Условно требуется | Текущая стоимость проживания. Должно быть указано, если указана зачеркнутая цена. | Произвольный текст |
Цена - Зачеркнутая цена | Необязательный | Исходная цена проживания, которая будет зачеркнута в пользовательском интерфейсе. | Произвольный текст |
Выноска цены | Необязательный | Выноска с ценами, чтобы указать промо-акцию, мероприятие, скидку для участников, если таковая имеется. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
StoreEntity
Объект StoreEntity
представляет отдельный магазин, который партнеры-разработчики хотят опубликовать, например ресторан или продуктовый магазин.
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Изображения для плакатов | Необходимый | Необходимо предоставить хотя бы одно изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необязательный | Название магазина. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Расположение | Необязательный | Расположение магазина. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Вызывать | Необязательный | Выноска, чтобы рассказать об акции, событии или обновлении магазина, если таковое имеется. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Выноска мелким шрифтом | Необязательный | Текст выноски мелким шрифтом. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Описание | Необязательный | Описание магазина. | Произвольный текст Рекомендуемый размер текста: до 90 символов (слишком длинный текст может содержать многоточие). |
Рейтинг – максимальное значение | Необязательный | Максимальное значение рейтинговой шкалы. Должно быть указано, если также указано текущее значение рейтинга. | Число >= 0,0 |
Рейтинг - Текущее значение | Необязательный | Текущее значение оценочной шкалы. Должно быть указано, если также указано максимальное значение рейтинга. | Число >= 0,0 |
Рейтинг – подсчет | Необязательный | Подсчет оценок за жилье. Примечание. Укажите это поле, если ваше приложение хочет контролировать, как оно отображается пользователям. Укажите краткую строку, которая может быть отображена пользователю. Например, если количество составляет 1 000 000, рассмотрите возможность использования сокращений, таких как 1M, чтобы оно не обрезалось на дисплеях меньшего размера. | Нить |
Рейтинг – значение подсчета | Необязательный | Подсчет оценок за жилье. Примечание. Укажите это поле, если вы не хотите самостоятельно обрабатывать логику отображаемых сокращений. Если присутствуют и счетчик, и значение счетчика, мы будем использовать счетчик для отображения пользователям. | Длинный |
PointOfInterestEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Нить Рекомендуемый размер текста: максимум 50 символов. |
Изображения для плакатов | Необходимый | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. Примечание. Изображение настоятельно рекомендуется. Если имеется значок, обеспечьте безопасное пространство в 24 dps вверху и внизу изображения. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Местоположение — Страна | Необходимый | Страна, в которой происходит событие. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение - Город | Необходимый | Город, в котором происходит достопримечательность. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — отображение адреса | Необходимый | Адрес достопримечательности, которая будет отображаться пользователю. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – адрес | Необязательный | Уличный адрес (если применимо) достопримечательности. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — штат | Необязательный | Штат или провинция (если применимо), в которой расположена достопримечательность. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — почтовый индекс | Необязательный | Почтовый индекс (если применимо) достопримечательности. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – район | Необязательный | Окрестности (если применимо) интересующей точки. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
AvailabilityTimeWindow — время начала | Необязательный | Временная метка эпохи в миллисекундах, когда ожидается, что точка интереса будет открыта/доступна. | Временная метка эпохи в миллисекундах |
AvailabilityTimeWindow — время окончания | Необязательный | Временная метка эпохи в миллисекундах, до которой ожидается, что точка интереса будет открыта/доступна. | Временная метка эпохи в миллисекундах |
Значки | Необязательный | Каждый значок представляет собой либо произвольный текст (максимум 15 символов), либо небольшое изображение. | |
Значок – текст | Необязательный | Название для значка Примечание. Для значка требуется текст или изображение. | Произвольный текст Рекомендуемый размер текста: максимум 15 символов. |
Значок – изображение | Необязательный | Маленькое изображение Специальная UX-обработка, например наложение значка на миниатюру изображения или видео. Примечание. Для значка требуется текст или изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Рейтинг – максимальное значение | Необязательный | Максимальное значение рейтинговой шкалы. Должно быть указано, если также указано текущее значение рейтинга. | Число >= 0,0 |
Рейтинг - Текущее значение | Необязательный | Текущее значение оценочной шкалы. Должно быть указано, если также указано максимальное значение рейтинга. | Число >= 0,0 |
Рейтинг – подсчет | Необязательный | Подсчет оценок для точки интереса. Примечание. Укажите это поле, если ваше приложение контролирует отображение счетчика пользователям. Используйте краткую строку. Например, если счетчик равен 1 000 000, рассмотрите возможность использования сокращения, например 1M, чтобы счетчик не обрезался на дисплеях меньшего размера. | Нить |
Рейтинг – значение подсчета | Необязательный | Подсчет оценок для точки интереса. Примечание. Укажите это поле, если вы не обрабатываете логику сокращений дисплея самостоятельно. Если присутствуют и счетчик, и значение счетчика, пользователям отображается счетчик. | Длинный |
Цена - Текущая цена | Условно требуется | Текущая цена билетов/пропуска на достопримечательность. Должно быть указано, если указана зачеркнутая цена. | Произвольный текст |
Цена - Зачеркнутая цена | Необязательный | Первоначальная цена билетов/входного пропуска на достопримечательность. | Произвольный текст |
Выноска цены | Необязательный | Выноска с ценами, чтобы указать промо-акцию, мероприятие, скидку для участников, если таковая имеется. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Категории контента | Необязательный | Опишите категорию контента в сущности. | Список подходящих перечислений
Дополнительные сведения см. в разделе «Категория контента» . |
PersonEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Профиль — Имя | Необходимый | Имя, идентификатор или дескриптор профиля, например «Джон Доу», «@TeamPixel» и т. д. | Нить Рекомендуемый размер текста: максимум 50 символов. |
Профиль - Аватар | Необходимый | Изображение профиля или изображение аватара пользователя. Примечание. Должно быть квадратное изображение 1:1. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Профиль – дополнительный текст | Необязательный | Произвольный текст, например дескриптор профиля. | Произвольный текст Рекомендуемый размер текста: максимум 15 символов. |
Профиль – дополнительное изображение | Необязательный | Небольшое изображение, похожее на проверенный значок. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Изображение заголовка | Необязательный | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. Примечание. Изображение настоятельно рекомендуется. Если имеется значок, обеспечьте безопасное пространство в 24 dps вверху и внизу изображения. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Популярность – подсчет | Необязательный | Укажите количество подписчиков или значение популярности, например — «3,7 млн». Примечание. Если указаны и Count, и Count Value, будет использоваться Count. | Нить Рекомендуемый размер текста: максимум 20 символов для количества и метки вместе взятых. |
Популярность – подсчет значения | Необязательный | Число подписчиков или значение популярности. Примечание. Укажите значение счетчика, если ваше приложение не хочет обрабатывать логику оптимизации большого числа для разных размеров дисплея. Если указаны и Count, и Count Value, будет использоваться Count. | Длинный |
Популярность – ярлык | Необязательный | Укажите, что такое ярлык популярности. Например – «Нравится». | Нить Рекомендуемый размер текста: максимум 20 символов для количества и метки вместе взятых. |
Популярность – визуальная | Необязательный | Укажите, для чего предназначено взаимодействие. Например: изображение со значком «Нравится» и эмодзи. Можно предоставить более 1 изображения, но не все могут отображаться во всех форм-факторах. Примечание. Должно быть квадратное изображение 1:1. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Рейтинг – максимальное значение | Необходимый | Максимальное значение рейтинговой шкалы. Должно быть указано, если также указано текущее значение рейтинга. | Число >= 0,0 |
Рейтинг - Текущее значение | Необходимый | Текущее значение оценочной шкалы. Должно быть указано, если также указано максимальное значение рейтинга. | Число >= 0,0 |
Рейтинг – подсчет | Необязательный | Количество рейтингов сущности. Примечание. Укажите это поле, если ваше приложение хочет контролировать, как оно отображается пользователям. Укажите краткую строку, которая может быть отображена пользователю. Например, если количество составляет 1 000 000, рассмотрите возможность использования сокращений, таких как 1M, чтобы оно не обрезалось на дисплеях меньшего размера. | Нить |
Рейтинг – значение подсчета | Необязательный | Количество рейтингов сущности. Примечание. Укажите это поле, если вы не хотите самостоятельно обрабатывать логику отображаемых сокращений. Если присутствуют и счетчик, и значение счетчика, мы будем использовать счетчик для отображения пользователям. | Длинный |
Местоположение — Страна | Необязательный | Страна, в которой человек находится или служит. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение - Город | Необязательный | Город, в котором человек находится или служит. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — отображение адреса | Необязательный | Пользователю будет показан адрес, по которому человек находится или обслуживает. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – адрес | Необязательный | Уличный адрес (если применимо), по которому находится или работает данное лицо. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — штат | Необязательный | Государство (если применимо), в котором находится или служит данное лицо. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — почтовый индекс | Необязательный | Почтовый индекс (если применимо), где находится или работает данное лицо. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – район | Необязательный | Район (если применимо), где находится или служит человек. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Значки | Необязательный | Каждый значок представляет собой либо произвольный текст (максимум 15 символов), либо небольшое изображение. | |
Значок – текст | Необязательный | Название для значка Примечание. Для значка требуется текст или изображение. | Произвольный текст Рекомендуемый размер текста: максимум 15 символов. |
Значок – изображение | Необязательный | Маленькое изображение Специальная UX-обработка, например наложение значка на миниатюру изображения или видео. Примечание. Для значка требуется текст или изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Категории контента | Необязательный | Опишите категорию контента в сущности. | Список подходящих перечислений
Дополнительные сведения см. в разделе «Категория контента» . |
RestaurantReservationEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Нить Рекомендуемый размер текста: максимум 50 символов. |
Время начала бронирования | Необходимый | Временная метка эпохи в миллисекундах, когда ожидается начало резервирования. | Временная метка эпохи в миллисекундах |
Местоположение — Страна | Необходимый | Страна, в которой работает ресторан. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение - Город | Необходимый | Город, в котором происходит ресторан. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — отображение адреса | Необходимый | Адрес ресторана, который будет отображаться пользователю. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – адрес | Необязательный | Адрес (если применимо) ресторана. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — штат | Необязательный | Штат или провинция (если применимо), в которой расположен ресторан. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — почтовый индекс | Необязательный | Почтовый индекс (если применимо) ресторана. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – район | Необязательный | Район (если применимо) ресторана. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Изображения для плакатов | Необязательный | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Размер стола | Необязательный | Количество человек в группе бронирования | Целое число > 0 |
EventReservationEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Нить Рекомендуемый размер текста: максимум 50 символов. |
Время начала | Необходимый | Временная метка эпохи, когда ожидается начало события. Примечание. Это будет указано в миллисекундах. | Временная метка эпохи в миллисекундах |
Режим событий | Необходимый | Поле, указывающее, будет ли мероприятие виртуальным, очным или и тем, и другим. | Перечисление: VIRTUAL, IN_PERSON или HYBRID. |
Местоположение — Страна | Условно требуется | Страна, в которой происходит событие. Примечание. Это необходимо для событий IN_PERSON или HYBRID. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение - Город | Условно требуется | Город, в котором происходит событие. Примечание. Это необходимо для событий IN_PERSON или HYBRID. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — отображение адреса | Условно требуется | Адрес или название места проведения мероприятия, которое должно отображаться пользователю. Примечание. Это необходимо для событий IN_PERSON или HYBRID. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – адрес | Необязательный | Адрес (если применимо) места проведения мероприятия. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — штат | Необязательный | Штат или провинция (если применимо), в которой проводится мероприятие. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — почтовый индекс | Необязательный | Почтовый индекс (если применимо) места, в котором проводится мероприятие. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – район | Необязательный | Район (если применимо), в котором проводится мероприятие. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Изображения для плакатов | Необязательный | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. Примечание. Изображение настоятельно рекомендуется. Если имеется значок, обеспечьте безопасное пространство в 24 dps вверху и внизу изображения. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Время окончания | Необязательный | Временная метка эпохи, когда ожидается завершение события. Примечание. Это будет указано в миллисекундах. | Временная метка эпохи в миллисекундах |
Поставщик услуг – имя | Необязательный | Имя поставщика услуг. Примечание. Для поставщика услуг требуется либо текст, либо изображение. | Свободный текст. Например, имя организатора мероприятия/тура. |
Поставщик услуг – изображение | Необязательный | Логотип/изображение поставщика услуг. Примечание. Для поставщика услуг требуется либо текст, либо изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Значки | Необязательный | Каждый значок представляет собой либо произвольный текст (максимум 15 символов), либо небольшое изображение. | |
Значок – текст | Необязательный | Название для значка Примечание. Для значка требуется текст или изображение. | Произвольный текст Рекомендуемый размер текста: максимум 15 символов. |
Значок – изображение | Необязательный | Маленькое изображение Специальная UX-обработка, например наложение значка на миниатюру изображения или видео. Примечание. Для значка требуется текст или изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Идентификатор резервирования | Необязательный | Идентификатор резервирования для резервирования события. | Произвольный текст |
Цена - Текущая цена | Условно требуется | Текущая цена билета/пропуска на мероприятие. Должно быть указано, если указана зачеркнутая цена. | Произвольный текст |
Цена - Зачеркнутая цена | Необязательный | Первоначальная цена билета/пропуска на мероприятие. | Произвольный текст |
Выноска цены | Необязательный | Выноска с ценами, чтобы указать промо-акцию, мероприятие, скидку для участников, если таковая имеется. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Рейтинг – максимальное значение | Необязательный | Максимальное значение рейтинговой шкалы. Должно быть указано, если также указано текущее значение рейтинга. | Число >= 0,0 |
Рейтинг - Текущее значение | Необязательный | Текущее значение оценочной шкалы. Должно быть указано, если также указано максимальное значение рейтинга. | Число >= 0,0 |
Рейтинг – подсчет | Необязательный | Подсчет рейтингов события. Примечание. Укажите это поле, если ваше приложение хочет контролировать, как оно отображается пользователям. Укажите краткую строку, которая может быть отображена пользователю. Например, если количество составляет 1 000 000, рассмотрите возможность использования сокращений, таких как 1M, чтобы оно не обрезалось на дисплеях меньшего размера. | Нить |
Рейтинг – значение подсчета | Необязательный | Подсчет рейтингов события. Примечание. Укажите это поле, если вы не хотите самостоятельно обрабатывать логику отображаемых сокращений. Если присутствуют и счетчик, и значение счетчика, мы будем использовать счетчик для отображения пользователям. | Длинный |
Категории контента | Необязательный | Опишите категорию контента в сущности. | Список подходящих перечислений
Дополнительные сведения см. в разделе «Категория контента» . |
LodgingReservationEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Свободный текст. Например, «Ваше пребывание с 12 декабря». Рекомендуемый размер текста: максимум 50 символов. |
Время заезда | Необходимый | Временная метка эпохи в миллисекундах, обозначающая время прибытия для резервирования. | Временная метка эпохи в миллисекундах |
Время выезда | Необходимый | Временная метка эпохи в миллисекундах, которая представляет время выезда для бронирования. | Временная метка эпохи в миллисекундах |
Местоположение — Страна | Необходимый | Страна, в которой находится жилье. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение - Город | Необходимый | Город, в котором находится жилье. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — отображение адреса | Необходимый | Адрес проживания, который будет отображаться пользователю. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – адрес | Необязательный | Адрес (если применимо) места проживания. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — штат | Необязательный | Штат или провинция (если применимо), в которой находится жилье. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение — почтовый индекс | Необязательный | Почтовый индекс (если применимо) места проживания. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Местоположение – район | Необязательный | Район (если применимо) места проживания. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Изображения для плакатов | Необязательный | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. Примечание. Если значок предоставляется, обеспечьте безопасное пространство в 24 dps как вверху, так и внизу изображения. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Идентификатор резервирования | Необязательный | Идентификатор бронирования для бронирования жилья. | Произвольный текст |
Рейтинг – максимальное значение | Необязательный | Максимальное значение рейтинговой шкалы. Должно быть указано, если также указано текущее значение рейтинга. | Число >= 0,0 |
Рейтинг - Текущее значение | Необязательный | Текущее значение оценочной шкалы. Должно быть указано, если также указано максимальное значение рейтинга. | Число >= 0,0 |
Рейтинг – подсчет | Необязательный | Подсчет оценок за жилье. Примечание. Укажите это поле, если ваше приложение хочет контролировать, как оно отображается пользователям. Укажите краткую строку, которая может быть отображена пользователю. Например, если количество составляет 1 000 000, рассмотрите возможность использования сокращений, таких как 1M, чтобы оно не обрезалось на дисплеях меньшего размера. | Нить |
Рейтинг – значение подсчета | Необязательный | Подсчет оценок за жилье. Примечание. Укажите это поле, если вы не хотите самостоятельно обрабатывать логику отображаемых сокращений. Если присутствуют и счетчик, и значение счетчика, мы будем использовать счетчик для отображения пользователям. | Длинный |
Цена - Текущая цена | Условно требуется | Текущая стоимость проживания. Должно быть указано, если указана зачеркнутая цена. | Произвольный текст |
Цена - Зачеркнутая цена | Необязательный | Исходная цена проживания, которая будет зачеркнута в пользовательском интерфейсе. | Произвольный текст |
Выноска цены | Необязательный | Выноска с ценами, чтобы указать промо-акцию, мероприятие, скидку для участников, если таковая имеется. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
TransportationReservationEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Свободный текст. Например, «SFO в SAN». Рекомендуемый размер текста: максимум 50 символов. |
Тип транспорта | Необходимый | Вид/тип транспорта для бронирования. | Перечисление: ПОЛЕТ, ПОЕЗД, АВТОБУС или ПАРОМ. |
Время отправления | Необходимый | Временная метка эпохи в миллисекундах, обозначающая время отправления. | Временная метка эпохи в миллисекундах |
Время прибытия | Необходимый | Временная метка эпохи в миллисекундах, обозначающая время прибытия. | Временная метка эпохи в миллисекундах |
Место отправления — Страна | Необязательный | Страна отправления. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место отправления – город | Необязательный | Город отправления. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место отправления – отображение адреса | Необязательный | Место отправления, которое будет отображаться пользователю. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место отправления – адрес | Необязательный | Адрес (если применимо) места отправления. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место отправления — штат | Необязательный | Штат или провинция (если применимо) места отправления. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место отправления — почтовый индекс | Необязательный | Почтовый индекс (если применимо) места отправления. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место отправления – район | Необязательный | Район (если применимо) места отправления. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место прибытия — Страна | Необязательный | Страна прибытия. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место прибытия – город | Необязательный | Город прибытия. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место прибытия – отображение адреса | Необязательный | Место прибытия, которое будет отображаться пользователю. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место прибытия — адрес | Необязательный | Адрес (если применимо) места прибытия. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место прибытия — штат | Необязательный | Штат или провинция (если применимо) места прибытия. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место прибытия — почтовый индекс | Необязательный | Почтовый индекс (если применимо) места прибытия. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Место прибытия – район | Необязательный | Район (если применимо) места прибытия. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Поставщик услуг – имя | Необязательный | Имя поставщика услуг. Примечание. Для поставщика услуг требуется либо текст, либо изображение. | Свободный текст. Например, название авиакомпании |
Поставщик услуг – изображение | Необязательный | Логотип/изображение поставщика услуг. Примечание. Для поставщика услуг требуется либо текст, либо изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Изображения для плакатов | Необязательный | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Идентификатор резервирования | Необязательный | Идентификатор бронирования для бронирования перевозки. | Произвольный текст |
Цена - Текущая цена | Условно требуется | Текущая цена бронирования. Должно быть указано, если указана зачеркнутая цена. | Произвольный текст |
Цена - Зачеркнутая цена | Необязательный | Исходная цена резервирования, которая будет зачеркнута в пользовательском интерфейсе. | Произвольный текст |
Выноска цены | Необязательный | Выноска с ценами, чтобы указать промо-акцию, мероприятие, скидку для участников, если таковая имеется. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Номер транспорта | Необходимый | Номер рейса, номер автобуса, номер поезда или номер парома/круиза. | Произвольный текст |
Время посадки | Необходимый | Временная метка эпохи, обозначающая время посадки для бронирования (если применимо). | Временная метка эпохи в миллисекундах |
VehicleRentalReservationEntity
Атрибут | Требование | Описание | Формат |
---|---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на объект в приложении поставщика. Примечание. Для атрибуции можно использовать глубокие ссылки. Обратитесь к этому FAQ | Ури |
Заголовок | Необходимый | Название сущности. | Свободный текст. Например, "Авис Юнион Сквер SF" Рекомендуемый размер текста: максимум 50 символов. |
Время получения | Необходимый | Временная метка эпохи, обозначающая время получения бронирования. | Временная метка эпохи в миллисекундах |
Время возврата | Необязательный | Временная метка эпохи, обозначающая время выезда для резервирования. | Временная метка эпохи в миллисекундах |
Адрес получения — Страна | Необязательный | Страна места получения. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Адрес самовывоза — город | Необязательный | Город места получения. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Адрес получения – отображение адреса | Необязательный | Место получения, которое будет отображаться пользователю. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Адрес самовывоза — адрес улицы | Необязательный | Адрес (если применимо) места получения автомобиля. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Адрес получения — штат | Необязательный | Штат или провинция (если применимо) места получения. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Адрес получения — почтовый индекс | Необязательный | Почтовый индекс (если применимо) места получения. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Адрес самовывоза — район | Необязательный | Район (если применимо) места получения. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Обратный адрес – страна | Необязательный | Страна места возврата. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Обратный адрес – город | Необязательный | Город места возврата. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Обратный адрес — отображение адреса | Необязательный | Место возврата, которое будет отображаться пользователю. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Обратный адрес – уличный адрес | Необязательный | Уличный адрес (если применимо) места возврата. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Обратный адрес – штат | Необязательный | Штат или провинция (если применимо) места возврата. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Обратный адрес — почтовый индекс | Необязательный | Почтовый индекс (если применимо) места возврата. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Обратный адрес – район | Необязательный | Район (если применимо) места возврата. | Произвольный текст Рекомендуемый размер текста: максимум ~20 символов. |
Поставщик услуг – имя | Необязательный | Имя поставщика услуг. Примечание. Для поставщика услуг требуется либо текст, либо изображение. | Свободный текст. Например, «Авис Прокат автомобилей». |
Поставщик услуг – изображение | Необязательный | Логотип/изображение поставщика услуг. Примечание. Для поставщика услуг требуется либо текст, либо изображение. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Изображения для плакатов | Необязательный | Если предоставлено несколько изображений, мы покажем только одно изображение. Рекомендуемое соотношение сторон — 16:9. | Дополнительные сведения см. в разделе «Спецификации изображения» . |
Описание | Необязательный | Один абзац текста для описания объекта. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста: 180 символов. |
Список субтитров | Необязательный | До трех субтитров, каждый из которых представляет собой одну строку текста. Примечание. Пользователю будет отображаться либо описание, либо список субтитров, но не оба одновременно. | Произвольный текст Рекомендуемый размер текста для каждого субтитра: максимум 50 символов. |
Идентификатор подтверждения | Необязательный | Идентификатор подтверждения бронирования аренды автомобиля. | Произвольный текст |
Цена - Текущая цена | Условно требуется | Текущая цена бронирования. Должно быть указано, если указана зачеркнутая цена. | Произвольный текст |
Цена - Зачеркнутая цена | Необязательный | Исходная цена резервирования, которая будет зачеркнута в пользовательском интерфейсе. | Произвольный текст |
Выноска цены | Необязательный | Выноска с ценами, чтобы указать промо-акцию, мероприятие, скидку для участников, если таковая имеется. | Произвольный текст Рекомендуемый размер текста: до 45 символов (слишком длинный текст может содержать многоточие). |
Характеристики изображения
Необходимые характеристики для графических ресурсов перечислены в этой таблице:
Соотношение сторон | Минимум пикселей | Рекомендуемые пиксели |
---|---|---|
Квадрат (1х1) Предпочтительный | 300х300 | 1200x1200 |
Пейзаж (1,91x1) | 600x314 | 1200x628 |
Портрет (4х5) | 480x600 | 960x1200 |
Изображения должны размещаться на общедоступных CDN, чтобы Google мог получить к ним доступ.
Форматы файлов
PNG, JPG, статический GIF, WebP
Максимальный размер файла
5120 КБ
Дополнительные рекомендации
- Безопасная область изображения: поместите важный контент в центр 80% изображения.
- Используйте прозрачный фон, чтобы изображение правильно отображалось в настройках темной и светлой темы.
Категория контента
Категория контента позволяет приложениям публиковать контент, принадлежащий нескольким категориям. Это сопоставляет контент с некоторыми из предопределенных категорий, а именно:
-
TYPE_EDUCATION
-
TYPE_SPORTS
-
TYPE_MOVIES_AND_TV_SHOWS
-
TYPE_BOOKS
-
TYPE_AUDIOBOOKS
-
TYPE_MUSIC
-
TYPE_DIGITAL_GAMES
-
TYPE_TRAVEL_AND_LOCAL
-
TYPE_HOME_AND_AUTO
-
TYPE_BUSINESS
-
TYPE_NEWS
-
TYPE_FOOD_AND_DRINK
-
TYPE_SHOPPING
-
TYPE_HEALTH_AND_FITENESS
-
TYPE_MEDICAL
-
TYPE_PARENTING
-
TYPE_DATING
Изображения должны размещаться на общедоступных CDN, чтобы Google мог получить к ним доступ.
Рекомендации по использованию категорий контента
- Некоторые сущности, такие как ArticleEntity и GenericFeaturedEntity, имеют право использовать любую из категорий контента. Для других сущностей, таких как EventEntity , EventReservationEntity , PointOfInterestEntity , допускается только подмножество этих категорий. Прежде чем заполнять список, проверьте список категорий, подходящих для типа сущности.
Используйте конкретный тип сущности для некоторых категорий контента вместо комбинации общих сущностей и ContentCategory:
- TYPE_MOVIES_AND_TV_SHOWS – проверьте объекты из руководства по интеграции Watch, прежде чем использовать общие объекты.
- TYPE_BOOKS — проверьте EbookEntity перед использованием общих объектов.
- TYPE_AUDIOBOOKS — проверьте AudiobookEntity перед использованием общих объектов.
- TYPE_SHOPPING — проверьте ShoppingEntity перед использованием общих объектов.
- TYPE_FOOD_AND_DRINK — проверьте объекты из руководства по интеграции продуктов питания, прежде чем использовать общие объекты.
Поле ContentCategory является необязательным и его следует оставить пустым, если контент не принадлежит ни к одной из категорий, упомянутых ранее.
Если указано несколько категорий контента, укажите их в порядке релевантности контенту, при этом наиболее релевантная категория контента будет располагаться первой в списке.
Шаг 2. Предоставьте данные кластера
Рекомендуется, чтобы задание публикации контента выполнялось в фоновом режиме (например, с помощью WorkManager ) и планировалось на регулярной основе или на основе событий (например, каждый раз, когда пользователь открывает приложение или когда пользователь только что добавил что-то в их тележка).
AppEngagePublishClient
отвечает за публикацию кластеров.
Существуют следующие API для публикации кластеров в клиенте:
-
isServiceAvailable
-
publishRecommendationClusters
-
publishFeaturedCluster
-
publishContinuationCluster
-
publishUserAccountManagementRequest
-
updatePublishStatus
-
deleteRecommendationsClusters
-
deleteFeaturedCluster
-
deleteContinuationCluster
-
deleteUserManagementCluster
-
deleteClusters
isServiceAvailable
Этот API используется для проверки доступности сервиса для интеграции и возможности представления контента на устройстве.
Котлин
client.isServiceAvailable.addOnCompleteListener { task -> if (task.isSuccessful) { // Handle IPC call success if(task.result) { // Service is available on the device, proceed with content publish // calls. } else { // Service is not available, no further action is needed. } } else { // The IPC call itself fails, proceed with error handling logic here, // such as retry. } }
Ява
client.isServiceAvailable().addOnCompleteListener(task - > { if (task.isSuccessful()) { // Handle success if(task.getResult()) { // Service is available on the device, proceed with content publish // calls. } else { // Service is not available, no further action is needed. } } else { // The IPC call itself fails, proceed with error handling logic here, // such as retry. } });
publishRecommendationClusters
Этот API используется для публикации списка объектов RecommendationCluster
.
Котлин
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Top Picks For You") .build() ) .build() )
Ява
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Top Picks For You") .build()) .build());
Когда сервис получает запрос, в рамках одной транзакции происходят следующие действия:
- Существующие данные
RecommendationCluster
от партнера-разработчика удаляются. - Данные запроса анализируются и сохраняются в обновленном кластере рекомендаций.
В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
publishFeaturedCluster
Этот API используется для публикации списка объектов FeaturedCluster
.
Котлин
client.publishFeaturedCluster( PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( FeaturedCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build())
Ява
client.publishFeaturedCluster( new PublishFeaturedClustersRequest.Builder() .addFeaturedCluster( new FeaturedCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build());
Когда сервис получает запрос, в рамках одной транзакции происходят следующие действия:
- Существующие данные
FeaturedCluster
от партнера-разработчика удаляются. - Данные запроса анализируются и сохраняются в обновленном избранном кластере.
В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
publishContinuationCluster
Этот API используется для публикации объекта ContinuationCluster
.
Котлин
client.publishContinuationCluster( PublishContinuationClusterRequest.Builder() .setContinuationCluster( ContinuationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build())
Ява
client.publishContinuationCluster( new PublishContinuationClusterRequest.Builder() .setContinuationCluster( new ContinuationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build());
Когда сервис получает запрос, в рамках одной транзакции происходят следующие действия:
- Существующие данные
ContinuationCluster
от партнера-разработчика удаляются. - Данные запроса анализируются и сохраняются в обновленном кластере продолжения.
В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
publishUserAccountManagementRequest
Этот API используется для публикации карты входа. Действие входа направляет пользователей на страницу входа в приложение, чтобы приложение могло публиковать контент (или предоставлять более персонализированный контент).
Следующие метаданные являются частью карты входа:
Атрибут | Требование | Описание |
---|---|---|
Действие Ури | Необходимый | Глубокая ссылка на действие (т. е. переход на страницу входа в приложение) |
Изображение | Необязательно: если не указано, необходимо указать название. | Изображение на карте Изображения с соотношением сторон 16x9 и разрешением 1264x712. |
Заголовок | Необязательно: если не указано, необходимо предоставить изображение. | Титул на карте |
Текст действия | Необязательный | Текст, отображаемый в призыве к действию (т. е. войдите в систему) |
Субтитры | Необязательный | Дополнительный субтитр на карте |
Котлин
var SIGN_IN_CARD_ENTITY = SignInCardEntity.Builder() .addPosterImage( Image.Builder() .setImageUri(Uri.parse("http://www.x.com/image.png")) .setImageHeightInPixel(500) .setImageWidthInPixel(500) .build()) .setActionText("Sign In") .setActionUri(Uri.parse("http://xx.com/signin")) .build() client.publishUserAccountManagementRequest( PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
Ява
SignInCardEntity SIGN_IN_CARD_ENTITY = new SignInCardEntity.Builder() .addPosterImage( new Image.Builder() .setImageUri(Uri.parse("http://www.x.com/image.png")) .setImageHeightInPixel(500) .setImageWidthInPixel(500) .build()) .setActionText("Sign In") .setActionUri(Uri.parse("http://xx.com/signin")) .build(); client.publishUserAccountManagementRequest( new PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
Когда сервис получает запрос, в рамках одной транзакции происходят следующие действия:
- Существующие данные
UserAccountManagementCluster
от партнера-разработчика удаляются. - Данные запроса анализируются и сохраняются в обновленном кластере UserAccountManagementCluster.
В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
updatePublishStatus
Если по каким-либо внутренним бизнес-причинам ни один из кластеров не опубликован, мы настоятельно рекомендуем обновить статус публикации с помощью API updatePublishStatus . Это важно, потому что:
- Предоставление статуса во всех сценариях, даже когда контент опубликован (СТАТУС == ПУБЛИКИРОВАНО), имеет решающее значение для заполнения панелей мониторинга, которые используют этот явный статус для передачи работоспособности и других показателей вашей интеграции.
- Если контент не опубликован, но статус интеграции не нарушен (STATUS == NOT_PUBLISHED), Google может избежать появления оповещений на панелях состояния приложения. Это подтверждает, что контент не публикуется по причине ожидаемой с точки зрения провайдера ситуации.
- Это помогает разработчикам получить представление о том, когда данные публикуются, а когда нет.
- Google может использовать коды состояния, чтобы подтолкнуть пользователя к выполнению определенных действий в приложении, чтобы он мог увидеть содержимое приложения или преодолеть его.
Список подходящих кодов статуса публикации:
// Content is published
AppEngagePublishStatusCode.PUBLISHED,
// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,
// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,
// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,
// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,
// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,
// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,
// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,
// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER
Если контент не публикуется из-за того, что пользователь не вошел в систему, Google рекомендует опубликовать карту входа. Если по какой-либо причине поставщики не могут опубликовать карту входа, мы рекомендуем вызвать API updatePublishStatus с кодом состояния NOT_PUBLISHED_REQUIRES_SIGN_IN.
Котлин
client.updatePublishStatus( PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build())
Ява
client.updatePublishStatus( new PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build());
deleteRecommendationClusters
Этот API используется для удаления содержимого кластеров рекомендаций.
Котлин
client.deleteRecommendationClusters()
Ява
client.deleteRecommendationClusters();
Когда служба получает запрос, она удаляет существующие данные из кластеров рекомендаций. В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
deleteFeaturedCluster
Этот API используется для удаления содержимого избранного кластера.
Котлин
client.deleteFeaturedCluster()
Ява
client.deleteFeaturedCluster();
Когда служба получает запрос, она удаляет существующие данные из избранного кластера. В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
deleteContinuationCluster
Этот API используется для удаления содержимого кластера продолжения.
Котлин
client.deleteContinuationCluster()
Ява
client.deleteContinuationCluster();
Когда служба получает запрос, она удаляет существующие данные из кластера продолжения. В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
deleteUserManagementCluster
Этот API используется для удаления содержимого кластера UserAccountManagement.
Котлин
client.deleteUserManagementCluster()
Ява
client.deleteUserManagementCluster();
Когда служба получает запрос, она удаляет существующие данные из кластера UserAccountManagement. В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
deleteClusters
Этот API используется для удаления содержимого кластера определенного типа.
Котлин
client.deleteClusters( DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_CONTINUATION) .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) .build())
Ява
client.deleteClusters( new DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_CONTINUATION) .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) .build());
Когда служба получает запрос, она удаляет существующие данные из всех кластеров, соответствующих указанным типам кластеров. Клиенты могут выбрать передачу одного или нескольких типов кластеров. В случае ошибки весь запрос отклоняется и существующее состояние сохраняется.
Обработка ошибок
Настоятельно рекомендуется прослушивать результат задачи из API публикации, чтобы можно было предпринять последующие действия для восстановления и повторной отправки успешной задачи.
Котлин
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster(..) .build()) .addOnCompleteListener { task -> if (task.isSuccessful) { // do something } else { val exception = task.exception if (exception is AppEngageException) { @AppEngageErrorCode val errorCode = exception.errorCode if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) { // do something } } } }
Ява
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster(...) .build()) .addOnCompleteListener( task -> { if (task.isSuccessful()) { // do something } else { Exception exception = task.getException(); if (exception instanceof AppEngageException) { @AppEngageErrorCode int errorCode = ((AppEngageException) exception).getErrorCode(); if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) { // do something } } } });
Ошибка возвращается как AppEngageException
, а причина указывается в виде кода ошибки.
Код ошибки | Название ошибки | Примечание |
---|---|---|
1 | SERVICE_NOT_FOUND | Услуга недоступна на данном устройстве. |
2 | SERVICE_NOT_AVAILABLE | Услуга доступна на данном устройстве, но недоступна на момент звонка (например, отключена явно). |
3 | SERVICE_CALL_EXECUTION_FAILURE | Выполнение задачи не удалось из-за проблем с потоками. В этом случае его можно повторить. |
4 | SERVICE_CALL_PERMISSION_DENIED | Вызывающий абонент не имеет права совершать вызов службы. |
5 | SERVICE_CALL_INVALID_ARGUMENT | Запрос содержит недопустимые данные (например, количество кластеров превышает допустимое). |
6 | SERVICE_CALL_INTERNAL | Ошибка на стороне сервиса. |
7 | SERVICE_CALL_RESOURCE_EXHAUSTED | Вызов службы поддержки осуществляется слишком часто. |
Шаг 3. Обработка намерений трансляции
Помимо выполнения вызовов API публикации контента через задание, также необходимо настроить BroadcastReceiver
для получения запроса на публикацию контента.
Целью широковещательных намерений является главным образом повторная активация приложений и принудительная синхронизация данных. Широковещательные намерения не предназначены для частой отправки. Он срабатывает только тогда, когда служба Engage определяет, что контент может быть устаревшим (например, недельной давности). Таким образом, появляется больше уверенности в том, что пользователь сможет получить новый контент, даже если приложение не запускалось в течение длительного периода времени.
BroadcastReceiver
необходимо настроить двумя следующими способами:
- Динамически зарегистрируйте экземпляр класса
BroadcastReceiver
с помощьюContext.registerReceiver()
. Это позволяет осуществлять связь с приложениями, которые все еще находятся в памяти.
Котлин
class AppEngageBroadcastReceiver : BroadcastReceiver(){ // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast // is received // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received // Trigger continuation cluster publish when PUBLISH_CONTINUATION broadcast is // received } fun registerBroadcastReceivers(context: Context){ var context = context context = context.applicationContext // Register Recommendation Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION)) // Register Featured Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_FEATURED)) // Register Continuation Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION)) }
Ява
class AppEngageBroadcastReceiver extends BroadcastReceiver { // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast // is received // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received // Trigger continuation cluster publish when PUBLISH_CONTINUATION broadcast is // received } public static void registerBroadcastReceivers(Context context) { context = context.getApplicationContext(); // Register Recommendation Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION)); // Register Featured Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED)); // Register Continuation Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION)); }
- Статически объявите реализацию с помощью тега
<receiver>
в файлеAndroidManifest.xml
. Это позволяет приложению получать широковещательные намерения, когда оно не запущено, а также позволяет приложению публиковать контент.
<application>
<receiver
android:name=".AppEngageBroadcastReceiver"
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_CONTINUATION" />
</intent-filter>
</receiver>
</application>
Служба отправляет следующие намерения :
-
com.google.android.engage.action.PUBLISH_RECOMMENDATION
При получении этого намерения рекомендуется запуститьpublishRecommendationClusters
. -
com.google.android.engage.action.PUBLISH_FEATURED
При получении этого намерения рекомендуется запуститьpublishFeaturedCluster
. -
com.google.android.engage.action.PUBLISH_CONTINUATION
При получении этого намерения рекомендуется запуститьpublishContinuationCluster
.
Рабочий процесс интеграции
Пошаговое руководство по проверке интеграции после ее завершения см. в разделе Рабочий процесс интеграции с разработчиками .
Часто задаваемые вопросы
См . Часто задаваемые вопросы по Engage SDK .
Контакт
Если в процессе интеграции возникнут вопросы, свяжитесь с нами по адресу Engage-developers@google.com .
Следующие шаги
После завершения интеграции ваши следующие шаги будут следующими:
- Отправьте электронное письмо на адрес Engage-developers@google.com и прикрепите интегрированный APK-файл, готовый к тестированию Google.
- Google выполняет внутреннюю проверку и проверку, чтобы убедиться, что интеграция работает должным образом. Если потребуются изменения, Google свяжется с вами и предоставит всю необходимую информацию.
- Когда тестирование будет завершено и никаких изменений не потребуется, Google свяжется с вами и уведомит вас о том, что вы можете начать публикацию обновленного и интегрированного APK в Play Store.
- После того как Google подтвердит, что ваш обновленный APK-файл опубликован в Play Store, ваши кластеры «Рекомендации» , «Избранное» и «Продолжение» могут быть опубликованы и видны пользователям.