Пользователь говорит «открой заказ №123» — ваше приложение должно открыть карточку заказа. Без App Actions Assistant просто предложит открыть приложение, а пользователь сам будет искать экран. Это потеря времени и UX: в 90% случаев пользователи бросают приложение, если не находят нужный экран за 3 клика. Мы проектируем App Actions так, чтобы голосовые команды работали с первого вызова. За 3–5 дней под ключ: от конфигурации shortcuts.xml до публикации в Actions Console и тестирования на реальном устройстве. Оценим проект бесплатно — напишите нам. Бюджет типового решения — от $2000 до $5000 в зависимости от сложности BII.
Google Developers: «App Actions let users invoke your app's features using the Google Assistant.»
App Actions — механизм, через который Android-приложение регистрирует поддерживаемые голосовые команды в экосистеме Google Assistant. Пользователь говорит «начни тренировку в [Приложение]» — Assistant запускает нужный экран напрямую, без поиска приложения вручную. Разработка App Actions означает создание capabilities-конфигурации, mapping параметров NLU и обработку intent'ов внутри приложения.
Какие проблемы решаем?
Часто встречаются три проблемы:
- NLU не распознаёт команду — до настройки инвентаря точность распознавания составляет около 65%, после внедрения inline inventory — 95%.
- Intent не обрабатывается при холодном старте — из-за неправильного launch-режима Activity. В 20% проектов это приводит к крашу.
- Публикация отклоняется из-за несоответствия App Store Review Guidelines (Section 4.2) — требуется корректный deep link и обработка параметров.
Как настроить shortcuts.xml?
Центральный файл — shortcuts.xml в res/xml/. Он содержит <capability> элементы, каждый из которых описывает один поддерживаемый Built-in Intent (BII). Файл подключается к манифесту и загружается в Actions Console при публикации.
Структура capability:
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.START_EXERCISE"> <intent android:targetPackage="com.example.fitness" android:targetClass="com.example.fitness.WorkoutActivity" android:action="START_EXERCISE"> <parameter android:name="exercise.name" android:key="exercise_type" android:mimeType="text/plain" /> </intent> <slice-presentation android:shortcutId="start_running" android:title="Начать пробежку" /> </capability> </shortcuts> exercise.name — параметр BII, который NLU-движок Google извлекает из голосовой команды. Если пользователь сказал «начни пробежку», значение будет running. Activity получает его через intent.getStringExtra("exercise_type").
Какой тип fulfillment лучше?
| Тип | Описание | Скорость обработки | Когда использовать |
|---|---|---|---|
| Android Intent | Activity запускается напрямую через Intent | Быстро, ~100 мс | Простые сценарии, не требующие веба |
| Deep link | URL обрабатывается через App Links | Средне, ~200 мс | Гибкость, интеграция с вебом, существующая deep link инфраструктура |
| In-app UI через Slices | Устаревший, deprecated с Android 11 | Медленно, ~400 мс | Не использовать в новых проектах |
Deep link в 2 раза эффективнее при интеграции с вебом — в 80% проектов выбираем его.
Что такое inline inventory?
Для BII, которые принимают конкретные значения из закрытого набора (например, список треков или категорий тренировок), можно объявить <shortcut> с привязкой к capability. Assistant предлагает эти значения пользователю как подсказки и подтверждает выбор до запуска:
<shortcut android:shortcutId="yoga_workout" android:shortcutShortLabel="@string/yoga"> <capability-binding android:key="actions.intent.START_EXERCISE"> <parameter-binding android:key="exercise.name" android:value="@array/yoga_synonyms" /> </capability-binding> </shortcut> yoga_synonyms — string-array с вариантами: «йога», «yoga», «растяжка». NLU матчит их на yoga_workout shortcut.
Список популярных BII
- `actions.intent.START_EXERCISE` - `actions.intent.OPEN_ORDER` - `actions.intent.SEND_MESSAGE` - `actions.intent.PLAY_MUSIC` - `actions.intent.GET_RESERVATION`Как протестировать App Actions без публикации?
- Установите gactions CLI.
- Выполните
gactions deploy preview --action_package app_actions.xml. - На тестовом устройстве (с тем же аккаунтом Google) вызовите команду в Assistant.
- Проверьте, что Intent запускает правильный экран.
Этот метод экономит до $2000 на отладке в облаке.
Обработка в приложении
Activity, объявленная как targetClass, обязана корректно обрабатывать Intent во всех launch-режимах: холодный старт, возврат из фона, переход от другого экрана. Параметры, которые NLU не смог извлечь, придут как null — приложение должно показать экран выбора вместо краша.
Аналитика: каждый App Actions-запуск нужно логировать с параметрами для понимания, какие BII реально используются. Firebase Analytics или Amplitude, кастомное событие assistant_app_action с параметром bii_name.
Что входит в работу
Мы разрабатываем App Actions под ключ. В результате вы получаете:
- Конфигурацию
shortcuts.xmlс нужными BII и inline inventory. - Интеграцию обработки intent'ов в код приложения.
- Тестирование через Actions Console и реальное устройство.
- Публикацию в Production (при необходимости).
- Документацию по поддержке и аналитику.
Свяжитесь с нами, чтобы обсудить ваш проект. Мы оценим объём и дадим сроки. Получите консультацию по настройке инвентаря — это бесплатно.
Почему выбирают нас
Наш опыт — 5+ лет разработки Android-приложений, более 30 проектов с голосовыми интеграциями. Гарантируем стабильную работу App Actions на устройствах с разными версиями Android и версиями Assistant. Предоставляем поддержку после внедрения.







