Внимание: Google Play Instant больше не будет доступен. С декабря 2025 года мгновенные приложения нельзя будет публиковать через Google Play, и все API мгновенного запуска сервисов Google Play перестанут работать. Пользователи больше не смогут получать мгновенные приложения через Play, используя какие-либо механизмы.
Мы вносим это изменение, основываясь на отзывах разработчиков и наших постоянных инвестициях в улучшение экосистемы с момента внедрения Google Play Instant.
Чтобы продолжить оптимизацию для роста числа пользователей, мы призываем разработчиков направлять пользователей в их обычные приложения или игры, используя глубокие ссылки для перенаправления их на определенные маршруты или функции, когда это уместно.
Плагин Google Play Instant для Unity настраивает ваш проект Unity для создания мгновенной версии игры. В этом руководстве описывается, как установить и использовать этот плагин.
Загрузите и импортируйте плагин
Плагин входит в комплект плагинов Google Play для Unity. Чтобы импортировать плагин, выполните следующие действия:
- Загрузите последнюю версию из Google Play Плагины для релизов Unity .
- Импортируйте файл
.unitypackage, выбрав в меню Unity IDE пункт «Активы» > «Импорт пакета» > «Пользовательский пакет» и импортировав все элементы.
Возможности редактора Unity
Импортируйте плагин, чтобы добавить подменю Google > Play Instant в Unity. Это подменю предоставляет следующие возможности.
Настройки сборки
Открывает окно, позволяющее переключаться между режимами разработки Installed и Instant . Переключение в Instant приводит к следующим изменениям:
- Создает символ определения скрипта с именем
PLAY_INSTANT, который можно использовать для написания скриптов с помощью#if PLAY_INSTANTи#endif. - Управляет обновлениями AndroidManifest.xml для некоторых требуемых изменений, таких как android:targetSandboxVersion .
Настройки плеера
Диалоговое окно настроек проигрывателя , показанное на рисунке 1, отображает рекомендации, которые помогут вам оптимизировать поддержку Google Play Instant, разрабатывать приложения с использованием более совместимых графических API и уменьшить размер APK-файла.

Эти настройки проигрывателя делятся на обязательные и рекомендуемые . Если у настройки есть соответствующая кнопка «Обновить» , нажмите её, чтобы изменить значение на желаемое.
Чтобы еще больше уменьшить размер APK, откройте менеджер пакетов Unity и удалите все неиспользуемые пакеты.
Быстрое развертывание
Quick Deploy позволяет уменьшить размер мгновенного приложения на базе Unity, упаковав некоторые ресурсы в AssetBundle . При использовании Quick Deploy игровой движок Unity и загрузочный экран упаковываются в APK-файл мгновенного приложения, который после запуска получает AssetBundle с сервера.
Поддержка рабочих процессов установки
Цель многих мгновенных приложений — дать пользователям возможность опробовать приложение перед установкой полной версии. Плагин Google Play Instant для Unity предоставляет API для отображения диалогового окна установки Play Store и для переноса состояния из мгновенного приложения в установленное.
Показать приглашение к установке
Мгновенное приложение с кнопкой «Установить» может отображать диалоговое окно установки Play Store, вызывая следующее из обработчика нажатия кнопки «Установить»:
Google.Play.Instant.InstallLauncher.ShowInstallPrompt();
Метод ShowInstallPrompt() имеет перегрузку, которая допускает одно или несколько из следующих действий:
- Определение того, отменил ли пользователь процесс установки. Переопределите
onActivityResult()в основном действии мгновенного приложения и проверьте наличиеRESULT_CANCELEDдля указанногоrequestCode. - Передача строки реферера установки через параметр
referrer. - Передача состояния текущего игрового сеанса через
PutPostInstallIntentStringExtra().
Это продемонстрировано в следующем примере:
using Google.Play.Instant;
...
const int requestCode = 123;
var sessionInfo = /* Object serialized as a string representing player's current location, etc. */;
using (var activity = UnityPlayerHelper.GetCurrentActivity())
using (var postInstallIntent = InstallLauncher.CreatePostInstallIntent(activity))
{
InstallLauncher.PutPostInstallIntentStringExtra(postInstallIntent, "sessionInfo", sessionInfo);
InstallLauncher.ShowInstallPrompt(activity, requestCode, postInstallIntent, "test-referrer");
}
Если пользователь завершит установку приложения, Play Store перезапустит его, используя предоставленный postInstallIntent . Установленное приложение может получить значение, заданное в postInstallIntent с помощью следующего:
var sessionInfo = InstallLauncher.GetPostInstallIntentStringExtra("sessionInfo");
Примечания:
- Дополнительные элементы, включённые в
postInstallIntentмогут не достичь установленного приложения, если пользователь установил приложение, но отменил запуск после установки. Передача дополнительных элементов намерения лучше подходит для сохранения активного состояния сеанса, чем для сохранения постоянного состояния; для последнего обратитесь к API Cookie. - Любой может создать намерение с дополнительными полями для запуска установленного приложения, поэтому, если полезная нагрузка предоставляет что-то ценное, разработайте полезную нагрузку так, чтобы ее можно было использовать только один раз, криптографически подпишите ее и проверьте подпись на сервере.
Используйте API cookie
API Cookie предоставляет методы для передачи cookie-файлов (например, идентификатора игрока или данных о прохождении уровня) из мгновенного приложения в соответствующее установленное приложение. В отличие от дополнительных функций postInstallIntent , состояние cookie-файла доступно, даже если пользователь не запускает установленное приложение немедленно. Например, мгновенное приложение может вызвать следующий код из обработчика нажатия кнопки «Установить»:
using Google.Play.Instant;
...
var playerInfo = /* Object serialized as a string representing game levels completed, etc. */;
var cookieBytes = System.Text.Encoding.UTF8.GetBytes(playerInfo);
try
{
var maxCookieSize = CookieApi.GetInstantAppCookieMaxSize();
if (cookieBytes.Length > maxCookieSize)
{
UnityEngine.Debug.LogErrorFormat("Cookie length {0} exceeds limit {1}.", cookieBytes.Length, maxCookieSize);
}
else if (CookieApi.SetInstantAppCookie(cookieBytes))
{
UnityEngine.Debug.Log("Successfully set cookie. Now display the app install dialog...");
InstallLauncher.ShowInstallPrompt();
}
else
{
UnityEngine.Debug.LogError("Failed to set cookie.");
}
}
catch (CookieApi.InstantAppCookieException ex)
{
UnityEngine.Debug.LogErrorFormat("Failed to set cookie: {0}", ex);
}
Если пользователь завершает установку приложения, установленное приложение может извлечь данные cookie с помощью следующего кода:
var cookieBytes = CookieApi.GetInstantAppCookie();
var playerInfoString = System.Text.Encoding.UTF8.GetString(cookieBytes);
if (!string.IsNullOrEmpty(playerInfoString))
{
// Initialize game state based on the cookie, e.g. skip tutorial level completed in instant app.
}