Se l'Azione offre valore agli utenti ogni giorno, offri loro un promemoria per utilizzarla configurando gli aggiornamenti giornalieri. Quando un utente si iscrive agli aggiornamenti giornalieri dell'Azione, riceve una notifica push che può toccare per richiamare uno degli intent dell'Azione.
L'esperienza utente di questi aggiornamenti è la seguente:
- L'utente richiama uno degli intent dell'Azione che hai configurato come aggiornamento giornaliero.
- L'utente segue la richiesta di iscriversi agli aggiornamenti giornalieri. Questo prompt viene fornito durante una conversazione o sotto forma di chip di suggerimento al termine della conversazione.
- L'utente programma un'ora del giorno in cui vuole ricevere il tuo aggiornamento giornaliero, registrandolo con l'Assistente Google.
- Ogni giorno all'ora programmata, l'utente riceve una notifica dell'assistente sul proprio dispositivo mobile.
- Quando l'utente apre questa notifica, richiama l'intent che hai configurato come aggiornamento giornaliero e interagisce con l'Azione.
Per impostazione predefinita, la richiesta di registrazione all'aggiornamento giornaliero viene visualizzata come chip di suggerimento quando l'utente esce dall'Azione correttamente. Puoi anche aggiungere una richiesta di registrazione durante una conversazione o personalizzare gli aggiornamenti dell'utente.
Casi d'uso
Gli aggiornamenti giornalieri possono essere un utile strumento di coinvolgimento, ma non devono essere incorporati in ogni Azione. Prendi in considerazione questi suggerimenti per decidere se aggiungere iscrizioni di aggiornamento giornaliere a un'azione:
- Assicurati che gli aggiornamenti giornalieri consentano all'utente di vedere ogni giorno informazioni diverse e utili. Se toccando un aggiornamento giornaliero viene visualizzata la stessa richiesta ogni volta, l'utente probabilmente annullerà l'iscrizione dopo un paio di giorni.
- Assicurati che la finestra di dialogo abbia senso per l'utente se va direttamente all'intenzione dell'aggiornamento giornaliero. L'utente non partirà necessariamente dall'inizio della conversazione, perciò non dovrebbe aspettarsi molto contesto.
- Mostra all'utente i vantaggi dell'Azione prima di chiedere di registrarsi per ricevere aggiornamenti giornalieri. L'utente dovrebbe pensare "Voglio questi contenuti ogni giorno" quando gli viene offerta la possibilità di abbonarsi.
- Non sovraccaricare l'utente con ripetuti suggerimenti di registrazione. Offri un abbonamento di aggiornamento giornaliero subito dopo aver mostrato all'utente a cosa era iscritto ed evita di ripetere l'offerta in altri contesti.
- Mantieni la conversazione breve dopo l'attivazione dell'intent di aggiornamento. La maggior parte degli aggiornamenti giornalieri dovrebbe consistere in un'unica risposta e poi chiudersi senza richiedere l'input dell'utente.
Configura aggiornamenti giornalieri
Esplora in Dialogflow
Fai clic su Continua per importare il nostro esempio di aggiornamenti giornalieri in Dialogflow. Quindi, segui questi passaggi per eseguire il deployment e testare l'esempio:
- Inserisci il nome di un agente e crea un nuovo agente Dialogflow per l'esempio.
- Al termine dell'importazione dell'agente, fai clic su Vai all'agente.
- Nel menu di navigazione principale, vai ad Fulfillment.
- Attiva l'editor incorporato, quindi fai clic su Esegui il deployment. L'editor contiene il codice di esempio.
- Nel menu di navigazione principale, vai a Integrazioni, quindi fai clic su Assistente Google.
- Nella finestra modale visualizzata, attiva Anteprima automatica delle modifiche e fai clic su Test per aprire il simulatore di azioni.
- Nel simulatore, inserisci
Talk to my test app
per testare il campione.
Per configurare un intent dell'Azione per gli aggiornamenti giornalieri, segui queste istruzioni:
1. Preparare un intent di aggiornamento
Configura uno degli intent dell'azione come intent di attivazione. Questo intent consente di inviare un aggiornamento giornaliero agli utenti; quando un utente apre la notifica di aggiornamento giornaliera, l'intent si attiva e la conversazione prosegue da lì.
Per definire un intent di attivazione in Dialogflow:
- Nella console Dialogflow, fai clic su Integrazioni.
- Nella sezione Assistente Google, fai clic su Impostazioni dell'integrazione.
- In Rilevamento > Chiamata implicita, fai clic su Aggiungi intent e seleziona l'intent di attivazione, se non è già presente.
- Attiva l'opzione Anteprima automatica, se non è già abilitata.
- Fai clic su Chiudi.
Nell'SDK Actions, definisci l'intent di aggiornamento come intent di attivazione nel pacchetto Azioni.
2. Attiva aggiornamenti
Per attivare gli aggiornamenti giornalieri per l'intent di attivazione:
- Nella console di Actions, vai a Sviluppo > Azioni.
- Seleziona l'intento di attivazione. Se l'intent non viene visualizzato nell'elenco, assicurati che sia configurato come intent di attivazione e che l'integrazione con l'assistente di Dialogflow sia impostata in modo da visualizzare l'anteprima automatica delle modifiche.
- Scorri verso il basso fino alla sezione Coinvolgimento degli utenti e attiva l'opzione Vuoi offrire aggiornamenti giornalieri agli utenti.
- Inserisci un Titolo contenuti.
- Fai clic su Salva.
Ora hai configurato l'Azione in modo che offra iscrizioni di aggiornamento giornaliere per un intent. Ora puoi testare gli aggiornamenti giornalieri sul tuo dispositivo mobile.
Personalizza la registrazione all'aggiornamento (facoltativo)
Oltre al chip di suggerimenti e al flusso di registrazione degli aggiornamenti giornalieri gestito dall'assistente, iscrivi gli utenti agli aggiornamenti giornalieri con la tua finestra di dialogo e la tua richiesta di registrazione.
Per un esempio completo di un'azione che gestisce le funzionalità facoltative di aggiornamento giornaliero, consulta gli esempi di coinvolgimento degli utenti di Actions on Google (Node.js e Java).
Per aggiungere alla conversazione una richiesta di registrazione degli aggiornamenti giornalieri personalizzata, segui queste istruzioni:
1. Aggiungi richiesta di registrazione
Aggiungi una finestra di dialogo e un chip di suggerimenti alla conversazione quando vuoi invitare gli utenti a iscriversi agli aggiornamenti giornalieri. Offri queste richieste dopo che l'utente ha interagito con l'intento di aggiornamento, in modo che comprenda i contenuti dei tuoi aggiornamenti giornalieri.
Il codice di esempio seguente richiede a un utente di abbonarsi agli aggiornamenti giornalieri che offrono la temperatura prevista più bassa ogni giorno:
app.intent('Daily Lowest Temperature', (conv, params) => { const today = DAYS[new Date().getDay()]; const lowestTemperature = lowestTemperatures[today]; conv.ask(`The lowest temperature for today is ${lowestTemperature}`); conv.ask('I can send you daily updates with the lowest temperature' + ' of the day. Would you like that?'); conv.ask(new Suggestions('Send daily updates')); });
@ForIntent("Daily Lowest Temperature") public ActionResponse dailyLowestTemperature(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); Integer lowestTemperature = LOWEST_TEMPERATURES.get(LocalDate.now().getDayOfWeek()); responseBuilder .add("The lowest temperature for today is " + lowestTemperature + " degrees Fahrenheit.") .add("I can send you daily updates with the lowest temperature of " + "the day. Would you like that?") .addSuggestions(new String[] { "Send daily updates" }); return responseBuilder.build(); }
Tieni presente che il JSON di seguito descrive una risposta webhook.
{ "payload": { "google": { "expectUserResponse": true, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "The lowest temperature for today is 75 degrees Fahrenheit" } }, { "simpleResponse": { "textToSpeech": "I can send you daily updates with the lowest temperature of the day. Would you like that?" } } ], "suggestions": [ { "title": "Send daily updates" } ] } } } }
Tieni presente che il JSON di seguito descrive una risposta webhook.
{ "expectUserResponse": true, "expectedInputs": [ { "possibleIntents": [ { "intent": "actions.intent.TEXT" } ], "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "The lowest temperature for today is 75 degrees Fahrenheit" } }, { "simpleResponse": { "textToSpeech": "I can send you daily updates with the lowest temperature of the day. Would you like that?" } } ], "suggestions": [ { "title": "Send daily updates" } ] } } } ] }
2. Gestire la registrazione degli aggiornamenti
Configura un nuovo intent che si attiva quando l'utente segue la richiesta di registrazione. Nel fulfillment per questo nuovo intent, attiva l'intent integrato actions_intent_CONFIGURE_UPDATES
con i seguenti parametri:
intent
: imposta l'intent di aggiornamento che hai configurato.frequency
: imposta su "DAILY".
Il seguente codice registra gli aggiornamenti giornalieri per l'intent "Temperatura minima giornaliera":
app.intent('Subscribe to Daily Updates', (conv) => { conv.ask(new RegisterUpdate({ intent: 'Daily Lowest Temperature', frequency: 'DAILY', })); });
conv.ask(new RegisterUpdate({ intent: 'Daily Lowest Temperature', frequency: 'DAILY', }));
@ForIntent("Subscribe to Daily Updates") public ActionResponse subscribeToDailyUpdates(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); return responseBuilder.add(new RegisterUpdate() .setIntent("Daily Lowest Temperature") .setFrequency("DAILY")) .build(); }
ResponseBuilder responseBuilder = getResponseBuilder(request); return responseBuilder.add(new RegisterUpdate() .setIntent("Daily Lowest Temperature") .setFrequency("DAILY")) .build();
{ "payload": { "google": { "expectUserResponse": true, "systemIntent": { "intent": "actions.intent.REGISTER_UPDATE", "data": { "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec", "intent": "Daily Lowest Temperature", "triggerContext": { "timeContext": { "frequency": "DAILY" } } } } } } }
{ "expectUserResponse": true, "expectedInputs": [ { "possibleIntents": [ { "intent": "actions.intent.REGISTER_UPDATE", "inputValueData": { "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec", "intent": "Daily Lowest Temperature", "triggerContext": { "timeContext": { "frequency": "DAILY" } } } } ] } ] }
3. Gestire il risultato
L'assistente prende in carico la tua conversazione e guida l'utente attraverso il resto della configurazione degli aggiornamenti giornalieri. Al completamento della registrazione, l'assistente attiva un intent con un parametro che indica se la registrazione è riuscita o meno.
Le istruzioni per questo passaggio variano a seconda che utilizzi Dialogflow o l'SDK Actions per lo sviluppo.
Segui questi passaggi per creare un intent che gestisca il risultato della registrazione:
- Nella console Dialogflow, crea un nuovo intent.
- Aggiungi l'evento
actions_intent_REGISTER_UPDATE
. - Attiva il fulfillment webhook per l'intent.
- Fai clic su Salva.
registered
per il risultato e cambia la conversazione di conseguenza.
app.intent('Confirm Daily Updates Subscription', (conv, params, registered) => { if (registered && registered.status === 'OK') { conv.close(`Ok, I'll start giving you daily updates.`); } else { conv.close(`Ok, I won't give you daily updates.`); } });
@ForIntent("Confirm Daily Updates Subscription") public ActionResponse confirmDailyUpdatesSubscription(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); if (request.isUpdateRegistered()) { responseBuilder.add("Ok, I'll start giving you daily updates."); } else { responseBuilder.add("Ok, I won't give you daily updates."); } return responseBuilder.endConversation().build(); }
{ "payload": { "google": { "expectUserResponse": false, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "Ok, I'll start giving you daily updates." } } ] } } } }
Nel codice di fulfillment, aggiungi la gestione per l'intent integrato actions.intent.REGISTER.UPDATE
. Controlla il parametro registered
per il risultato
e passa la conversazione di conseguenza.
app.intent('actions.intent.REGISTER_UPDATE', (conv, params, registered) => { if (registered && registered.status === 'OK') { conv.close(`Ok, I'll start giving you daily updates.`); } else { conv.close(`Ok, I won't give you daily updates.`); } });
@ForIntent("actions.intent.REGISTER_UPDATE") public ActionResponse confirmDailyUpdatesSubscription(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); if (request.isUpdateRegistered()) { responseBuilder.add("Ok, I'll start giving you daily updates."); } else { responseBuilder.add("Ok, I won't give you daily updates."); } return responseBuilder.endConversation().build(); }
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "Ok, I'll start giving you daily updates." } } ] } } }
Personalizza gli aggiornamenti (facoltativo)
Per personalizzare l'intento di aggiornamento, aggiungi parametri personalizzati quando gli utenti registrano aggiornamenti giornalieri. Quando soddisfi l'intento di aggiornamento, fai riferimento a questi parametri per personalizzare l'aggiornamento giornaliero per l'utente.
Le istruzioni per questa funzionalità variano a seconda che utilizzi Dialogflow o l'SDK Actions per lo sviluppo.
Definisci un'entità Dialogflow per gestire i parametri personalizzati per l'aggiornamento, poi passa il valore del parametro come argomento per l'intent di aggiornamento. Per configurare aggiornamenti personalizzati in Dialogflow, segui questi passaggi:
- Nella console Dialogflow, crea una nuova entità.
- Aggiungi alcune voci e sinonimi pertinenti per il tuo parametro.
- Fai clic su Salva, quindi apri l'intent di aggiornamento.
- Nella sezione Azioni e parametri, imposta
actions.intent.CONFIGURE_UPDATES
come evento. Nella stessa sezione, aggiungi un parametro dello stesso tipo della nuova entità. - Apri l'intent "aggiorna registrazione" che gestisce l'intent integrato
CONFIGURE_UPDATES
. - Nella sezione Azioni e parametri, aggiungi un parametro obbligatorio e imposta il tipo sull'entità creata in precedenza.
- Aggiorna il codice di fulfillment dell'intent di registrazione in modo da includere un oggetto
arguments
con i seguenti contenuti:name
: il nome del parametro configurato in Dialogflow.textValue
: il valore del parametro.
Il codice seguente legge il valore del parametro e lo utilizza nella richiesta di registrazione di aggiornamento:
app.intent('setup_update', (conv) => { conv.ask(new RegisterUpdate({ intent: 'update_of_the_day', arguments: [ { name: 'category', textValue: 'Daily_lowest_temperature', }, ], frequency: 'DAILY', })); });
@ForIntent("setup_update") public ActionResponse setupUpdate2(ActionRequest request) { List<Argument> args = Arrays.asList( new Argument() .setName("category") .setTextValue(request.getParameter("category").toString())); return getResponseBuilder(request) .add(new RegisterUpdate().setIntent("intent_name").setArguments(args).setFrequency("DAILY")) .build(); }
{ "payload": { "google": { "expectUserResponse": true, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "PLACEHOLDER" } } ] }, "userStorage": "{\"data\":{}}", "systemIntent": { "intent": "actions.intent.REGISTER_UPDATE", "data": { "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec", "intent": "update_of_the_day", "arguments": [ { "name": "category", "textValue": "Daily_lowest_temperature" } ], "triggerContext": { "timeContext": { "frequency": "DAILY" } } } } } }, "outputContexts": [ { "name": "/contexts/_actions_on_google", "lifespanCount": 99, "parameters": { "data": "{}" } } ] }
Richiedi all'utente informazioni aggiuntive nel fulfillment dell'intent, poi passale come argomento a sostegno dell'intent di aggiornamento. Per configurare aggiornamenti personalizzati nell'SDK Actions, segui questi passaggi:
- Chiedi all'utente le informazioni che vuoi utilizzare per la personalizzazione.
- Nel codice di fulfillment per l'intent "update registration" che gestisce
CONFIGURE UPDATES
, includi un oggettoarguments
con i seguenti contenuti:name
: il nome dell'argomento.textValue
: informazioni dell'utente, da trasmettere come argomento.
Il seguente codice invia un argomento con la richiesta di aggiornamento della registrazione:
app.intent('actions.intent.TEXT', (conv) => { if (conv.input.raw === 'Send daily') { conv.ask(new RegisterUpdate({ intent: 'update_of_the_day', arguments: [ { name: 'category', textValue: 'Daily_lowest_temperature', }, ], frequency: 'DAILY', })); } });
@ForIntent("actions.intent.CONFIGURE_UPDATES") public ActionResponse configureUpdatesActionsSdk(ActionRequest request) { List<Argument> args = Arrays.asList( new Argument() .setName("category") .setTextValue(request.getParameter("category").toString())); return getResponseBuilder(request) .add(new RegisterUpdate().setIntent("intent_name").setArguments(args).setFrequency("DAILY")) .build(); } @ForIntent("actions.intent.TEXT") public ActionResponse text(ActionRequest request) { ResponseBuilder rb = getResponseBuilder(request); String input = request.getRawInput().getQuery(); if (input.equals("DAILY_NOTIFICATION_SUGGESTION")) { rb.add("For which category do you want to receive daily updates?"); } else { rb.add("Sorry, I didn't get that. Please try again later").endConversation(); } return rb.build(); }
{ "expectUserResponse": true, "expectedInputs": [ { "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "PLACEHOLDER" } } ] } }, "possibleIntents": [ { "intent": "actions.intent.REGISTER_UPDATE", "inputValueData": { "@type": "type.googleapis.com/google.actions.v2.RegisterUpdateValueSpec", "intent": "update_of_the_day", "arguments": [ { "name": "category", "textValue": "Daily_lowest_temperature" } ], "triggerContext": { "timeContext": { "frequency": "DAILY" } } } } ] } ], "conversationToken": "{\"data\":{}}", "userStorage": "{\"data\":{}}" }
Quando l'utente richiama l'aggiornamento giornaliero, l'intent di aggiornamento ora include gli argomenti contenenti i valori forniti dall'utente durante la registrazione. Utilizza questi valori per personalizzare l'aggiornamento per ogni utente.
Testa gli aggiornamenti giornalieri
Verifica gli aggiornamenti giornalieri usando un dispositivo mobile con l'Assistente Google utilizzando lo stesso Account Google che hai usato per creare l'Azione. Richiama l'Azione e iscriviti agli aggiornamenti giornalieri, quindi controlla le notifiche del dispositivo intorno all'ora di aggiornamento.