Если у вас есть вопрос, на который нет ответа на этой странице, свяжитесь с нами, используя контактную информацию на странице контактов службы поддержки .
На этой странице могут появляться обновления с ответами на часто задаваемые вопросы по мере их поступления.
Общий
В этот раздел включены все вопросы, которые не относятся к определенной категории.
Можно ли протестировать игру в среде YouTube?
Да, используйте портал для разработчиков и следуйте инструкциям по тестированию .
Моя игра не отображается в тестовом наборе Android или SDK. Что мне делать?
Когда игры не отображаются исключительно в тестовом наборе Android или SDK, это часто происходит из-за способа загрузки игр в WebView. В целях повышения производительности игра изначально загружается в WebView, который не отображается пользователю, в результате чего размер области просмотра WebView равен нулю. Для решения этой проблемы рекомендуется следующее решение:
(1) Убедитесь, что ваш игровой код выполняется независимо от размера области просмотра.
(2) Убедитесь, что ваш игровой код обрабатывает изменение размера области просмотра и что игровой код не ожидает или не выдает ошибку, когда размер области просмотра равен нулю.
Мы рекомендуем отслеживать событие resize окна и устанавливать высоту игры только тогда, когда window.innerHeight не равно нулю.
Технические требования
В этом разделе рассматриваются вопросы, касающиеся технических требований YouTube Playables.
Могу ли я получить освобождение от ограничения на размер отдельного файла?
Нет. Размер отдельного файла является жёстким ограничением.
Как измеряется начальный размер пучка?
Начальный размер пакета измеряется как общее количество байтов, загруженных Playable до вызова события gameReady .
Playables use HTTP compression when possible, meaning that the initial bundle size may be smaller than the total raw size of the assets. When testing the initial bundle size in the SDK Test Suite , if your local host is not compressing assets, it may result in a larger size than what will happen once your Playable is published. To see the actual initial bundle size served for a Playable, use the SDK Test Suite pointed at the index.html file from an uploaded build or modify your local server settings to enable gzip compression.
Я достиг или превысил лимит размера отдельного файла или всего пакета. Что мне делать?
Чтобы оптимизировать игру и повысить производительность, ознакомьтесь со следующими статьями:
- Сжатие изображений
- Аудиты эффективности
- Быстрая загрузка
Оптимизация кодирования и размера передаваемых данных текстовых ресурсов.
Что делать, если размер моего пакета не поместится в общий лимит?
Пользователям, возможно, придётся каждый раз загружать ресурсы вашей игры. Чтобы избежать длительного времени загрузки и большого объёма данных, рекомендуется максимально уменьшить общий размер игрового пакета.
We encourage games to utilize lazy loading or other types of incremental asset loading during each play session as users progress, or break up assets per level to allow assets to be downloaded in small amounts spread out over the course of a long session. In situations like these, having a larger total bundle size may not degrade the user experience, and may in fact create a better user experience by enabling more content in your game with a lower per user footprint. If you feel your game works in this way and justifies having a larger total bundle size, reach out using our support contact page to discuss your use case.
Можно ли исключить мою внутреннюю аналитику из требований к внешним звонкам?
No. Playables must not make any external calls at this time. Let your partner manager know about the kind of analytics that you are interested in so that future features in this space can be prioritized.
Игра получает данные и уровни из удалённой базы данных, допустимо ли это?
В настоящее время нет, однако мы проводим пилотное тестирование удаленного доступа к данным для отдельных игр. Сегодня все игровые данные должны быть включены в состав игрового пакета. Если вы хотите обновить или освежить свои игровые ресурсы или контент, свяжитесь с нами, используя контактную информацию на странице контактов службы поддержки , чтобы отправить запрос на обновление игрового пакета, или обратитесь к нам, чтобы получить дополнительную информацию, если вы хотите принять участие в нашей пилотной программе.
Я вижу ошибку, связанную с нарушением «Политики безопасности контента» при выполнении встроенных скриптов.
Это происходит, когда вы используете JavaScript для создания и добавления тега <script> на вашу страницу. В целях безопасности YouTube использует политику безопасности контента (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 Playables могут получать фокус автоматически, поэтому игра должна обрабатывать этот случай.
For an audio setup example, check out the samples .
Единство
В этом разделе рассматриваются любые вопросы, касающиеся интеграции существующих игр Unity с SDK YouTube Playables. Примеры использования SDK и Unity Wrapper см. в документации YouTube Playables Unity Wrapper .
Можно ли использовать предварительное сжатие в Unity?
Мы не рекомендуем предварительно сжимать ваши ресурсы. Размер первоначального пакета определяется размером после сжатия, и к загруженным файлам будет применено сжатие после их обработки. Если вам все же необходимо предварительно сжать файлы, ознакомьтесь с остальной частью этого раздела или свяжитесь со службой поддержки через страницу контактов, чтобы обсудить оптимальный вариант для вашей игры.
Для некоторых игр потребуется предварительное сжатие файлов .wasm или .data от Unity. Используйте предварительное сжатие только в следующих случаях, так как это может значительно замедлить время загрузки:
- Если вам необходимо использовать предварительное сжатие Unity для соответствия требованиям к размеру отдельных файлов или общему размеру пакета , см. раздел «Я достиг или превысил лимит размера отдельного файла или общего размера пакета, что мне делать?» .
- Если для прохождения сертификации вашей игры необходимо использовать предварительное сжатие Unity, должны быть выполнены следующие требования:
- Обязательно используйте предварительное сжатие в формате ZIP.
- Вам ОБЯЗАТЕЛЬНО нужно распаковать файлы вручную в скрипте загрузчика. Мы рекомендуем использовать API Compression Streams.
Эти дополнительные требования обусловлены ограничениями архитектуры сервера. В настоящее время поддержка дополнительных HTTP-заголовков или сжатия Brotli недоступна.
Как управлять обновлениями кадров, когда игра работает в фоновом режиме?
С помощью setTimeout можно управлять обновлениями кадров, когда игра работает в фоновом режиме. Это помогает контролировать такие действия, как приостановка звука. Проверить управление кадрами в фоновом режиме можно, включив параметр «Запуск в фоновом режиме» в настройках плеера.
Ограничения памяти для игр Unity
Некоторые игры в Unity используют значительный объем памяти, что может привести к превышению ограничений на использование памяти для игровых объектов. Рекомендуется следовать документации для разработчиков по работе с памятью в Unity WebGL .