Webinventar

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.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Abbildung 1: Beispiel für eine Assistant-Abfrage mit Webinventar zum Abrufen eines des Restaurants.

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:

  1. Fügen Sie in der Datei shortcuts.xml für Ihre App ein <capability>-Tag mit ein android:name-Attribut, das auf den Namen eines BII festgelegt ist, mit dem du arbeitest Webinventar, z. B. actions.intent.ORDER_MENU_ITEM.

  2. Fügen Sie im <capability>-Tag ein <intent>-Tag mit einem android:action-Element hinzu. Attribut, das auf den Namen der Ansicht festgelegt ist, die von diesem Intent aktiviert werden soll.

  3. Fügen Sie im selben <intent>-Tag ein <parameter>-Tag hinzu und legen Sie dessen android:name-Attribut auf den BII-Parameter, der am ehesten auf den die auf Ihren Webseiten beschrieben wird. Wenn Sie beispielsweise für ORDER_MENU_ITEM sollten Sie Speisekartenseiten mit menuItem.name.

  4. Fügen Sie im neuen <parameter>-Tag ein <data>-Tag hinzu und legen Sie dessen android: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:

  1. Für die erste ist ein Deeplink für das Webinventar von menuItem.name erforderlich .
  2. 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:

  1. Verbinden Sie das Testgerät mit der laufenden App.
  2. Gehen Sie in Android Studio zu Tools > App Actions > App Actions-Test Tool.
  3. Klicken Sie auf Vorschau erstellen.
  4. Führen Sie Ihre App in Android Studio auf Ihrem Testgerät aus.
  5. 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“.
  6. Beobachten Sie das Verhalten Ihrer App oder verwenden Sie den Android Studio-Debugger, um um das gewünschte Aktionsergebnis zu verifizieren.