Если вы не нашли ответ на свой вопрос на этой странице, свяжитесь с нами, используя контактную информацию на странице поддержки.
По мере поступления вопросов мы будем добавлять на эту страницу ответы на них.
Общие
В этом разделе собраны вопросы, которые не относятся к определенной категории.
Можно ли протестировать игру в среде YouTube?
Да. Используйте портал для разработчиков и следуйте инструкциям по тестированию.
Игра не отрисовывается на Android или в наборе тестов SDK. Что делать?
Если игры не отрисовываются только на Android или в наборе тестов SDK, часто это связано с тем, как они загружаются в WebView. Для повышения производительности игра сначала загружается в WebView, который не показывается пользователю, в результате чего размер области просмотра WebView равен нулю. Чтобы решить эту проблему, рекомендуется сделать следующее:
1. Убедитесь, что код игры выполняется независимо от размера области просмотра.
2. Убедитесь, что код игры обрабатывает изменение размера области просмотра и не зависает и не дает сбой, когда размер области просмотра равен нулю.
Рекомендуем отслеживать событие окна resize и задавать высоту игры, только если значение window.innerHeight не равно нулю.
Технические требования
В этом разделе приведены вопросы, связанные с техническими требованиями к YouTube Игротеке.
Можно ли сделать исключение для ограничения на размер отдельного файла?
Нет. Ограничение на размер отдельного файла является строгим.
Как измеряется размер начального пакета?
Размер начального пакета – это общий объем данных в байтах, скачанных игрой до вызова события gameReady.
В игровых объявлениях по возможности используется сжатие HTTP, поэтому размер исходного пакета может быть меньше, чем общий размер объектов. Если при тестировании размера начального пакета в SDK Test Suite локальный хост не сжимает объекты, размер может оказаться больше, чем после публикации игры. Чтобы узнать фактический размер начального пакета, который передается для воспроизводимого объявления, используйте набор тестов SDK, указывающий на файл index.html из загруженной сборки, или измените настройки локального сервера, чтобы включить сжатие gzip.
Что делать, если размер отдельного файла или всего пакета превышает ограничение?
Чтобы оптимизировать игру и повысить ее производительность, ознакомьтесь со следующими статьями:
Что делать, если размер пакета превышает ограничение?
Пользователям может потребоваться скачивать объекты из вашей игры каждый раз, когда они в нее играют. Чтобы игра загружалась быстрее и не расходовала много трафика, ее общий размер должен быть как можно меньше.
Мы рекомендуем использовать в играх отложенную загрузку или другие типы постепенной загрузки объектов по мере прохождения игры или разбить объекты по уровням, чтобы они загружались небольшими частями в течение длительного сеанса. В таких ситуациях большой размер набора не ухудшает, а улучшает взаимодействие с пользователем, поскольку позволяет добавить в игру больше контента, не увеличивая объем данных, скачиваемых каждым пользователем. Если вы считаете, что ваша игра работает именно так и вам нужен набор большего размера, свяжитесь с нами через страницу поддержки.
Можно ли исключить внутреннюю аналитику из требований к внешним вызовам?
Нет. В настоящее время в игровых объявлениях запрещено использовать внешние вызовы. Сообщите менеджеру по работе с партнерами, какие данные вас интересуют, чтобы мы могли учесть это при разработке новых функций.
Игра получает данные и уровни из удаленной базы данных. Это допустимо?
Пока нет, но мы тестируем удаленный доступ к данным для некоторых игр. Сейчас все данные игры должны быть включены в ее пакет. Если вы хотите обновить объекты или контент игры, отправьте нам новый пакет игры, используя контактную информацию на странице поддержки. Вы также можете связаться с нами, чтобы узнать больше о пилотной программе.
Я вижу ошибку о нарушении Content Security Policy при выполнении встроенных скриптов
Это происходит, когда вы используете JavaScript для создания и добавления тега <script> на страницу. В целях безопасности на YouTube используется Content Security Policy (CSP). Согласно этому стандарту, у скриптов должен быть специальный код безопасности, который называется nonce. YouTube автоматически добавляет этот код в скрипты в HTML-файле, но в скрипты, созданные с помощью кода, его нужно добавлять вручную.
При автоматизированном создании тегов script с помощью JavaScript необходимо найти nonce на странице и применить его к новому элементу script.
Пример:
const script = document.createElement('script');
script.src = '...';
// Find the nonce from the main page and apply it
script.nonce = document.querySelector('script[nonce]')?.nonce;
document.head.appendChild(script);
Вы можете протестировать офлайн-конфигурации, следуя инструкциям по работе с набором тестов.
Интеграция SDK
В этом разделе собраны вопросы, связанные с API Playables SDK.
Моя игра не прошла сертификацию из-за проблем с интеграцией аудио. Что нужно исправить?
Самая распространенная проблема со звуком связана с играми, в которых требуется взаимодействие с пользователем перед началом воспроизведения. Однако фокус может быть передан игре YouTube Игротеки автоматически, поэтому игра должна быть к этому готова.
Пример настройки аудио можно найти в образцах.
Unity
В этом разделе приведены ответы на вопросы об интеграции существующих игр Unity с SDK YouTube Игротеки. Примеры использования SDK и оболочки Unity можно найти в документации по оболочке Unity для YouTube Игротеки.
Можно ли использовать предварительное сжатие Unity?
Мы не рекомендуем предварительно сжимать объекты. Требование к размеру исходного набора относится к размеру после сжатия. Файлы будут сжаты после загрузки. Если вам все же нужно предварительно сжать файлы, ознакомьтесь с остальной частью этого раздела или обратитесь в службу поддержки на странице контактов, чтобы обсудить оптимальный вариант для вашей игры.
В некоторых играх потребуется использовать предварительное сжатие для файлов Unity .wasm или .data.
Используйте предварительное сжатие только в следующих случаях, так как оно может значительно замедлить загрузку:
- Если вам нужно использовать предварительное сжатие Unity, чтобы соблюсти требования к размеру отдельных файлов или общему размеру набора, ознакомьтесь с разделом Что делать, если размер отдельного файла или общий размер набора превышает ограничение?.
- Если для прохождения сертификации вам нужно использовать предварительное сжатие Unity, должны быть выполнены следующие требования:
- Вы ДОЛЖНЫ использовать предварительное сжатие ZIP.
- Вы ДОЛЖНЫ распаковать файлы вручную в скрипте загрузчика. Мы рекомендуем использовать Compression Streams API.
Эти дополнительные требования обусловлены ограничениями архитектуры показа. В настоящее время поддержка дополнительных HTTP-заголовков или сжатия Brotli недоступна.
Как управлять обновлением кадров, когда игра работает в фоновом режиме?
Вы можете использовать setTimeout, чтобы управлять обновлением кадров, когда игра работает в фоновом режиме.
Это позволяет управлять поведением, например приостанавливать воспроизведение аудио. Чтобы проверить управление фоновыми кадрами, включите параметр "Выполнять в фоновом режиме" в настройках проигрывателя.
Ограничения по памяти для игр Unity
Некоторые игры в Unity используют значительный объем памяти, что может привести к превышению ограничений на использование памяти для игровых объявлений. Рекомендуется следовать документации для разработчиков по памяти в Unity WebGL.