Користувач каже «відкрий замовлення №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.»
Які проблеми вирішуємо?
Часто зустрічаються три проблеми:
- 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. Надаємо підтримку після впровадження.







