В этом документе даны ответы на часто задаваемые вопросы о SDK и публикации игр Google Play на ПК.
Монетизация
Можно ли использовать процесс покупки без бэкэнд-сервера?
С точки зрения безопасности, обработка данных без бэкэнд-сервера не рекомендуется.
Для получения дополнительной информации см. раздел «Обработка без серверной части» .
Разрешены ли существующие платежные системы на основе API после интеграции SDK Google Play Games для ПК?
Все платежи должны обрабатываться Google Play Games на ПК SDK с использованием Google Play Billing. Вы не можете использовать существующий способ оплаты через API в той же игре.
Как можно использовать покупки в режиме разработчика?
Используйте приобретенное приложение в режиме разработчика в течение 3 минут, в противном случае покупка будет возвращена.
Поддерживаются ли регулярные платежи или подписки?
В ближайшем будущем это не планируется, хотя вы можете предложить конкретные варианты использования, которые мы могли бы включить в наш план дальнейших действий.
В чём причина ошибки в выставлении счёта по моим звонкам, связанным с покупкой?
BillingError — это ответ о результате платежа. LaunchPurchaseFlow вернет результат немедленно, без блокировки, но вам необходимо отслеживать обратный вызов, чтобы узнать, когда он завершится, и получить результат.
Как использовать проверку покупок на стороне клиента?
Мы рекомендуем использовать серверную обработку покупок и процесс проверки. Для обработки покупок из вашего клиентского приложения необходимо, чтобы ваша игра была включена в список разрешенных сайтов. Если вашей игре требуется доступ, пожалуйста, свяжитесь со своим партнером Google. Для получения дополнительной информации см. раздел «Обработка без серверной части» .
Каковы ограничения API для запроса подробной информации о товаре?
Максимальное количество товаров, которое можно запросить за один вызов API
QueryProductDetails, составляет 50. Если вы превысите этот лимит, вам необходимо разбить запрос на несколько вызовов.Какие параметры необходимы при вызове функции «Запрос на закупку» или «Запуск процесса закупки» в клиенте для выставления счетов?
Функция принимает
QueryPurchasesContinuation, которая представляет собой функцию обратного вызова с сигнатуройstd::function<void(QueryPurchasesResult)>. Функция обратного вызова передает вам результат со всеми даннымиProductPurchaseDetails. Эта информация доступна в заголовочных файлах SDK в файлеincludes/billing/models.h.The resulting
launch_purchase_flow_resulthasok()andcode()functions. Theok()function returns whether the flow is successful. Thecode()function returns theBillingErrorenum (includes/billing/enums.h), which has 10 possible error cases, such as user canceled or network error.Поддерживается ли пользовательский порядок оформления заказа в процессе запуска покупки в клиенте для выставления счетов?
В текущей версии SDK нет возможности передавать собственные данные. Однако вы можете указать любую комбинацию
obfuscated_account_idиobfuscated_profile_id. Вы можете не указывать ни одного параметра, указать только один или оба.Поле
offer_tokenявляется обязательным и указывает на предложение покупки, которое пользователь пытается совершить на этапе оформления заказа. На данный момент для каждого товара в Google Play существует ровно одно предложение (например, купить один товар за 10 долларов). В будущем команда разработчиков Play Billing обеспечит поддержку нескольких предложений.Чтобы обеспечить связь метаданных в случае прерывания процесса покупки, сохраните метаданные на своем бэкэнд-сервере до запуска диалога покупки и свяжите их с идентификатором учетной записи пользователя, приобретаемым артикулом и текущей меткой времени. Дополнительную информацию см. в разделе «Связывание покупки с внутренними данными» .
Предполагается ли появление ошибки тайм-аута, если пользователь закрывает браузер, не совершив оплату во время процесса покупки?
Да, это известная проблема и запланированное поведение в браузерном режиме. Мы активно работаем над функцией бесшовной покупки (на основе WebView), которая позволит сохранить процесс оплаты внутри игры и устранит неудобство, связанное с таймаутом.
Какие предварительные условия необходимы для перехода с системы оплаты Google с использованием OAuth на собственную систему оплаты Google с использованием DLL?
Игры могут продолжать использовать вход через OAuth с помощью Google для управления авторизованным аккаунтом, но Google рекомендует отказаться от использования устаревших REST API для выставления счетов. Переход от REST API для выставления счетов (с входом через OAuth2) к потоку SDK может быть операцией, требующей добавления новых функций, поэтому оба варианта могут сосуществовать некоторое время, пока игра переходит на новый протокол.
Обрабатывается ли вызов API для запуска процесса покупки через веб-браузер?
Да, пока обработка происходит через браузер. Google планирует завершить весь процесс, не оставляя возможности запуска игры через SDK.
Нужно ли пользователю входить в систему отдельно для каждой игры, чтобы совершить покупку?
В Google Play Games для каждой игровой сессии используется учетная запись, активная в данный момент, поэтому повторный вход в систему не требуется. Учетная запись, которую вы используете в Google Play Games при запуске игровой сессии, — это та учетная запись, от имени которой выполняются вызовы API. При запуске процесса покупки в браузере необходимо войти в систему и использовать ту же учетную запись, что и в игровой сессии. Если пользователь вошел в систему с другой учетной записью, веб-процесс предложит ему переключиться на другую учетную запись.
Может ли игра одновременно поддерживать как нативный SDK, так и устаревшие платежные системы?
Платежная система работает по двухпотоковой модели в зависимости от версии игрового бинарного файла. Пользователи устаревших версий продолжают использовать существующий поток платежей, а пользователи новых версий переходят на оплату через SDK. В течение переходного периода пользователи обеих платежных систем сосуществуют.
Пакет приложений Windows
При отправке заявки на обновление через стороннюю программу запуска, требуется ли для проверки игровой пакет?
Вы можете отправить только установщик, нет необходимости отправлять весь игровой пакет целиком, рецензент сможет загрузить ваш игровой пакет, используя установщик.
Существуют ли какие-либо ограничения по размеру WAB-файлов?
Для WAB-файла можно загрузить файлы размером до 10 ГБ.
Почему моя игра не устанавливается и не отображается после загрузки файла WAB?
Если ваша игра добавляется в систему без предварительно созданной версии для ПК («первый WAB»), система может автоматически перевести её в состояние ожидания управляемой публикации. Это происходит потому, что нет существующей базовой версии для обновления. Чтобы полностью разблокировать WAB и сделать игру доступной для установки, необходимо перейти в консоль Google Play и вручную выполнить необходимое действие публикации (например, нажать «Опубликовать изменения»).
Как мне загрузить WAB для внутреннего тестирования?
Передайте список разрешенных учетных записей в Google, чтобы компания могла включить их для внутреннего тестирования. После получения списка Google гарантирует, что эти учетные записи будут включены в процесс регистрации.
Куда следует загрузить WAB-пакет?
Вы можете загрузить пакет WAB по адресу, указанному в первом вопросе. Однако вы не можете опубликовать его вручную. Вам необходимо предоставить сотрудникам бэкэнда Google точное время UTC (с точностью до часа). Затем Google настроит график выпуска и обеспечит своевременную публикацию.
ПК SDK
В чём разница между устаревшим API и SDK Google Play Games для ПК?
- Наш устаревший API предоставляет только функциональность для выставления счетов.
- Комплект разработчика для ПК (PC SDK) поддерживает службу Google Desktop Service (GDS) и все функции ПК.
- Для использования PC SDK не требуется вход через Google через браузер.
Существует ли альтернативный способ инициализации SDK путем запуска игры напрямую через игровой лаунчер, минуя Google Play Games на ПК?
Запуск игры должен осуществляться через клиент Google Play Games для ПК. Для получения более подробной информации обратитесь к этому документу для разработчиков .
Поддерживает ли встроенный SDK для ПК многобайтовые символы в файле сертификации PEM?
Да, SDK поддерживает многобайтовые символы для сертификации.
Как SDK обрабатывает вход в систему с использованием учетной записи Google для нескольких экземпляров или учетных записей?
Каждый запуск игры в Google Play Games рассматривается как «игровая сессия», и к каждой «игровой сессии» может быть привязана учетная запись. Они могут быть разными. Таким образом, если вы запустите игру с учетной записью A, а затем переключитесь на учетную запись B и перезапустите игру, обе сессии могут работать одновременно.
Работает ли интеграция Play Install Referrer с PC SDK?
В PC SDK (версии 25.5.409.0 и выше) поддерживается API Play Install Referrer. Для получения дополнительной информации см. API Play Install Referrer .
Пусковая программа
Если игрок использует сторонний лаунчер вместо клиента Google Play, будет ли его учетная запись Play Games Services синхронизироваться автоматически?
Для корректной работы функций SDK игра должна запускаться непосредственно через клиент Google Play Games. Если игра запускается другим процессом, например, установщиком или лаунчером, то этот процесс также должен запускаться через клиент Google Play Games. Игра должна передавать все параметры, полученные от клиента, клиентскому процессу.
Как мне поступить с инициализацией, если Google Play Games запускает сторонний игровой лаунчер?
Интеграция SDK непосредственно в лаунчер не обязательна. Однако все аргументы командной строки, полученные лаунчером от клиента Google Play Games, необходимо передавать непосредственно в запущенный дочерний процесс (исполняемый файл игры). Если инициализация не удалась (например, из-за возврата значения
kActionRequiredShutdownClientProcess), все процессы, включая лаунчер, должны быть завершены, чтобы Google Play Games мог попытаться восстановиться и автоматически перезапустить игру. Подробнее см. шаг 5 в руководстве по настройке .Как мне организовать обновления и техническое обслуживание игры и лаунчера после их запуска в производство?
Последующие обновления и техническое обслуживание необходимо выполнять через вашу программу запуска. Клиент Google Play Games не поддерживает функции обновления, поэтому программа запуска должна уметь обновлять как игру, так и саму программу.
Инициализация
Когда я запускаю игру через приложение Google Play Games, синхронизируются ли данные моей учетной записи Google?
После запуска игры через клиент Google Play Games учетная запись автоматически синхронизируется, и повторный вход через Google Login не требуется.
Можно ли повторно использовать параметры инициализации несколько раз?
Это возможно, если клиент Google Play Games запущен и данные для входа действительны. Однако в сценариях, подобных описанному в руководстве, все процессы, запущенные игрой, должны быть завершены, когда пользователь закрывает игру или игра завершается из-за ошибки инициализации SDK, например,
kActionRequiredShutdownClientProcess.Можно ли создать ярлык для прямого запуска игры?
You can use the following URI for opening the game directly:
googleplaygames://launch/?pid=2&id=com.company.gamenameURI позволяет определить, открыт ли клиент Google Play Games на ПК. Если клиент не открыт, клиент Google Play Games запускается до запуска игры или лаунчера. Вам необходимо управлять игрой или лаунчером, чтобы предотвратить запуск нескольких экземпляров.
Есть ли способ проверить установку игр из Google Play на ПК без использования SDK?
Проверить статус установки Google Play Games на ПК без интеграции SDK можно, проверив наличие следующего ключа в реестре Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Play Games ServicesНаличие этого ключа указывает на то, что на компьютере установлены службы Google Play Games (необходимые для запуска игр на ПК). Если ключ отсутствует, следует направить пользователя на страницу установки Google Play Games на ПК для загрузки и установки клиента.
Тестирование
Существуют ли открытые или закрытые среды тестирования, аналогичные тем, что используются в мобильных приложениях?
Хотя специализированная сквозная песочница пока недоступна, мы понимаем необходимость в среде тестирования, максимально приближенной к производственной, для разработчиков. Более надежное решение будет предложено в ближайшее время.
Как добавить новых тестировщиков?
Ваш контактный представитель Google создаст группу электронной почты для каждого проекта PC, куда необходимо добавить учетные записи Google тестировщиков. Только члены этой группы электронной почты имеют право загружать тестовые пакеты в Google Play Games.
Разнообразный
Можно ли использовать VPN?
Разработчикам, которым необходимо тестировать свою игру в регионах , где Google Play Games на ПК не поддерживается, мы рекомендуем использовать VPN для получения IP-адреса из поддерживаемого региона .
Убедитесь, что режим TUN включен для VPN. Инструкции по включению режима TUN и настройке брандмауэра можно найти в руководстве пользователя VPN-провайдера.
После включения режима TUN установите на ПК игры Google Play и эмулятор для тестирования.
Как начать разработку игр для Google Play Games на ПК в редакторе Unity или UE?
- Включите режим разработчика и приступайте к тестированию.
- Добавьте файлы
manifest.xmlи.dll. Для получения дополнительной информации см. документацию для разработчиков . - Зарегистрируйте GUID партнера, предоставляющего ранний доступ, для целей тестирования.
Как правильно использовать ключи реестра?
Вам следует создавать ключи реестра на основе корневого раздела. В зависимости от ваших целей и характера данных, корневой раздел можно установить либо как
HKEY_LOCAL_MACHINE, либо какHKEY_CURRENT_USERВ качестве примера в рекомендациях используется разделHKEY_LOCAL_MACHINE.Каковы требования к проверке пакетов программного обеспечения для ПК со стороны Google?
Компьютерные версии игр проходят сканирование на наличие вредоносных программ, после чего эксперты проверяют только процессы установки, успешного запуска и удаления игры.
Необходимо ли интегрировать все API?
Другие API не обязательны, но предоставляют дополнительные преимущества.
google::play::billingнеобходим для внутриигровых покупок и продажи цифрового контента.google::play::install_referrerнеобходим для отслеживания данных о рефералах, чтобы помочь вам понять, какие источники трафика приводят наибольшее количество пользователей к загрузке вашего приложения.google::play::games::integrityнеобходим для защиты вашего приложения от злоумышленников путем обнаружения потенциально опасных устройств и неизвестных эмуляторов.Почему при закрытии клиента Google Play Games завершаются одни игровые процессы, а другие — нет?
Google не контролирует дочерние процессы или процессы запущенной игры. Поведение зависит от того, является ли игра эмулированной игрой для Android или нативной игрой для ПК. Эмулированные игры устанавливаются в собственной среде, поэтому их поведение во многом зависит от инициализации и завершения работы эмулятора.
Следует ли мне использовать функцию удаления игр из Google Play или воспользоваться пользовательским деинсталлятором?
Google рекомендует использовать нашу функцию удаления игр из Google Play.
Дальнейшая помощь
Если вам потребуется дополнительная помощь, не описанная в этом разделе часто задаваемых вопросов, пожалуйста, свяжитесь с нами по адресу google-play-games-pc@google.com.