Mit App Actions können Nutzer direkt zu den Inhalten deiner App springen, indem sie Folgendes sagen: z. B. „Hey Google, zeig mir die Speisekarte des Three Dot Cafe in der ExampleApp“. Diese Funktion wird als Deeplink bezeichnet. Sie erleichtert damit Nutzer Aufgaben mit Ihrer App erledigen können.
Für diese Art von Anfrage generiert Google Assistant einen Deeplink zu passende Inhalte in Ihrer App finden. Wenn Sie Ihre Website aktiv mit oder Produktinformationen. Ihre In-App-Deeplinks sind diesen öffentlichen Webinhalten entspricht, kannst du Assistant so konfigurieren, dass er URLs für Aktionen abruft Auftragsausführung über Ihre Website mithilfe eines Webinventars.
Ein Webinventar ist der Website-Speicherort von unterstützten Artikel-URLs.
durch Ihre App. Wenn ein Nutzer deine App Action aufruft, ordnet Assistant ihn dem Nutzer zu
(z. B. „Three Dot Cafe“) zu den entsprechenden URLs im Google-Suchindex
der Website, die Sie in der shortcuts.xml
für Ihre Android-App angeben.
Vorteile
Webinventar bietet Vorteile für Apps mit umfangreichen, regelmäßig aktualisierten Listen mit Artikel, die Nutzer in der App ansehen oder bestellen:
Webinventardaten befinden sich auf Ihrer Website, im Gegensatz zu Inline-Inventardaten. wo Artikellisten in Ihrer App gespeichert werden. Wenn Sie Assistant Zugriff auf Webdaten gewähren, Risiko von veralteten Inline-Inventardaten, die nur von eine neue Version der App zu veröffentlichen.
Inline-Inventar ist auf 1.000 Elemente beschränkt. Im Gegensatz dazu kann ein Webinventar hat keine Begrenzung der Artikel und kann Ihren Anforderungen entsprechend wachsen.
Mit einem Webinventar lässt sich die App-Logik vereinfachen, da die Auftragsausführung nur vorhersehbare Inhalts-URLs, die von Ihrer Website abgerufen wurden. Wenn dagegen nicht konfiguriert ist, generiert Assistant Deeplinks für Auftragsausführung, indem Intent-Parameter den Variablen in einer URL-Vorlage zugeordnet werden. Ihr muss die Auftragsausführung diese dynamisch generierte URL analysieren, Ermitteln, ob ein Nutzer eine unterstützte Entität in Ihrer App angefordert hat.
Funktionsweise
Während einer App Action erstellt Assistant über die integrierte
Intents (BIIs), die Sie in shortcuts.xml
definieren. Assistant verwendet natürliche Sprache
Verarbeitung, um die relevanten Elemente in der Anfrage eines Nutzers zu identifizieren und sie zu extrahieren
in BII-Parameter umgewandelt werden. Assistant generiert dann mithilfe der Parameter
basierend auf Ihrer Konfiguration für die Auftragsausführung in shortcuts.xml.
Es gibt drei Methoden zum Generieren von Deeplinks für die Auftragsausführung:
- Parameterzuordnung: Ordnet Platzhaltern Intent-Parameter in einer Vorlage für die URL für die Auftragsausführung.
- Inline-Inventar: Gleicht Intent-Parameter mit einer Liste unterstützter
entities
in der App definiert. - Webinventar: Gleicht Intent-Parameter mit Inhalten im Google-Suchindex
Ein Webinventar ist ein vom Entwickler
definiertes Website-URL-Muster,
wie https://www.exampleapp.com/restaurants/.*
, die eine Menge von Entitäten darstellt
Entitäten, die von einer App unterstützt werden.
Wenn ein BII-Parameter für ein Webinventar konfiguriert ist,
die Website ab, um einen Entitätsabgleich mit der Nutzeranfrage durchzuführen. Assistant dann
übergibt URL-Ergebnisse, die mit dem konfigurierten URL-Muster übereinstimmen, z. B.
https://www.exampleapp.com/restaurants/three-dot-cafe
zu deiner Auftragsausführung.
![](https://developer.android.com/static/guide/app-actions/images/web-inventory-flow.png?authuser=9&hl=de)
Unterstützte integrierte Intents
Webinventar wird für bestimmte Intent-Parameter durch Folgendes unterstützt: BIIs:
- [
actions.intent.CREATE_REVIEW
] - [
actions.intent.GET_NEWS_ARTICLE
] - [
actions.intent.GET_REVIEW
] - [
actions.intent.GET_THING
] - [
actions.intent.ORDER_MENU_ITEM
] - [
actions.intent.GET_EXERCISE_PLAN
] - [
actions.intent.GET_DIGITAL_DOCUMENT
] - [
actions.intent.GET_ITEM_LIST
] - [
actions.intent.GET_OFFER
] - [
actions.intent.CREATE_OFFER
] - [
actions.intent.GET_PRODUCT
] - [
actions.intent.UPDATE_CART
] - [
actions.intent.CREATE_SOCIAL_MEDIA_CONNECTION
] - [
actions.intent.GET_IMAGE_OBJECT
] - [
actions.intent.GET_SOCIAL_MEDIA_POSTING
] - [
actions.intent.GET_SOCIAL_MEDIA_PROFILE
] - [
actions.intent.CREATE_TAXI_RESERVATION
] - [
actions.intent.CREATE_FLIGHT_RESERVATION
] - [
actions.intent.CREATE_LODGING_RESERVATION
] - [
actions.intent.GET_LOCAL_BUSINESS
] - [
actions.intent.GET_RESERVATION
] - [
actions.intent.UPDATE_RESERVATION
]
Webinventar hinzufügen
Sobald Sie einen unterstützten BII identifiziert haben, aktivieren Sie ihn für Webinventar, indem Sie
shortcuts.xml
durch Details zu Ihrer Website. Die Datei shortcuts.xml
ist ein
in Ihrem Android-Projekt, in dem Sie die BIIs definieren, die Ihren
und wie jeder BII Deeplinks für deine App generieren sollte,
erfüllen. Weitere Informationen zu shortcuts.xml
findest du unter shortcuts.xml erstellen.
So verwenden Sie Webinventar für einen unterstützten BII:
Fügen Sie in der Datei
shortcuts.xml
für Ihre App ein<capability>
-Tag mit einandroid:name
-Attribut, das auf den Namen eines BII festgelegt ist, mit dem du arbeitest Webinventar, z. B.actions.intent.ORDER_MENU_ITEM
.Fügen Sie im
<capability>
-Tag ein<intent>
-Tag mit einemandroid:action
-Element hinzu. Attribut, das auf den Namen der Ansicht festgelegt ist, die von diesem Intent aktiviert werden soll.Fügen Sie im selben
<intent>
-Tag ein<parameter>
-Tag hinzu und legen Sie dessenandroid:name
-Attribut auf den BII-Parameter, der am ehesten auf den die auf Ihren Webseiten beschrieben wird. Wenn Sie beispielsweise fürORDER_MENU_ITEM
sollten Sie Speisekartenseiten mitmenuItem.name
.Fügen Sie im neuen
<parameter>
-Tag ein<data>
-Tag hinzu und legen Sie dessenandroid:pathPattern
dem URL-Muster des Pfads, den Sie hinzufügen möchten, für Webinventar verwenden.
Wenn du shortcuts.xml
mit diesen Schritten konfigurierst, kann Assistant Folgendes tun:
Webinhalte aus dem Google-Suchindex des URL-Musters abrufen,
android:pathPattern
angegeben. und Assistant eine URL
zur Auftragsausführung hinzu. Dazu werden die Ergebnisse verwendet, die dem URL-Pfadmuster,
definiert. Ihre App leitet den Nutzer dann an eine bestimmte Stelle in Ihrer App weiter.
an den von Assistant bereitgestellten URL-Daten.
Beispiel: Ihre Website enthält Produkteinträge, die einen URL-Pfad verwenden.
beginnend mit https://www.examplecafe.com/items/
. Sie verwenden die pathPattern
Wert https://www.examplecafe.com/items/.*
und Assistant verwendet diese URL
Muster bei einer Internetsuche, um eine Auftragsausführungs-URL zu finden, z. B.
https://www.examplecafe.com/items/item123
Wenn Assistant eine übereinstimmende Webinventar-URL findet, wird diese URL im
<data>
des Auftragsausführungs-Intents, als ob es sich um einen Deeplink handelt. Verwenden Sie die Methode
getData()
des Intents, um die URL als Uri
-Objekt abzurufen. Die App-Aktivitäten, die
für die Interpretation der URL und Aktivierung des
die entsprechende App-Benutzeroberfläche.
Beispiel für „shortcuts.xml“
Im folgenden Beispiel wird ein BII ORDER_MENU_ITEM
definiert, der
stellt ein Webinventar zur Verfügung, um URL-Ergebnisse für Anfragen mit dem
BII-Parameter menuItem.name
:
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<!-- Define URL match pattern in the pathPattern data field -->
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*"/>
</parameter>
</intent>
</capability>
</shortcuts>
Im obigen Beispiel wurde ein pathPattern
für menuItem.name
angegeben,
Du kannst Assistant anweisen, nur URLs zurückzugeben, die mit dem URL-Muster übereinstimmen:
https://www.examplecafe.com/items/.*
Weitere shortcuts.xml
-Beispiele für BII, die Webinventar unterstützen, sind
finden Sie in der Referenzdokumentation.
Fallback bei fehlenden Ergebnissen verarbeiten
In Situationen, in denen Webinventarergebnisse nicht an Ihre Auftragsausführung zurückgegeben werden, Ihre App sollte eine Fallback-Logik implementieren, um die Aktion mit der am besten User Experience möglich ist. Unter anderem können folgende Situationen zu fehlenden Ergebnissen führen:
- Fehlender Intent-Parameter: Der Nutzer hat einen erwarteten Parameter ausgelassen. Suchanfrage oder Assistant hat den Parameter im Nutzer nicht verstanden
- Fehlendes URL-Ergebnis: Assistant konnte keine Entität auf Ihrer Website, die der Suchanfrage des Nutzers entspricht.
Sie können mit fehlenden Parameterwerten umgehen, indem Sie mehrere <intent>
definieren
Elemente für eine Fähigkeit. Wenn Assistant den ersten Intent nicht erfüllen kann,
auf den nächsten Intent zurückgreift usw.
Für Fallback-Intents sollten keine Parameter erforderlich sein. Stattdessen sollten sie die Möglichkeit bieten, mit einem allgemeineren Deeplink wie z. B. der Anzeige von Suchergebnissen Ergebnisse der Nutzeranfrage.
Im folgenden Beispiel für shortcuts.xml
ist ein BII ORDER_MENU_ITEM
definiert zwei Auftragsausführungen: Die erste erwartet eine URL vom menuItem.name
. Bei der zweiten Option sind keine Parameter erforderlich, sodass der Nutzer auf eine Seite weitergeleitet wird,
alle Menüpunkte.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*"/>
</parameter>
</intent>
<!-- Fallback intent with no required parameters -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.ViewMenuActivity">
<url-template android:value="myapp://app.examplecafe.com/menu/all-items" />
</intent>
</capability>
In Situationen, in denen keine Webinventar-URL zurückgegeben wird, wird der Content des Nutzers kann weiterhin in Fallback-Intents verwendet werden, z. B. um Ergebnisse.
Im folgenden Beispiel-shortcuts.xml
sind zwei Intent-Elemente definiert:
- Für die erste ist ein Deeplink für das Webinventar von
menuItem.name
erforderlich . - Wenn kein Deeplink zurückgegeben wird, zeigt der zweite Intent die Suche an
unter Verwendung der Nutzerabfrage aus
menuItem.name
, falls vorhanden.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*" />
</parameter>
</intent>
<!-- Fallback intent displaying search results, using "menuItem.name" -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.SearchMenuActivity">
<parameter-mapping android:name="menuItem.name" android:key="food" />
<url-template android:value="https://www.examplecafe.com/search?q={?food}" />
</intent>
</capability>
In-App-Suche mit Webinventar hinzufügen
Du kannst Nutzern die Suche nach Webinhalten in deiner App ermöglichen, indem du Web-Inhalte kombinierst
mit einer Implementierung des BII actions.intent.GET\_THING
.
Dieser BII sucht mithilfe der standardmäßigen In-App-Suche nach Inhalten oder Entitäten
in einer App, die Anfragen wie „Hey Google, zeig mir Wanderungen an Wasserfällen“ ermöglicht.
in SampleApp.“ Durch Konfigurieren des Webinventars für die Funktion thing.name
Parameter, der vom BII GET_THING
übergeben wurde und den Entitätsergebnissen aus Ihrem
für die Auftragsausführung übergeben werden.
Beispiele für Webinventar shortcuts.xml
findest du in der BII-Referenz zu GET\_THING
.
Webinventar testen
Wenn Sie ein Webinventar für eine BII-Ausführung definieren, generiert Assistant ein
Deeplink mit Webergebnissen, die dem von dir definierten urlTemplate
-Muster entsprechen
Der angegebene BII-Parameter. Wenn kein Webinventarergebnis gefunden werden kann,
generiert eine URL, die dem Muster urlTemplate
Ihres Fallback-Intents entspricht. Ich
die Implementierung Ihres Webinventars testen können,
indem Sie prüfen, ob die Links,
stellt URLs bereit, die den urlTemplate
-Mustern Ihres Webinventars entsprechen.
Im folgenden Beispiel-BII ORDER_MENU_ITEM
generiert Assistant Webinventar
Auftragsausführungslinks, die mit dem Muster urlFilter
übereinstimmen, das in den
menuItem.name
-Parameter. Beispiel:
https://www.examplecafe.com/items/nuggets
. Der zweite Intent übernimmt den Wert
menuItem.name
und führt eine Suche aus, wenn der erste Intent mit dem
URL-Muster.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<!-- web inventory fulfillment -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*" />
</parameter>
</intent>
<!-- search intent -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.MenuSearchActivity">
<parameter-mapping android:name="menuItem.name" android:key="food" />
<url-template android:value="https://www.examplecafe.com/search?q={?food}" />
</intent>
</capability>
Mit dem Testtool für App Actions können Sie Webinventar auf einem physischen oder virtuellen Gerät testen. .
So verwenden Sie das Testtool:
- Verbinden Sie das Testgerät mit der laufenden App.
- Gehen Sie in Android Studio zu Tools > App Actions > App Actions-Test Tool.
- Klicken Sie auf Vorschau erstellen.
- Führen Sie Ihre App in Android Studio auf Ihrem Testgerät aus.
- Verwende die Assistant App auf deinem Testgerät, um deine App Action zu testen. Für können Sie beispielsweise sagen: „Hey Google, bestelle Nuggets bei ExampleCafe“.
- Beobachten Sie das Verhalten Ihrer App oder verwenden Sie den Android Studio-Debugger, um um das gewünschte Aktionsergebnis zu verifizieren.