Предупреждение: Google Play Instant больше не будет доступен. Начиная с декабря 2025 года мгновенные приложения не могут быть опубликованы через Google Play, и все API-интерфейсы мгновенных приложений Google Play больше не будут работать. Пользователи больше не будут получать мгновенные приложения от Play с использованием любого механизма.
Мы вносим это изменение на основе отзывов разработчиков и наших постоянных инвестиций в улучшение экосистемы с момента внедрения Google Play Instant.
Чтобы продолжить оптимизацию для роста числа пользователей, мы призываем разработчиков направлять пользователей в их обычные приложения или игры, используя глубокие ссылки для перенаправления их на определенные пути или функции, когда это уместно.
Плагин Google Play Instant для Unity настраивает ваш проект Unity для создания мгновенной версии приложения вашей игры. В этом руководстве описывается, как установить и использовать этот плагин.
Загрузите и импортируйте плагин
Плагин является частью Google Play Plugins для 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.
}