Inventario web

Con Azioni app, gli utenti possono accedere direttamente ai contenuti della tua app dicendo ad esempio "Hey Google, mostrami il menu di Three Dot Cafe su ExampleApp". Questa funzionalità è chiamata link diretti e può semplificare per consentire agli utenti di svolgere attività con la tua app.

Per soddisfare questo tipo di richiesta, l'Assistente Google genera un link diretto a contenuti corrispondenti nella tua app. Se gestisci attivamente il tuo sito web con informazioni sui contenuti o sui prodotti e i link diretti in-app sono organizzati questi contenuti web pubblici, puoi configurare l'assistente in modo che recuperi gli URL per l'azione fulfillment dal tuo sito web utilizzando un inventario web.

Un inventario web è la posizione del sito web degli URL degli elementi supportati dalla tua app. Quando un utente richiama l'Azione app, l'assistente associa l'utente della query, ad esempio "Three Dot Cafe", agli URL corrispondenti nell'indice di ricerca di Google. del sito web specificato nel shortcuts.xml per la tua app per Android.

Vantaggi

L'inventario per il web offre vantaggi per le app con elenchi di grandi dimensioni e regolarmente aggiornati articoli visualizzati o ordinati dagli utenti nell'app:

  • I dati di inventario web risiedono sul tuo sito web, a differenza dei dati di inventario in linea, per archiviare elenchi di articoli nell'app. Se consenti all'assistente di accedere ai dati web evita il rischio di dati di inventario in linea inattivi, che possono essere aggiornati solo per pubblicare una nuova versione dell'app.

  • Gli inventari in linea sono limitati a 1000 articoli. Al contrario, un inventario web non ha limiti di articoli e può crescere con le tue esigenze.

  • Un inventario web può semplificare la logica dell'app consentendo l'evasione dell'ordine gestire URL di contenuti prevedibili recuperati dal tuo sito web. Al contrario, se se un inventario non è configurato, l'assistente genera link diretti il completamento mediante la mappatura dei parametri di intent alle variabili in un modello di URL. Il tuo fulfillment dovrà analizzare questo URL generato dinamicamente Stabilire se un utente ha richiesto un'entità supportata nella tua app.

Come funziona

Durante un'Azione app, l'assistente contiene link diretti ai contenuti dell'app tramite intent (BII) che definisci in shortcuts.xml. L'assistente usa un linguaggio naturale per identificare gli articoli pertinenti nella richiesta di un utente e li estrae nei parametri degli intent integrati. L'assistente genera quindi un link diretto utilizzando i parametri, in base alla configurazione di evasione degli ordini in shortcuts.xml.

Sono disponibili tre metodi per generare link diretti per il completamento:

  • Mappatura dei parametri: associa i parametri di intent ai segnaposto in una modello di URL di completamento.
  • Inventario incorporato: abbina i parametri di intenzione a un elenco di elementi supportati. entities definito nell'app.
  • Inventario per il web: associa i parametri di intenzione ai contenuti presenti nella Indice della Ricerca Google.

Un inventario web è un pattern URL di un sito web definito dallo sviluppatore, come https://www.exampleapp.com/restaurants/.*, che rappresenta un insieme di entità supportate da un'app.

Se per un inventario web è configurato un parametro dell'intent integrato, esegue una query sul sito web per eseguire una corrispondenza di entità con la query dell'utente. Assistente, quindi trasmette risultati dell'URL corrispondenti al pattern URL configurato, come https://www.exampleapp.com/restaurants/three-dot-cafe, per l'evasione dell'ordine.

. Figura 1. Esempio di query dell'assistente che utilizza l'inventario web per recuperare un del ristorante.

Intent integrati supportati

L'inventario per il web è supportato, per alcuni parametri di intent, dai seguenti parametri: intent integrati:

  • [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]
di Gemini Advanced.

Aggiungi inventario web

Una volta identificato un intent integrato supportato, puoi abilitarlo per l'inventario web aggiornando shortcuts.xml con i dettagli del tuo sito web. Il file shortcuts.xml è un risorsa del tuo progetto Android in cui definisci gli intent integrati mappati la funzionalità dell'app e il modo in cui ogni intent integrato dovrebbe generare link diretti per l'app completamento. Per scoprire di più su shortcuts.xml, consulta la sezione Creare scorciatoie.xml.

Per utilizzare l'inventario web per un intent integrato supportato, segui questi passaggi:

  1. Nel file shortcuts.xml della tua app, aggiungi un tag <capability> con un attributo android:name impostato sul nome di un intent integrato che stai gestendo inventario web, ad esempio actions.intent.ORDER_MENU_ITEM.

  2. Aggiungi un tag <intent> con un android:action nel tag <capability> impostato sul nome della vista che deve essere attivata da questo intent.

  3. Nello stesso tag <intent>, aggiungi un tag <parameter> e impostane android:name al parametro dell'intent integrato che meglio corrisponde all'entità descritta dalle tue pagine web. Ad esempio, quando fornisci inventario web per ORDER_MENU_ITEM, devi collegare le pagine dei menu a menuItem.name.

  4. Nel nuovo tag <parameter>, aggiungi un tag <data> e impostane android:pathPattern al pattern URL del percorso da impostare per l'inventario web.

Se configuri shortcuts.xml seguendo questi passaggi, l'assistente può recupera i contenuti web dall'indice della Ricerca Google del pattern URL che specificato nell'attributo android:pathPattern. L'assistente fornisce quindi un URL al completamento utilizzando i risultati corrispondenti al pattern del percorso dell'URL che definito. L'app indirizza poi l'utente a un punto specifico dell'app in base in base ai dati URL forniti dall'assistente.

Ad esempio, il tuo sito web contiene schede di prodotto che utilizzano un percorso dell'URL che iniziano con https://www.examplecafe.com/items/. Utilizzi pathPattern valore https://www.examplecafe.com/items/.* e l'assistente utilizza questo URL pattern in una ricerca web per trovare un URL di completamento, ad esempio https://www.examplecafe.com/items/item123.

Se l'assistente trova un URL di inventario web corrispondente, fornisce l'URL nella Campo <data> dell'intent di completamento, come se si trattasse di un link diretto. Utilizza la getData() dell'intent di ottenere l'URL come oggetto Uri. L'attività dell'app che riceve l'intent responsabile di interpretare l'URL e di attivare l'interfaccia utente dell'app appropriata.

Esempio di scorciatoie.xml

L'esempio seguente definisce un intent integrato ORDER_MENU_ITEM che fornisce un inventario web per restituire risultati URL per le richieste contenenti menuItem.name Parametro dell'intent integrato:

<?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>

Nell'esempio precedente, viene specificato un pathPattern per menuItem.name, indicando all'assistente di restituire solo gli URL che corrispondono al pattern URL: https://www.examplecafe.com/items/.*

Altri shortcuts.xml esempi di intent integrati che supportano l'inventario web sono disponibile nella documentazione di riferimento.

Gestire i video di riserva per i risultati mancanti

Nei casi in cui i risultati dell'inventario web non vengano restituiti al tuo evasione degli ordini, la tua app deve implementare una logica di fallback per completare l'azione con la migliore esperienza utente possibile. Le situazioni che causano la mancanza di risultati includono:

  • Parametro di intent mancante: l'utente ha omesso un parametro previsto nella sua la query o l'assistente non ha capito il parametro nell'utente richiesta.
  • Risultato URL mancante: l'assistente non è riuscito a trovare un'entità sul tuo sito web corrispondente alla query dell'utente.

Puoi gestire i valori dei parametri mancanti definendo più <intent> gli elementi per una capacità. Se l'assistente non riesce a soddisfare il primo intent, all'intento successivo e così via.

Gli intent di riserva non devono richiedere parametri. Dovrebbero invece soddisfano la funzionalità con un link diretto più generico, come mostrare risultati di ricerca risultati per la query dell'utente.

Nel seguente esempio shortcuts.xml, un intent integrato ORDER_MENU_ITEM definisce due completamenti: il primo prevede un URL dall'menuItem.name . Il secondo non richiede parametri, indirizzando l'utente a una pagina tutte le voci di menu.

<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>

Nei casi in cui non venga restituito un URL dell'inventario web, i contenuti dell'utente query può essere ancora utilizzata negli intent di riserva, ad esempio per visualizzare che consentono di analizzare i dati e visualizzare i risultati.

Nel seguente esempio shortcuts.xml, sono definiti due elementi di intent:

  1. Il primo richiede un link diretto all'inventario web dall'menuItem.name .
  2. Se non viene restituito un link diretto, il secondo intent mostra utilizzando la query dell'utente da menuItem.name, se presente.
<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>

Aggiungi la ricerca in-app con l'inventario per il web

Per consentire agli utenti di cercare contenuti web nella tua app combinando con un'implementazione dell'intent integrato actions.intent.GET\_THING.

Questo intent integrato cerca contenuti o entità utilizzando la ricerca in-app predefinita in un'app, attivando query come "Hey Google, mostrami le escursioni a cascata su SampleApp." Configurando l'inventario web per la funzionalità thing.name trasmesso dall'intent integrato GET_THING, corrispondente ai risultati dell'entità proveniente da sito web vengono passati per il completamento.

Per esempi di shortcuts.xml di inventario web, consulta il GET\_THINGriferimento degli intent integrati.

Test dell'inventario web

Quando definisci un inventario web per un completamento di intent integrati, l'assistente genera un link diretto utilizzando risultati web corrispondenti al pattern urlTemplate definito per del parametro dell'intent integrato specificato. Se non è possibile trovare un risultato di inventario web, l'assistente genera un URL corrispondente al pattern urlTemplate del tuo intent di riserva. Tu puoi testare l'implementazione dell'inventario web verificando che i link a cui l'assistente fornisce sono gli URL che corrispondono ai pattern dell'inventario urlTemplate per il web.

Nel seguente intent integrato ORDER_MENU_ITEM di esempio, l'assistente genera l'inventario web link di evasione ordini corrispondenti al pattern urlFilter specificato in menuItem.name, ad esempio: https://www.examplecafe.com/items/nuggets. Il secondo intent prende il valore menuItem.name ed esegue una ricerca se il primo intent non corrisponde al Pattern URL.

<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>

Utilizza lo strumento di test delle Azioni app per testare l'inventario web su un sistema fisico o virtuale dispositivo.

Per utilizzare lo strumento di test:

  1. Connetti il dispositivo di test all'app in esecuzione.
  2. In Android Studio, vai a Strumenti > Azioni app > Test Azioni app strumento.
  3. Fai clic su Crea anteprima.
  4. In Android Studio, esegui l'app sul tuo dispositivo di test.
  5. Usa l'app Assistente sul dispositivo di test per testare l'Azione app. Per Ad esempio, puoi dire "Hey Google, ordina pepite su ExampleCafe".
  6. Osserva il comportamento della tua app o utilizza il debugger di Android Studio per verificare il risultato dell'azione desiderata.