Часто задаваемые вопросы об Engage SDK

Часто задаваемые вопросы о публикации

Кто управляет публикацией контента?

Разработчик приложения управляет публикацией контента и отправляет запросы в сервис Engage. Таким образом, партнеры-разработчики могут лучше контролировать, когда и как публиковать контент для пользователей. Это позволяет не запускать партнерское приложение слишком часто для публикации контента.

Нужно ли разработчику публиковать все типы кластеров?

Технически разработчики могут опубликовать только один кластер, но мы настоятельно рекомендуем добавить больше. В противном случае разработчики упускают возможность повысить вовлеченность пользователей. Мы настоятельно рекомендуем публиковать все типы кластеров для каждой вертикали.

Как часто партнер-разработчик должен публиковать данные с помощью WorkManager, пока приложение запущено?

Это решает партнер-разработчик. Google рекомендует публиковать контент с общими рекомендациями один или два раза в день, а для корзины, повторного заказа и другого контента, связанного с продолжением действий, использовать методологию, основанную на событиях (например, запускать воркер в качестве обратного вызова, когда пользователь добавляет товары в корзину или останавливает фильм на середине). Для социальных приложений важно публиковать обновленные кластеры рекомендаций после каждого использования приложения. Пользователи социальных приложений больше заинтересованы в самых последних рекомендациях и в идеале хотели бы видеть публикацию не более одного раза.

Когда разработчику следует вызывать API удаления?

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

Часто задаваемые вопросы о намерении трансляции

Зачем разработчикам приложений для Android нужно регистрировать намерения широковещательной рассылки?

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

Не удалось протестировать намерение трансляции.

Приложение для проверки не поддерживает тестирование широковещательного намерения с разрешением. Вам нужно удалить разрешения на время тестирования и добавить их обратно перед переходом на рабочую версию SDK на шаге 6.

Выполнение в фоновом режиме запрещено

При регистрации намерения трансляции может возникнуть следующая ошибка:

Background execution not allowed: receiving Intent
{ act=com.google.android.engage.action.PUBLISH_RECOMMENDATION .. }

Широковещательные приемники нужно регистрировать динамически.

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION 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,
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null));
...

}

Часто задаваемые вопросы о рабочих процессах

При интеграции с SDK могут возникать следующие ошибки:

Ошибки проверки на уровне приложения, кластера и объекта.

В сводках на уровне приложения, кластера и объекта указывается количество ошибок проверки. Эти ошибки возникают, когда не заполнены обязательные поля или указаны недопустимые значения. Сообщения об ошибках выделяются красным цветом под соответствующими полями. Прежде чем публиковать APK-файл, исправьте все ошибки и убедитесь, что он работает правильно.

Ссылки на контент связаны с названием пакета. Хороший способ протестировать ссылки на контент – использовать инструмент adb.

adb shell am start -W -a android.intent.action.VIEW -d <DEEPLINK URI> <PACKAGE NAME>

Ссылки на контент – отличный способ отслеживать атрибуцию. В URL ссылок на контент, которые ведут пользователей в ваше приложение, можно добавить дополнительные параметры отслеживания. Пример: http://xx/deeplink?source_tag=engage.

Разработчики могут добавлять собственные параметры отслеживания и атрибуции, чтобы оценивать эффективность.

Часто задаваемые вопросы о Google TV Freeplay 2.0

Общие вопросы

Что такое Engage?

Engage выводит функцию "Продолжить просмотр" на новый уровень. Это значительное улучшение, которое позволяет зрителям легко возобновлять просмотр контента на более широком спектре устройств. Представьте, что вы начали смотреть фильм на Google TV, а затем продолжили просмотр на телефоне по дороге на работу. Это и есть Engage.

Новая система призвана повысить вовлеченность и удержание зрителей, обеспечивая удобство и простоту использования во всей экосистеме Google.

Video Discovery API и Engage – это одно и то же?

Да, это одно и то же. Engage SDK – это библиотека, которая поддерживает строку "Продолжить просмотр". Engage поддерживает больше типов контента, чем видео, поэтому интеграция больше не называется Video Discovery.

Преимущества Engage

Ответ. Engage позволяет зрителям легко продолжить просмотр вашего контента с того места, где они остановились, независимо от того, какое устройство они используют. Вот как это работает:

  • Удобство использования на устройствах Google. Начните просмотр на Google TV и продолжите его на телефоне Android, iPhone или планшете Android. Это работает даже на устройствах, где приложение ещё не установлено.
  • Повышение вовлеченности и удержания. Engage помогает возвращать пользователей в приложение, даже на новых устройствах. Если пользователи смогут продолжить просмотр любимых шоу, они с большей вероятностью будут смотреть их дальше.
  • Широкий охват. Engage работает не только в Google TV, но и в других медиасервисах Android, например в подборках Google Play и других мультимедийных приложениях Google.
  • Обратная совместимость. Если вы уже используете старую функцию Смотреть дальше, не беспокойтесь. Engage поддерживает обратную совместимость, поэтому существующая интеграция продолжит работать.

Важное примечание. Все новые интеграции с функцией "Продолжить просмотр" должны использовать Engage. Старая система "Смотреть дальше на другом устройстве" постепенно выводится из эксплуатации.

Какие платформы поддерживают Engage?

  1. Google TV
  2. Android TV (только на устройстве, но поддерживает Engage SDK)
  3. Мобильное приложение Google TV для Android
  4. Мобильное приложение Google TV для iOS
  5. Подборки Google Play
  6. Google Entertainment Space
  7. iOS-устройства (с интеграцией REST API).

Предназначен ли Engage SDK для продолжения просмотра?

Да, Engage SDK поддерживает контент для строки "Продолжить просмотр". Это необходимо для интеграции с Engage.

Доступен ли Engage для всех?

Engage запускается поэтапно.

  • Ранний доступ. Сначала мы предоставим доступ к функции избранным партнерам в рамках программы раннего доступа.
  • Расширение доступа. Мы работаем над тем, чтобы в ближайшее время сделать Engage доступным для всех разработчиков.

Чтобы запуск прошел успешно, мы предусмотрели меры предосторожности. Для этого используется белый список на стороне Engage и отдельная проверка в Engage SDK. Если вы уже участвуете в программе раннего доступа или хотите присоединиться к ней, свяжитесь с нами, чтобы мы могли настроить разрешения на доступ до того, как вы начнете интеграцию Engage SDK.

Требования к изображениям обновлены в разделе Создание объектов.

Будут ли данные для раздела "Продолжить просмотр" извлекаться сервером Google из клиента и отражаться на всех устройствах?

Новый API предлагает значительные улучшения для контента в строке "Продолжить просмотр", в том числе:

  • Удобство использования на разных устройствах Google TV. Пользователи могут начать просмотр на одном устройстве Google TV и продолжить на другом, если на обоих выполнен вход в один и тот же аккаунт. Эта функция также работает на более ранних версиях Android TV.

  • Интеграция с мобильным приложением. Контент из Engage показывается в мобильном приложении Google TV для Android и iOS, что позволяет пользователям легко переключаться между телевизором и мобильными устройствами.

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

  • Расширение на другие платформы. Engage распространяется на другие медиаплатформы Google, такие как Android, подборки Google Play, планшеты и другие медиаприложения и интерфейсы Google на Android, что позволяет максимально повысить вовлеченность пользователей на разных устройствах.

Сколько объектов можно опубликовать в кластере продолжения?

Каждый партнер-разработчик может добавить в кластер продолжения не более пяти объектов. Это ограничение необходимо для справедливого распределения контента в строке "Продолжить просмотр" в Google TV, которая является общим пространством для нескольких поставщиков медиаконтента.

Что произойдет, если я попытаюсь опубликовать более пяти объектов?

Если вы превысите лимит, Engage SDK отклонит запрос на публикацию. Чтобы публикация прошла успешно, уменьшите количество объектов в запросе. Включайте только те объекты, просмотр которых пользователи не завершили. В большинстве случаев таких объектов будет немного. Если таких объектов больше пяти, вы можете выбрать для публикации самые новые.

Почему существует ограничение на количество объектов?

В строке "Продолжить просмотр" на Google TV показывается контент от разных поставщиков. Ограничение количества объектов от одного поставщика, чтобы пользователи видели разнообразный контент из всех своих любимых источников. Это обеспечивает справедливый и сбалансированный пользовательский опыт.

Вопросы о приложении для проверки

Обязательно ли тестировать приложение с помощью приложения для проверки перед отправкой?

Да, перед отправкой APK-файла необходимо протестировать приложение с помощью приложения для проверки.

Даже если вы уверены в своей реализации, интеграция с Engage включает множество сложных компонентов. Приложение для проверки – это страховка, которая позволяет выявлять потенциальные проблемы на ранних этапах и экономить время и силы.

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

Выявив и устранив проблемы заранее, вы сможете избежать отклонения и повторной отправки.

Чтобы отправить APK-файл, вам нужно будет приложить скриншот, подтверждающий, что ваше приложение прошло проверку.

Какие распространенные ошибки могут возникнуть при интеграции?

Приложение для проверки предназначено для выявления потенциальных проблем с интеграцией Google Play Игр. Вот некоторые распространенные ошибки, с которыми часто сталкиваются разработчики:

Для всех типов контента (фильмов, серий телешоу, трансляций, видеоклипов):

  • Отсутствуют ссылки. Убедитесь, что вы указали действительные URI (ссылки) для своего контента на разных платформах. Эти ссылки указывают системе, где найти ваш контент на каждой платформе.
  • Отсутствие названий. Не забывайте добавлять названия ко всему контенту. Это помогает пользователям понять, что они смотрели.
  • Соотношение сторон изображений. Убедитесь, что у всех изображений, связанных с вашим контентом, соотношение сторон близко к 16:9. Это гарантирует, что ваши изображения будут правильно отображаться на разных экранах.

Для серий:

  • Укажите полную информацию о выпуске: название шоу, номер выпуска и номер сезона. Это помогает упорядочить выпуски и упрощает навигацию по сериалу.
  • Точная позиция воспроизведения. Убедитесь, что последняя позиция воспроизведения меньше или равна общей продолжительности выпуска. Это гарантирует, что пользователи продолжат с нужного места.

Для фильмов:

  • Точная позиция воспроизведения. Как и в случае с сериями телешоу, проверьте, правильно ли указана последняя позиция воспроизведения.

Для прямых трансляций:

  • Информация о вещателе. Укажите название вещателя для прямых трансляций.

Для видеоклипов:

  • Информация об авторе. Укажите автора видеоклипа.

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

Вопросы об аккаунте и профиле

В моем приложении используется анонимный вход. Нужен ли AccountProfile для Engage?

AccountProfile предназначен для приложений, в которых используются отдельные аккаунты пользователей. Однако мы понимаем, что в некоторых приложениях, например в вашем, может использоваться анонимный вход. Вот как работает Engage в этом сценарии:

  • AccountProfile технически необходим, но вы можете интегрировать Engage, даже если в вашем приложении нет системы аккаунтов пользователей.
  • Ограничение на использование на устройстве. Возможности Engage по работе с несколькими устройствами зависят от идентификации пользователей на разных устройствах. Поскольку анонимный вход не предоставляет такой возможности, функция будет ограничена текущим устройством пользователя.
  • Чтобы настроить эту функцию, отключите синхронизацию между устройствами. Это гарантирует, что записи о продолжении просмотра будут появляться только на том устройстве, на котором был запущен контент.

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

Можно ли использовать AccountProfile только с accountId и без profileId, даже если мое приложение поддерживает и accountId, и profileId?

Для корректной работы AccountProfile требуются accountId и profileId. И вот почему.

  • Единообразная идентификация. accountId идентифицирует пользователя, а profileId различает профили в аккаунте этого пользователя (если применимо). Это необходимо, чтобы в Google Play Объектах точно отслеживался и показывался контент для каждого профиля.
  • Предотвращение ошибок. Несогласованное использование accountId и profileId в разных вызовах API может привести к непредвиденному поведению и ошибкам. Например, если вы добавите в Engage оба идентификатора, а при удалении контента укажете только accountId, система может неверно определить и удалить нужные объекты.

Обязательно ли использовать profileId для Engage?

  • Необходимо заполнить поле "accountId". Это позволяет идентифицировать пользователя на разных устройствах.
  • profileId – это важный показатель удобства сайта для пользователей. Хотя технически свойство profileId необязательно, мы настоятельно рекомендуем использовать его, если ваш сервис поддерживает несколько профилей (как многие стриминговые сервисы). Почему это так важно? Если не выбрать profileId, в строке "Продолжить просмотр" может показываться контент из других профилей того же аккаунта. Это может запутать и расстроить пользователей.
  • Если коротко, то параметр profileId позволяет точно отражать историю просмотра каждого пользователя в строке "Продолжить просмотр". Если в вашем приложении есть профили, вы должны предоставить ссылку на страницу, где можно удалить профиль.

Как Google использует profileId?

Если в сервисе можно смотреть контент из разных профилей, accountId и profileId будут использоваться, чтобы связать просмотренный на устройстве контент с аккаунтом Google, в который выполнен вход на этом устройстве. Google запишет данные ContinueWatching для сочетания accountId и profileId. На всех устройствах Google, на которых выполнен вход в этот аккаунт, в строке "Продолжить просмотр" будут показываться обновленные данные из связанных объектов accountId и profileId.

Нужно ли связывать аккаунты, чтобы внедрить Engage?

Связывать аккаунты не нужно. Его приоритет снижается, и все связанные с ним сценарии использования будут охвачены новым Device Entitlements API.

Вопросы о синхронизации между устройствами

Если пользователь разрешит синхронизацию между устройствами, информация о просматриваемом контенте будет сохраняться на серверах Google TV. Это позволит продолжить просмотр с того же места на любом устройстве, где выполнен вход в аккаунт. Без согласия история просмотра будет храниться только на текущем устройстве.

Можно ли отключить синхронизацию между устройствами?

Флаг setUserConsentToSyncAcrossDevices определяет, синхронизируются ли данные ContinuationCluster пользователя на его устройствах (телевизоре, телефоне, планшете и т. д.). Если для этого параметра задано значение false, то контент, который вы не досмотрели, будет показываться только на том устройстве, на котором вы его смотрели.

Чтобы максимально эффективно использовать функцию синхронизации между устройствами, мы настоятельно рекомендуем получить согласие пользователя и установить для SyncAcrossDevices значение true.

устройства? Какие данные передаются на сторонние серверы с устройств, не работающих на Android?

Согласие собирается на уровне пользователя (профиля или аккаунта). После получения согласия полезные нагрузки для продолжения просмотра, основанные на взаимодействии, могут отправляться куда угодно, чтобы Google мог отражать состояние возобновления повсеместного присутствия пользователей во всех объектах, с которыми они частично или в следующий раз взаимодействуют, на любом устройстве (без необходимости повторно запрашивать согласие на каждом устройстве или платформе). Партнеры будут отправлять пользователям актуальный статус продолжения просмотра (в соответствии со спецификацией), связанный с идентификатором профиля (который был сохранен на Android).

Вопросы о REST API

Есть ли документация по REST API?

REST API планируется выпустить в марте 2025 года. Это указано в документации для разработчиков Google Play Points.

Вопросы о старой версии раздела "Рекомендованные видео"

Заменит ли Engage API Watch Next?

Engage будет обратно совместим со всеми устройствами Android TV, которые поддерживают Watch Next API. Чтобы интегрировать приложение с Google TV и другими платформами, поддерживающими Engage, разработчикам следует использовать Engage SDK.

Вопросы о тестировании и интеграции

В чем разница между LastPlayBackPositionTimeMillis и продолжительностью?

В LastPlayBackPositionTimeMillis указывается продолжительность воспроизведения в миллисекундах, на которой пользователь остановил просмотр (например, 605 000 мс для 10 минут и 5 секунд). Оно не должно превышать общую продолжительность объекта.

а LastEngagementTime – временная метка последнего взаимодействия пользователя с контентом.

Какие тестовые сценарии нужно выполнить?

Ниже приведены варианты тестирования для Google TV, которые выполняет наша команда контроля качества. Аналогичные тесты можно провести и на других платформах.

  1. Посмотрите видео продолжительностью более 20 минут в течение примерно 5 минут. Выйдите из приложения. Карточка видео должна появиться в строке "Продолжить просмотр". Примечание. В CW показывается только 5 карточек для каждого стороннего приложения.
  2. При выборе новой карточки в строке "Продолжить просмотр" воспроизведение видео должно возобновляться с нужного момента. Примечание. Воспроизведение любого нового или старого контента должно возобновляться с того момента, на котором оно было остановлено.
  3. При смене аккаунта на устройстве Google TV карточки в строке "Продолжить просмотр" должны меняться. Должны показываться только видео из текущего аккаунта. Отсортировано по дате. Профиль стороннего приложения CW будет смешанным. Примечание. В разделе "Продолжить просмотр" для аккаунта GoogleAccount2 будет показан сторонний контент, который пользователь смотрел в этом аккаунте.
  4. Выйдите из приложения, нажав кнопку "Назад". > Убедитесь, что карточка отображается в строке "Продолжить просмотр".
  5. Скройте видео в строке "Продолжить просмотр". Оно не должно показываться снова. Проверьте, остается ли скрытый контент скрытым по истечении 24 часов и даже после открытия приложения по истечении 24 часов. Убедитесь, что при скрытии одного объекта не скрываются другие.
  6. Доступность контента в строке "Продолжить просмотр" с полными метаданными: изображение карточки, название приложения, название, номер сезона и серии для телеконтента.
  7. На индикаторе выполнения появится надпись "Проверить".
  8. Пользователь досмотрел контент до финальных титров. Контент не показывается в строке "Продолжить просмотр".
  9. Убедитесь, что в строке "Продолжить просмотр" нет непросмотренных видео.
  10. Убедитесь, что элементы в разделе "Продолжить просмотр" расположены в хронологическом порядке в зависимости от того, когда пользователь смотрел контент, а не когда он в последний раз открывал приложение или когда был последний день.
  11. Убедитесь, что информация о серии и сезоне на карточке "Продолжить просмотр" соответствует тому, что вы смотрели.
  12. Убедитесь, что завершенные видео (с титрами или без) не показываются в строке "Продолжить просмотр".
  13. Выключите устройство на середине серии, фильма или шоу. Выключите устройство на середине серии, фильма или шоу. Убедитесь, что при включении устройства и на другом телевизоре на карточке CW отображается правильная информация , а сама карточка находится в нужном месте и на ней есть индикатор выполнения.
  14. Выключите устройство после просмотра первой серии и проверьте,
  15. Серия 1 исчезает и не появляется в строке "Продолжить просмотр" (на втором устройстве и при включении тестового устройства).
    1. Серия 2 (если доступна) должна появиться в строке "Продолжить просмотр" на втором устройстве и на тестовом устройстве после его включения.
  16. Первый сценарий. Телевизор 1: аккаунт Google: мама, аккаунт / профиль стороннего сервиса: аккаунт 1/профиль 1. Посмотрите контент и убедитесь, что в данных CW отображается контент, просмотренный пользователем account_1/profile_1.
  17. TV2: GoogleAccount: mom. Проверьте данные CW из первого сценария. Теперь войдите в стороннее приложение, используя другой аккаунт. Сторонний аккаунт или профиль: account_2 или profile_2. Посмотрите контент и убедитесь, что в данных CW отображается контент, просмотренный сторонним аккаунтом account_2/profile_2.

  18. GoogleAccount: mom. Новое устройство /стороннее приложение не установлено. На новом устройстве(после сброса настроек) проверьте, показывает ли CW данные из последнего стороннего приложения, которое использовалось в аккаунте Google. Примечание. В строке CW не должен показываться сторонний контент, если аккаунт GAIA ещё не связан со сторонним профилем на другом устройстве.

    1. GoogleAccount: mom. Новое устройство или стороннее приложение установлено, но вход не выполнен. На новом устройстве(после сброса настроек) убедитесь, что в виджете "Что посмотреть" показываются данные из последнего стороннего приложения, которое использовалось в аккаунте Google.
    1. Примечание. В строке "Продолжить просмотр" не должен показываться сторонний контент, если аккаунт Google ещё не связан со сторонним профилем.

В приложении Google TV для iOS не показывается контент для продолжения просмотра. Что случилось?

Чтобы контент появлялся в строке "Продолжить просмотр" на устройствах iOS, вам нужно будет отправлять ссылки на контент для iOS.

Как часто нужно обновлять информацию о контенте для строки "Продолжить просмотр"? Нужно ли обновлять его часто, например каждые 15 секунд?

Нет, частые обновления не рекомендуются. И вот почему.

  • Влияние на производительность. Постоянная отправка обновлений создает ненужную нагрузку на наши серверы, что может замедлить работу системы для всех пользователей.
  • Ненужные данные. Когда пользователь смотрит видео, позиция воспроизведения постоянно меняется. Если отправлять обновления каждые несколько секунд, будет создаваться много избыточных данных, которые не помогут возобновить воспроизведение.

Когда обновлять информацию о контенте в строке "Продолжить просмотр":

Сосредоточьтесь на фиксации значимых изменений в прогрессе просмотра пользователя. Вот основные сценарии:

  • Воспроизведение приостановлено или остановлено. Когда пользователь приостанавливает или останавливает просмотр, отправьте обновление, чтобы сохранить текущую позицию.
  • Приложение закрыто или работает в фоновом режиме. Если пользователь выходит из приложения или переключается на другое во время просмотра видео, отправьте обновление, чтобы сохранить прогресс.
  • Когда пользователь удаляет контент из раздела "Продолжить просмотр" в приложении.

Как эффективно обновить:

Вместо этого используйте события в видеопроигрывателе или жизненном цикле приложения. Пример:

  • onPause, onStop – когда воспроизведение видео приостанавливается или прекращается.
  • onAppClose, onAppBackgrounded – когда приложение закрывается или переходит в фоновый режим.

Следуя этим рекомендациям, вы обеспечите эффективное использование ресурсов и удобство для пользователей.