Crea azioni per l'Assistente Google utilizzando Actions Builder (livello 1)

1. Panoramica

La piattaforma per sviluppatori dell'Assistente Google ti consente di creare software per estendere la funzionalità dell'Assistente Google, un assistente personale virtuale, su oltre 1 miliardo di dispositivi, tra cui smart speaker, smartphone, auto, TV, cuffie e altro ancora. Gli utenti interagiscono con l'assistente per svolgere attività come acquistare generi alimentari o prenotare una corsa. In qualità di sviluppatore, puoi utilizzare la piattaforma per sviluppatori dell'assistente per creare e gestire facilmente esperienze conversazionali efficaci e piacevoli tra gli utenti e il tuo servizio di evasione di terze parti.

Questo codelab tratta concetti di livello principiante per lo sviluppo con l'Assistente Google. Per completarlo, non è necessaria alcuna esperienza precedente con la piattaforma. In questo codelab, creerai un'Azione semplice per l'Assistente Google che dice agli utenti la loro fortuna mentre iniziano la loro avventura nella terra mitica di Gryffinberg. Nel codelab di livello 2 di Actions Builder, sviluppi ulteriormente questa azione per personalizzare la fortuna dell'utente in base al suo input.

Cosa creerai

In questo codelab, creerai un'Azione semplice con le seguenti funzioni:

  • Risponde agli utenti con un messaggio di saluto
  • Pone una domanda agli utenti. Quando risponde, l'Azione risponde in modo appropriato alla selezione dell'utente
  • Fornisce chip di suggerimento su cui gli utenti possono fare clic per fornire input
  • Modifica il messaggio di saluto all'utente in base al fatto che sia un utente di ritorno

Al termine di questo codelab, l'azione completata avrà il seguente flusso conversazionale:

1c1e79902bed7230.png

18ef55647b4cb52c.png

Obiettivi didattici

  • Come creare un progetto nella console Actions
  • Come inviare un prompt all'utente dopo che ha richiamato l'azione
  • Come elaborare l'input di un utente e restituire una risposta
  • Come testare l'azione nel simulatore di Actions
  • Come implementare l'evasione utilizzando l'editor di Cloud Functions

Che cosa ti serve

Nel tuo ambiente devono essere presenti i seguenti strumenti:

2. Configura

Le sezioni seguenti descrivono come configurare l'ambiente di sviluppo e creare il progetto Azioni.

Verifica le impostazioni delle autorizzazioni Google

Per testare l'azione che crei in questo codelab, devi abilitare le autorizzazioni necessarie in modo che il simulatore possa accedere all'azione. Per attivare le autorizzazioni:

  1. Vai alla pagina Gestione attività.
  2. Se non l'hai ancora fatto, accedi con il tuo Account Google.
  3. Attiva le seguenti autorizzazioni:
  • Attività web e app
  • In Attività web e app, seleziona la casella di controllo Includi la cronologia di Chrome e le attività svolte su siti, app e dispositivi che usano i servizi Google.

crea un progetto Actions

Il progetto Actions è un contenitore per l'azione. Per creare il progetto Azioni per questo codelab:

  1. Apri la console Azioni.
  2. Fai clic su Nuovo progetto.
  3. Digita un nome progetto, ad esempio actions-codelab. Il nome è per riferimento interno. In un secondo momento, potrai impostare un nome esterno per il progetto.)

8cd05a84c1c0a32f.png

  1. Fai clic su Crea progetto.
  2. Nella schermata Che tipo di azione vuoi creare?, seleziona la scheda Personalizzata.
  3. Fai clic su Avanti.
  4. Seleziona la scheda Progetto vuoto.
  5. Fai clic su Inizia a creare.

Associare un account di fatturazione

Per eseguire il deployment del fulfillment più avanti in questo codelab utilizzando Cloud Functions, devi associare un account di fatturazione al tuo progetto in Google Cloud.

Se non hai ancora associato un account di fatturazione al tuo progetto, segui questi passaggi:

  1. Vai alla pagina di fatturazione di Google Cloud Platform.
  2. Fai clic su Aggiungi account di fatturazione o Crea account.
  3. Inserisci i dati di pagamento.
  4. Fai clic su Inizia la mia prova senza costi o Invia e attiva la fatturazione.
  5. Vai alla pagina di fatturazione di Google Cloud Platform.
  6. Fai clic sulla scheda I miei progetti.
  7. Fai clic sui tre puntini sotto Azioni accanto al progetto Azioni per il codelab.
  8. Fai clic su Modifica fatturazione.
  9. Nel menu a discesa, seleziona l'account di fatturazione che hai configurato. Fai clic su Imposta account.

Per evitare addebiti, segui i passaggi descritti nella sezione Esegui la pulizia del progetto alla fine di questo codelab.

3. Avvia una conversazione

Gli utenti avviano la conversazione con la tua azione tramite l'invocazione. Ad esempio, se hai un'azione denominata MovieTime, gli utenti possono invocarla dicendo una frase come "Hey Google, parla con MovieTime", dove MovieTime è il nome visualizzato. La tua Azione deve avere un nome visualizzato se vuoi eseguirne il deployment in produzione. Tuttavia, per testarla, non è necessario definire il nome visualizzato. In alternativa, puoi utilizzare la frase "Parla con la mia app di prova" nel simulatore per richiamare l'Azione.

Devi modificare l'invocazione principale per definire cosa succede dopo che un utente invoca la tua azione.

Per impostazione predefinita, Actions Builder fornisce un prompt generico quando viene attivata l'invocazione ("Inizia a creare la tua azione definendo l'invocazione principale").

Nella sezione successiva, personalizza il prompt per l'invocazione principale nella console Azioni.

Configurare la chiamata principale

Per modificare il prompt che l'azione invia all'utente quando la richiama, segui questi passaggi:

  1. Fai clic su Richiamo principale nella barra di navigazione.

966d037e1d7914df.png

  1. Nell'editor di codice, sostituisci il testo nel campo speech (Start building your action...) con il seguente messaggio di benvenuto: A wondrous greeting, adventurer! Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you're on your way to an epic journey.
  1. Fai clic su Salva.

Testare la chiamata principale nel simulatore

La console Azioni fornisce uno strumento web per testare l'azione chiamato simulatore. L'interfaccia simula i dispositivi hardware e le relative impostazioni, in modo da poter conversare con l'azione come se fosse in esecuzione su uno smart display, uno smartphone, uno speaker o KaiOS.

Quando richiami l'azione, ora dovrebbe rispondere con il prompt personalizzato che hai aggiunto ("A wondrous greeting, adventurer!...").

Per testare l'invocazione principale dell'azione nel simulatore:

  1. Nella barra di navigazione in alto, fai clic su Test per andare al simulatore.
  2. Per richiamare l'Azione nel simulatore, digita Talk to my test app nel campo Input e premi Enter.

656f5736af6a5a07.png

Quando attivi l'invocazione principale dell'azione, l'assistente risponde con il messaggio di benvenuto personalizzato. A questo punto, la conversazione termina dopo che l'assistente risponde con un saluto. Nella sezione successiva, modifichi l'azione in modo che la conversazione continui.

Visualizzare i log eventi

Quando ti trovi nella scheda Test, il riquadro a destra mostra i log eventi, che visualizzano la cronologia delle conversazioni come log eventi. Ogni log degli eventi mostra gli eventi che si verificano durante il turno della conversazione.

La tua azione ha attualmente un log eventi, che mostra sia l'input dell'utente ("Talk to my test app") sia la risposta dell'azione. Lo screenshot seguente mostra il log eventi dell'Azione:

443129bdcbecc593.png

Se fai clic sulla freccia giù nel log eventi, puoi visualizzare gli eventi, disposti in ordine cronologico, che si sono verificati in quel turno della conversazione:

  • userInput: Corrisponde all'input dell'utente ("Talk to my test app").
  • interactionMatch: corrisponde alla risposta principale di invocazione dell'azione, attivata dall'input dell'utente. Se espandi questa riga facendo clic sulla freccia, puoi visualizzare il prompt che hai aggiunto per la chiamata principale (A wondrous greeting, adventurer!...).
  • endConversation: corrisponde alla transizione selezionata nell'intent Main invocation, che attualmente termina la conversazione. Scopri di più sulle transizioni nella sezione successiva di questo codelab.

I log degli eventi forniscono visibilità sul funzionamento dell'azione e sono strumenti utili per il debug dell'azione in caso di problemi. Per visualizzare i dettagli di un evento, fai clic sulla freccia accanto al nome dell'evento, come mostrato nello screenshot seguente:

fcc389b59af5bef1.png

4. Crea la conversazione dell'azione

Ora che hai definito cosa succede dopo che un utente richiama l'azione, puoi creare il resto della conversazione dell'azione. Prima di continuare con questo codelab, acquisisci familiarità con i seguenti termini per capire come funziona la conversazione dell'azione:

L'azione può avere una o più scene e devi attivare ogni scena prima che possa essere eseguita. L'azione che crei in questo codelab ha una sola scena intitolata Start. Il modo più comune per attivare una scena è configurare l'azione in modo che, quando un utente corrisponde a un intent utente all'interno di una scena, questo intent attivi la transizione a un'altra scena e la attivi.

Ad esempio, immagina un'azione ipotetica che fornisce all'utente informazioni sugli animali. Quando l'utente richiama questa azione, l'intent Main invocation viene abbinato e attiva la transizione a una scena denominata Facts. Questa transizione attiva la scena Facts, che invia il seguente prompt all'utente: Would you like to hear a fact about cats or dogs? All'interno della scena Facts si trova un intent utente chiamato Cat, che contiene frasi di addestramento che l'utente potrebbe pronunciare per ascoltare una curiosità sui gatti, ad esempio "Voglio ascoltare una curiosità sui gatti" o "gatto". Quando l'utente chiede di ascoltare una curiosità sui gatti, viene abbinato l'intent Cat, che attiva una transizione a una scena chiamata Cat fact. La scena Cat fact si attiva e invia all'utente un prompt che include una curiosità sui gatti.

a78f549c90c3bff6.png

Figura 1. Il flusso di un tipico turno conversazionale in un'azione creata con Actions Builder

Insieme, scene, intent e transizioni costituiscono la logica della conversazione e definiscono i vari percorsi che l'utente può seguire nella conversazione dell'Azione. Nella sezione seguente, crei una scena e definisci come viene attivata dopo che un utente richiama la tua azione.

Transizione dalla chiamata principale alla scena

In questa sezione, crei una nuova scena chiamata Start, che invia un prompt all'utente chiedendogli se vuole che gli venga predetto il futuro. Aggiungi anche una transizione dall'invocazione principale alla nuova scena Start.

Per creare questa scena e aggiungere una transizione, segui questi passaggi:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Fai clic su Richiamo principale nella barra di navigazione laterale.
  3. Nella sezione Transizione, fai clic sul menu a discesa e digita Start nel campo di testo.

29e12dff950a3bce.png

  1. Fai clic su Aggiungi. In questo modo viene creata una scena chiamata Start e viene indicato all'azione di passare alla scena Start dopo che l'azione ha inviato il prompt di benvenuto all'utente.
  2. Fai clic su Scene nella barra di navigazione laterale per visualizzare l'elenco delle scene.
  3. In Scene, fai clic su Avvia per visualizzare la scena Start.
  4. Fai clic su + nella sezione All'ingresso della scena Start.
  5. Seleziona Invia prompt.
  6. Sostituisci la frase nel campo speech (Enter the response that users will see or hear...) con una domanda da porre all'utente: Before you continue on your quest, would you like your fortune told?

3fc95466efd476f.png

  1. Fai clic su Salva.

L'Assistente Google mostra questo prompt (Before you continue on your quest...) all'utente quando entra nella scena Start.

Aggiungere chip di suggerimenti

I chip di suggerimento offrono suggerimenti su cui l'utente può fare clic e che l'azione elabora come input dell'utente. In questa sezione, aggiungi chip di suggerimento per supportare gli utenti sui dispositivi con schermi.

Per aggiungere chip di suggerimento al prompt della scena Start:

  1. Nella scena Start, fai clic su Suggerimenti. Questa azione aggiunge un singolo chip di suggerimento.
  2. Nel campo title, sostituisci Suggested Response con 'Yes'.
  3. Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento intitolato 'No'. Il tuo codice dovrebbe essere simile al seguente snippet:
    suggestions:
      - title: 'Yes'
      - title: 'No'
  1. Fai clic su Salva.

2d13c2ada791ec26.png

Testare l'azione nel simulatore

A questo punto, l'azione deve passare dall'invocazione principale alla scena Start e chiedere all'utente se vuole che gli venga predetto il futuro. I chip di suggerimento dovrebbero essere visualizzati anche nel display simulato.

Per testare l'azione nel simulatore:

  1. Nella barra di navigazione, fai clic su Test per accedere al simulatore.
  2. Per testare l'Azione nel simulatore, digita Talk to my test app nel campo Input e premi Enter. L'azione deve rispondere con il prompt Main invocation e il prompt della scena Start aggiunto, "Before you continue on your quest, would you like your fortune told?".

Il seguente screenshot mostra questa interazione:

3c2013ebb2da886a.png

  1. Fai clic sul chip di suggerimento Yes o No per rispondere al prompt. Puoi anche dire "Sì" o "No" oppure inserire Yes o No nel campo Input.

Quando rispondi al prompt, l'Azione risponde con un messaggio che indica che non riesce a comprendere il tuo input: "Mi dispiace, non ho capito. Puoi riprovare?" Poiché non hai ancora configurato l'azione in modo che comprenda e risponda all'input "Sì" o "No", l'azione associa il tuo input a un intent NO_MATCH.

Per impostazione predefinita, l'intent di sistema NO_MATCH fornisce risposte generiche, ma puoi personalizzarle per indicare all'utente che non hai compreso il suo input. L'assistente termina la conversazione dell'utente con la tua azione dopo che non riesce a trovare una corrispondenza con l'input dell'utente per tre volte.

Aggiungi intent yes e no

Ora che gli utenti possono rispondere alla domanda posta dall'azione, puoi configurarla in modo che comprenda le risposte degli utenti ("Sì" o "No"). Nelle sezioni seguenti, crei intent utente che vengono abbinati quando l'utente dice "Sì" o "No" e aggiungi questi intent alla scena Start.

Crea intent yes

Per creare l'intent yes:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Fai clic su Intent personalizzati nella barra di navigazione per aprire l'elenco degli intent.
  3. Fai clic sul segno più (+) alla fine dell'elenco di intent.
  4. Assegna un nome al nuovo intent yes e premi Enter.
  5. Fai clic sull'intent yes per aprire la pagina dell'intent yes.
  6. Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
  • Yes
  • Y
  • I would
  • Tell me

98440276cb9e7de8.png

  1. Fai clic su Salva.

Aggiungi l'intent yes alla scena Start

Ora l'Azione può comprendere quando un utente esprime l'intenzione di rispondere "sì". Puoi aggiungere l'intent utente yes alla scena Start perché l'utente sta rispondendo al prompt Start ("Prima di continuare la tua missione, vuoi conoscere il tuo futuro?").

Per aggiungere questo intent utente alla scena Start:

  1. Fai clic sulla scena Inizio nella barra di navigazione.
  2. Fai clic su + (segno più) nella scena Start accanto a Gestione dell'intent dell'utente.
  3. Seleziona nel menu a discesa Intento.

681928e3d71abdbf.png

  1. Fai clic su Invia prompt e aggiorna il campo speech con il seguente testo: Your future depends on the aid you choose to use for your quest. Choose wisely! Farewell, stranger.

Il codice nell'editor dovrebbe essere simile al seguente snippet:

candidates:
  - first_simple:
      variants:
        - speech: >-
            Your future depends on the aid you choose to use for your quest. Choose
            wisely! Farewell, stranger.
  1. Nella sezione Transizione, fai clic sul menu a discesa e seleziona Termina conversazione.
  2. Fai clic su Salva.

Testa l'intent yes nel simulatore

A questo punto, l'azione capisce quando l'utente vuole ascoltare la sua fortuna e restituisce la risposta appropriata.

Per testare questo intent nel simulatore:

  1. Nella barra di navigazione, fai clic su Test.
  2. Per testare l'Azione nel simulatore, digita Talk to my test app nel campo Input e premi Enter.
  3. Digita Yes nel campo Input e premi Enter. In alternativa, fai clic sul chip di suggerimento .

f131998710d8ffd8.png

L'azione risponde all'utente e gli dice che la sua fortuna dipende dall'aiuto che sceglie. L'azione termina la sessione perché hai selezionato la transizione End conversation per l'intent yes.

Crea intent no

Ora devi creare l'intent no per comprendere e rispondere all'utente quando non vuole conoscere la sua fortuna. Per creare questo intent, segui questi passaggi:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Fai clic su Intent personalizzati nella barra di navigazione per aprire l'elenco degli intent.
  3. Fai clic sul segno più (+) alla fine dell'elenco di intent.
  4. Assegna un nome al nuovo intent no e premi Enter.
  5. Fai clic su No per aprire la pagina dell'intent **no**.
  6. Nella sezione Aggiungi frasi di addestramento, fai clic nella casella di testo Inserisci frase e inserisci le seguenti frasi:
  • No
  • N
  • I don't want
  • nope

2e7b8fd57eac94c5.png

  1. Fai clic su Salva.

Aggiungi l'intent no alla scena Start

Ora, l'azione può capire quando un utente esprime un "no" o qualcosa di simile a "no", come "no". Devi aggiungere l'intent utente no alla scena Start perché l'utente sta rispondendo al prompt Start ("Prima di continuare la tua missione, vuoi conoscere il tuo futuro?").

Per aggiungere questo intent per la scena Start:

  1. Fai clic sulla scena Inizio nella barra di navigazione.
  2. Fai clic su + (segno più) nella scena Start accanto a Gestione dell'intent dell'utente.
  3. Nella sezione Scopo, seleziona No nel menu a discesa.

4aa558abdecb3121.png

  1. Fai clic su Invia prompt.
  2. Aggiorna il campo speech con il seguente testo: I understand, stranger. Best of luck on your quest! Farewell.

Il codice nell'editor dovrebbe essere simile al seguente snippet:

 candidates:
  - first_simple:
      variants:
        - speech: >-
             I understand, stranger. Best of luck on your quest! Farewell.
  1. Nella sezione Transizione, seleziona Termina conversazione dal menu a discesa.
  2. Fai clic su Salva.

Testa l'intent no nel simulatore

A questo punto, l'azione capisce quando l'utente non vuole sentire la sua fortuna e restituisce la risposta appropriata.

Per testare questo intent nel simulatore:

  1. Nella barra di navigazione, fai clic su Test.
  2. Digita Talk to my test app nel campo Input e premi Enter.
  3. Digita No nel campo Input e premi Enter. In alternativa, fai clic sul chip di suggerimento No.

c0c8b04066577eb2.png

Invece di dare all'utente la sua fortuna, l'azione gli augura buona fortuna per il suo viaggio. L'azione termina la sessione perché hai selezionato la transizione End conversation per l'intent no.

5. Implementare l'evasione

Al momento, le risposte dell'Azione sono statiche: quando viene attivata una scena contenente un prompt, l'Azione invia lo stesso prompt ogni volta. In questa sezione, implementerai il fulfillment che contiene la logica per costruire una risposta conversazionale dinamica.

L'intent di fulfillment identifica se l'utente è un utente di ritorno o un nuovo utente e modifica il messaggio di saluto dell'azione per gli utenti di ritorno. Il messaggio di saluto viene abbreviato per gli utenti di ritorno e riconosce il ritorno dell'utente: "Un saluto meraviglioso, avventuriero! Bentornato nella terra mitica di Gryffinberg."

Per questo codelab, utilizza l'editor di Cloud Functions nella console Azioni per modificare ed eseguire il deployment del codice di evasione.

L'azione può attivare webhook che notificano l'adempimento di un evento che si verifica durante un'invocazione o parti specifiche dell'esecuzione di una scena. Quando viene attivato un webhook, l'azione invia una richiesta con un payload JSON al fulfillment insieme al nome del gestore da utilizzare per elaborare l'evento. Questo gestore esegue una logica e restituisce una risposta JSON corrispondente.

Crea il tuo fulfillment

Ora puoi modificare l'evasione nell'editor in linea per generare prompt diversi per gli utenti di ritorno e per i nuovi utenti quando richiamano l'azione.

Per aggiungere questa logica all'evasione, segui questi passaggi:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Fai clic sulla scheda Webhook nella barra di navigazione.
  3. Seleziona la casella di controllo Funzioni Cloud inline.
  4. Fai clic su Conferma. Il codice boilerplate viene aggiunto automaticamente per i file index.js e package.json.

d4702f1de6404285.png

  1. Sostituisci i contenuti di index.js con il seguente codice:

index.js

const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');

const app = conversation({debug: true});

app.handle('greeting', conv => {
 let message = 'A wondrous greeting, adventurer! Welcome back to the mythical land of Gryffinberg!';
 if (!conv.user.lastSeenTime) {
   message = 'Welcome to the mythical land of  Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you\'re on your way to an epic journey.';
 }
 conv.add(message);
});


exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
  1. Fai clic su Salva adempimento.
  2. Fai clic su Esegui il deployment dell'evasione.

Attendi un paio di minuti affinché Cloud Functions esegua il provisioning e il deployment del fulfillment. Sopra l'editor di codice dovrebbe essere visualizzato il messaggio Deployment di Cloud Functions in corso…. Quando il deployment del codice viene eseguito correttamente, il messaggio viene aggiornato a Il deployment di Cloud Functions è aggiornato.

comprendi il codice

Il fulfillment, che utilizza la libreria di fulfillment di Azioni su Google per Node.js, risponde alle richieste HTTP dell'Assistente Google.

Nel precedente snippet di codice, definisci il gestore greeting, che controlla se l'utente ha visitato in precedenza l'azione controllando la proprietà lastSeenTime. Se lastSeenTime non è definito, l'utente è nuovo e l'handler greeting fornisce il saluto per i nuovi utenti.

Aggiorna la chiamata principale per attivare un webhook

Ora che hai definito la funzione greeting, puoi configurare il gestore di eventi greeting nell'intent di chiamata principale in modo che l'azione sappia di dover chiamare questa funzione quando l'utente la richiama.

Per configurare l'azione in modo che chiami il nuovo gestore greeting, segui questi passaggi:

  1. Fai clic su Richiamo principale nella barra di navigazione.
  2. Deseleziona Invia prompt.
  3. Seleziona la casella di controllo Chiama il webhook.
  4. Aggiungi greeting nella casella di testo.

a803afe4f7375a97.png

  1. Fai clic su Salva.

Testa l'invocazione principale aggiornata nel simulatore

Per testare l'azione nel simulatore:

  1. Nella barra di navigazione, fai clic su Test per accedere al simulatore.
  2. Digita Talk to my test app nel campo Input e premi Enter.

Poiché hai testato l'azione in precedenza in questo codelab, non sei un nuovo utente, quindi ricevi il seguente saluto abbreviato: "Un saluto meraviglioso, avventuriero! Bentornato nella terra mitica di Gryffinberg…"

Pulire il progetto [consigliato]

Per evitare possibili addebiti, ti consigliamo di rimuovere i progetti che non intendi utilizzare. Per eliminare i progetti che hai creato in questo codelab:

  1. Per eliminare il progetto Cloud e le risorse, completa i passaggi elencati nella sezione Chiusura (eliminazione) dei progetti.
  1. (Facoltativo) Per rimuovere immediatamente il progetto dalla console di Actions, completa i passaggi elencati nella sezione Eliminare un progetto. Se non completi questo passaggio, il tuo progetto verrà rimosso automaticamente dopo circa 30 giorni.

6. Complimenti!

Conosci le nozioni di base per creare azioni per l'Assistente Google.

Argomenti trattati

  • Come configurare un progetto Actions con la console Actions
  • Come aggiungere un prompt all'invocazione principale in modo che gli utenti possano avviare una conversazione con la tua Azione
  • Come creare un'interfaccia conversazionale con scene, intent, transizioni, chip di suggerimento e completamento
  • Come testare l'azione con il simulatore di Actions

Scopri di più

Esplora le seguenti risorse per scoprire di più sulla creazione di Azioni per l'Assistente Google:

Sondaggio di opinione

Prima di andare, compila un breve sondaggio sulla tua esperienza.