Se l'Azione apporta valore agli utenti ogni giorno, ricorda loro di per usarlo configurando aggiornamenti giornalieri. Quando un utente si abbona ogni giorno aggiornamenti per l'Azione, riceveranno una notifica push possibile tocca per richiamare uno degli intenti dell'azione.
L'esperienza di un utente con questi aggiornamenti è la seguente:
- L'utente richiama uno degli intent dell'Azione che hai configurato come aggiornamento giornaliero.
- L'utente segue una richiesta di iscrizione agli aggiornamenti giornalieri. Questo prompt è vengono forniti durante una conversazione o come chip di suggerimento al termine della conversazione.
- L'utente pianifica un'ora del giorno in cui desidera ricevere la tua aggiornamento, registrando l'aggiornamento con l'Assistente Google.
- L'utente riceve un assistente all'orario programmato di ogni giorno notifica sul dispositivo mobile.
- Quando l'utente apre questa notifica, richiama l'intent che configurato come aggiornamento giornaliero e interagire con l'Azione.
Per impostazione predefinita, la richiesta di aggiornamento giornaliero della registrazione viene visualizzata come chip di suggerimento quando l'utente chiude l'azione correttamente. Puoi anche aggiungere una conversazione a metà conversazione richiesta di registrazione o personalizzare gli aggiornamenti dell'utente.
Casi d'uso
Gli aggiornamenti giornalieri possono essere uno strumento di coinvolgimento utile ma non dovrebbero esserlo incorporato in ogni Azione. Considera questi suggerimenti per decidere se aggiungere aggiornano quotidianamente le iscrizioni a un'azione:
- Assicurati che gli aggiornamenti giornalieri facciano sì che l'utente veda informazioni diverse e utili informazioni ogni giorno. Se tocchi un aggiornamento giornaliero, viene visualizzato lo stesso messaggio è probabile che l'utente annulli l'iscrizione dopo un paio di giorni.
- Assicurati che la finestra di dialogo sia sensata per l'utente se passa direttamente al tuo l'intento di un aggiornamento quotidiano. L'utente non partirà necessariamente dall'inizio della conversazione, quindi non ci si aspetta che abbiano molto contesto.
- Mostra all'utente il vantaggio dell'azione prima di invitarlo a registrarsi per ricevere aggiornamenti giornalieri. L'utente dovrebbe pensare: "Voglio questi contenuti ogni giorno" quando viene offerta la possibilità di abbonarsi.
- Non sovraccaricare l'utente con suggerimenti ripetuti per la registrazione. Offri un aggiornamento giornaliero dell'abbonamento subito dopo aver mostrato all'utente i contenuti che vorrebbe sottoscrivere ed evitare di ripetere l'offerta in altri contesti.
- Mantieni la conversazione breve dopo l'attivazione dell'intento di aggiornamento. Più giornaliera gli aggiornamenti devono essere costituiti da una sola risposta e poi devono essere chiusi senza richiedono l'input dell'utente.
Imposta aggiornamenti giornalieri
Esplora in Dialogflow
Fai clic su Continua per importare il nostro campione di aggiornamenti giornalieri in Dialogflow. Poi segui le passaggi di seguito per eseguire il deployment e testare l'esempio:
- Inserisci il nome di un agente e crea un nuovo agente Dialogflow per il campione.
- Al termine dell'importazione, fai clic su Vai all'agente.
- Nel menu di navigazione principale, vai a Fulfillment.
- Attiva l'editor incorporato e fai clic su Esegui il deployment. L'editor contiene l'esempio le API nel tuo codice.
- Nel menu di navigazione principale, vai a Integrazioni, quindi fai clic su Google Assistente.
- Nella finestra modale che viene visualizzata, attiva Anteprima automatica delle modifiche e fai clic su Test. per aprire il simulatore delle azioni.
- Nel simulatore, inserisci
Talk to my test app
per testare il campione.
Per configurare uno degli intent dell'Azione per gli aggiornamenti giornalieri, segui questi istruzioni:
1. Prepara 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 l'aggiornamento giornaliero. notifica, l'intento si attiva e la conversazione continua 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 di integrazione.
- In Rilevamento > Chiamata implicita, fai clic su Aggiungi intent. e seleziona l'intento di attivazione, se non è già presente.
- Attiva l'opzione Anteprima automatica delle modifiche, se non è già abilitata.
- Fai clic su Chiudi.
Nell'SDK Actions, definisci l'intent di aggiornamento come intento di attivazione nel Pacchetto di azioni.
2. Abilita gli aggiornamenti
Per attivare gli aggiornamenti giornalieri per l'intento di attivazione:
- Nella console Actions, vai a Sviluppo > Azioni.
- Seleziona l'intento di attivazione. Se il tuo intent non compare nell'elenco, assicurati che sia configurato come intent di attivazione e come assistente di Dialogflow e l'integrazione è impostata per 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.
Hai configurato l'Azione in modo da offrire iscrizioni giornaliere ad aggiornamenti per un l'intento. Ora puoi testare gli aggiornamenti giornalieri sul tuo dispositivo mobile.
Personalizza la registrazione dell'aggiornamento (facoltativo)
Oltre al chip di suggerimento e all'aggiornamento giornaliero gestito dall'assistente flusso di registrazione, iscrivi gli utenti agli aggiornamenti giornalieri con una finestra di dialogo e una richiesta di registrazione.
Per un esempio completo di un'azione che gestisce le funzionalità di aggiornamento giornaliero facoltative, guarda gli esempi di coinvolgimento degli utenti di Actions on Google (Node.js e Java).
Per aggiungere una richiesta di registrazione di aggiornamento giornaliero personalizzata alla conversazione, segui queste istruzioni:
1. Aggiungi richiesta di registrazione
Aggiungi una finestra di dialogo e un chip di suggerimento alla conversazione quando vuoi inviare un prompt agli utenti di abbonarsi ad aggiornamenti giornalieri. Offri queste richieste dopo l'interazione dell'utente con il tuo intento di aggiornamento, in modo che comprendano i contenuti aggiornamenti.
Il codice di esempio riportato di seguito richiede all'utente di abbonarsi ad aggiornamenti giornalieri che offrire 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 codice JSON seguente 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 codice JSON seguente 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 registrazione
richiesta. Nel completamento per questo nuovo intent, attiva il actions_intent_CONFIGURE_UPDATES
intent integrato con
seguenti parametri:
intent
: impostato sull'intent di aggiornamento che hai configurato.frequency
- Imposta su "DAILY".
Il seguente codice registra aggiornamenti giornalieri per la "Temperatura minima giornaliera" intent:
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 della configurazione degli aggiornamenti giornalieri. Al termine della registrazione, l'assistente attiva un intent con un parametro che indica se la registrazione è stata completata o meno.
Le istruzioni per questo passaggio variano a seconda che utilizzi o meno Dialogflow o l'SDK Actions per lo sviluppo.
Per creare un intent che gestisca il risultato della registrazione:
- Nella console Dialogflow: creano 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 ruotare 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 evasione ordine, aggiungi la gestione per actions.intent.REGISTER.UPDATE
l'intent integrato. Controlla il parametro registered
per vedere il risultato.
e orientare 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." } } ] } } }
(Facoltativo) Personalizza gli aggiornamenti
Per personalizzare l'intenzione di aggiornamento, aggiungi parametri personalizzati quando gli utenti si registrano aggiornamenti quotidiani. Quando completi l'intent di aggiornamento, fai riferimento a questi parametri per personalizzare l'aggiornamento giornaliero per l'utente in questione.
Le istruzioni per questa funzionalità sono diverse a seconda che utilizzi o meno Dialogflow o l'SDK Actions per lo sviluppo.
Definisci un'entità Dialogflow per gestire i parametri personalizzati per l'aggiornamento, quindi usa il valore del parametro come argomento per l'intento di aggiornamento. Per configurare aggiornamenti personalizzati in Dialogflow, segui questi passaggi:
- Nella console di Dialogflow, crea una nuova entità.
- Aggiungi alcune voci e sinonimi pertinenti al parametro.
- Fai clic su Salva, poi apri l'intent di aggiornamento.
- Nella sezione Azioni e parametri, imposta
actions.intent.CONFIGURE_UPDATES
come evento. Nella stessa sezione, aggiungi un parametro con lo stesso tipo della nuova entità. - Apri "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 completamento 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 tuo parametro.
Il seguente codice legge il valore del parametro e lo utilizza nella richiesta di aggiornamento della registrazione:
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": "{}" } } ] }
Richiedere ulteriori informazioni all'utente nel completamento dell'intent. quindi passa le informazioni come argomento per l'intenzione di aggiornamento. Per impostare aggiornamenti personalizzati nell'SDK Actions, segui questi passaggi:
- Chiedere all'utente le informazioni che vuoi utilizzare personalizzazione.
- Nel codice di evasione degli ordini per "aggiornare la registrazione" l'intenzione che
gestisce
CONFIGURE UPDATES
include un oggettoarguments
con i seguenti contenuti:name
- Un nome per l'argomento.textValue
: informazioni dell'utente, da passare 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\":{}}" }
Ora, quando l'utente richiama il tuo aggiornamento giornaliero, il tuo intento di aggiornamento include argomenti contenenti i valori forniti dall'utente durante la registrazione. Utilizza questi i valori per personalizzare l'aggiornamento per ciascun utente.
Testa gli aggiornamenti giornalieri
Verifica gli aggiornamenti giornalieri usando un dispositivo mobile con l'Assistente Google usando 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 l'ora dell'aggiornamento.