Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
L'Azione può inviare notifiche push agli utenti quando sono pertinenti, ad esempio inviando un promemoria quando si avvicina la data di scadenza per un'attività.
Questa guida descrive come configurare le notifiche push per l'Azione.
Piattaforme supportate
Le notifiche push sono disponibili sui dispositivi Android e iOS (per ricevere le notifiche push, sui dispositivi iOS deve essere installata l'app dell'assistente). Al momento non sono supportati su speaker ad attivazione vocale, smart display o altre piattaforme.
Prerequisiti
Il progetto deve contenere almeno un intent globale, che viene richiamato quando l'utente tocca una notifica push ricevuta dall'assistente.
Inizia
Le seguenti sezioni descrivono come impostare le notifiche push nell'Azione.
Crea un intent per l'attivazione
L'intent che crei in questa sezione attiva il flusso delle notifiche. Per creare
questo intent:
Fai clic su Intent nel menu a sinistra per espandere la sezione.
Fai clic sulla add_circle_outline in fondo all'elenco e inserisci un nome per il nuovo intent.
Premi Enter/Return per creare il nuovo intent.
Aggiungi frasi di addestramento per attivare il flusso di notifiche. Ecco alcuni esempi:
Notify me
Send notifications
Subscribe to notifications
Fai clic su Salva.
Transizione all'intent di sistema
Per configurare la transizione alla scena di sistema Notifications:
In Scene, nel menu a sinistra, fai clic sulla scena a cui vuoi aggiungere il flusso di iscrizione alle notifiche.
Nella sezione Gestione dell'intent utente della scena, fai clic su + per aggiungere un nuovo gestore di intent.
In Intent, seleziona l'intent che hai creato nella sezione precedente.
In Transizione, seleziona la scena di sistema Notifiche.
Fai clic su Salva.
Configura scena di sistema
Per configurare la scena di sistema Notifications, segui questi passaggi:
In Scene nel menu a sinistra, seleziona la nuova scena di sistema Notifiche.
Nella sezione Configura intent, fai clic su Seleziona intent.
Nella sezione Seleziona intent, seleziona l'intent che deve corrispondere quando un utente tocca una notifica push.
In Personalizza la richiesta di attivazione, inserisci una richiesta da mostrare agli utenti quando viene chiesto loro di iscriversi alle notifiche push. Il messaggio ha il seguente formato: "Is it ok if I send push notifications for $prompt" (va bene se invio notifiche push per $prompt).
Fai clic su Salva.
Configura l'attivazione
Per configurare l'attivazione delle notifiche push, procedi nel seguente modo:
In Scene, seleziona la scena di sistema Notifiche.
In Condizioni, seleziona Se l'utente dice "sì".
Attiva Chiama il webhook e fornisci un nome per il gestore di eventi, ad esempio subscribe_to_notifications.
Attiva l'opzione Invia prompt e fornisci un messaggio semplice per far sapere all'utente che riceveranno notifiche:
In Transizione, seleziona Termina conversazione per terminare la conversazione dopo che l'utente si è iscritto alle notifiche.
Configura la disattivazione
Per configurare la disattivazione delle notifiche push, segui questi passaggi:
In Condizioni, seleziona Se l'utente dice "no".
Attiva l'opzione Invia prompt e fornisci un messaggio semplice per far sapere all'utente che non riceverà notifiche:
candidates:-firstsimple:variants:-speech:Okay,Iwon't send you notifications.
In Transizione, seleziona Termina conversazione per terminare la conversazione dopo che un utente ha disattivato le notifiche.
Configura webhook
Per configurare il webhook, segui questi passaggi:
Nel webhook, aggiungi un gestore di intent per l'archiviazione di updatesUserId:
app.handle('subscribe_to_notifications',conv=>{constintentName='<name_of_intent_to_trigger>';constnotificationsSlot=conv.session.params['NotificationSlot_${intentName}'];if(notificationsSlot.permissionStatus=='PERMISSION_GRANTED'){constupdateUserId=notificationsSlot.additionalUserData.updateUserId;//StoretheuserIDandthenotification's target intent for later use.//(Useadatabase,likeFirestore,forbestpractice.)}});
Invia notifiche
Le notifiche push vengono inviate agli utenti utilizzando l'API Actions. Per utilizzare questa API, devi attivarla nel tuo progetto Google Cloud e configurare e scaricare una chiave dell'account di servizio JSON.
Puoi quindi utilizzare la libreria client OAuth2 di Google per scambiare la chiave dell'account di servizio con un token di accesso e utilizzare il token per autenticare le tue richieste all'API Actions.
Generazione di una chiave dell'account di servizio
Vai alla console API di Google e seleziona il tuo progetto dal menu a discesa Seleziona un progetto.
Fai clic su Abilita per abilitare l'API Actions per il progetto.
Fai clic su Crea credenziali > Account di servizio.
Inserisci un nome per l'account di servizio e fai clic su Crea.
Nel menu a discesa Seleziona un ruolo, seleziona Progetto > Proprietario.
Fai clic su Continua.
Fai clic su Crea chiave per scaricare il file JSON dell'account di servizio.
Scambia la chiave con un token di accesso e invia una notifica
Per inviare notifiche push tramite l'API Actions, devi scambiare la chiave dell'account di servizio con un token di accesso. A questo scopo, consigliamo di utilizzare una libreria client API di Google. Nella serie di snippet di codice che segue, utilizziamo la libreria client Node.js dell'API di Google.
Installa la libreria client dell'API di Google e richiedi:
npm install googleapis request --save
Utilizza il codice seguente per ottenere un token di accesso dalla chiave dell'account di servizio e inviare una notifica push:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-25 UTC."],[[["\u003cp\u003ePush notifications can be sent to Android and iOS users to provide timely reminders or updates from your Action.\u003c/p\u003e\n"],["\u003cp\u003eYou need to create a global intent that will be triggered when the user interacts with the notification.\u003c/p\u003e\n"],["\u003cp\u003eUsers must explicitly opt-in to receive push notifications through a prompt within your Action.\u003c/p\u003e\n"],["\u003cp\u003eSending notifications requires using the Actions API with a service account key for authentication.\u003c/p\u003e\n"],["\u003cp\u003eStore the \u003ccode\u003eupdatesUserId\u003c/code\u003e securely to target specific users with notifications.\u003c/p\u003e\n"]]],[],null,["# Push notifications\n\nYour Action can push notifications to users whenever relevant, such as sending a reminder when the due date for a task is near.\n\nThis guide describes how to set up push notifications for your Action.\n\nSupported surfaces\n------------------\n\nPush notifications are available on Android and iOS devices (iOS devices must have the Assistant app installed to receive push notifications). They are not currently supported on voice-activated speakers, smart displays, or other surfaces.\n\nPrerequisites\n-------------\n\nYour project must contain at least one [global intent](/assistant/conversational/intents#custom_intents), which is invoked when the user taps a push notification received from Assistant.\n\nGet started\n-----------\n\nThe following sections describe how to set up push notifications in your Action.\n\n### Create an intent for triggering\n\nThe intent you create in this section triggers the notifications flow. To create\nthis intent, follow these steps:\n\n1. Go to the [Actions console](//console.actions.google.com/) and click **Develop** in the top menu.\n2. Click **Intents** in the left menu to expand the section.\n3. Click the add_circle_outline at the bottom of the list and enter a name for the new intent.\n4. Press `Enter/Return` to create the new intent.\n5. Add training phrases for triggering the notifications flow. Some examples are:\n\n - `Notify me`\n - `Send notifications`\n - `Subscribe to notifications`\n6. Click **Save**.\n\n### Transition to system intent\n\nTo set up the transition to the `Notifications` system scene, follow these steps:\n\n1. Under **Scenes** in the left menu, click the scene you want to add the notifications subscription flow to.\n2. Under the **User intent handling** section of the scene, click **+** to add a new intent handler.\n3. Under **Intent**, select the intent you created in the previous section.\n4. Under **Transition** , select the **Notifications** system scene.\n\n5. Click **Save**.\n\n### Configure system scene\n\nTo configures the `Notifications` system scene, follow these steps:\n\n1. Under **Scenes** in the left menu, select the new **Notifications** system scene.\n2. Under the **Configure intent** section, click **Select intent**.\n3. Under the **Select intent** section, select the intent you want to be matched when a user taps a push notification.\n\n | **Note:** The intent you choose for this step needs to be a global intent.\n4. For **Customize opt-in prompt**, enter a prompt that is displayed to users when they're asked to subscribe to push notifications. The prompt is in the form of \"Is it ok if I send push notifications for $prompt\".\n\n5. Click **Save**.\n\n### Configure opt-in\n\nTo configure opting in to push notifications, follow these steps:\n\n1. Under **Scenes** , select the **Notifications** system scene.\n2. Under **Conditions** , select **If the user says \"yes\"**.\n3. Enable **Call your webhook** and provide an event handler name, such as `subscribe_to_notifications`.\n4. Enable **Send prompts** and provide a simple prompt to let the user know they'll be sent notifications:\n\n candidates:\n - first simple:\n variants:\n - speech: 'Great, I'll send you notifications.'\n\n5. Under **Transition** , select **End conversation** to end the conversation after a user subscribes to notifications.\n\n### Configure opt-out\n\nTo configure opting out of push notifications, follow these steps:\n\n1. Under **Conditions** , select **If the user says \"no\"**.\n2. Enable **Send prompts** and provide a simple prompt to let the user know they won't be sent notifications:\n\n candidates:\n - first simple:\n variants:\n - speech: Okay, I won't send you notifications.\n\n3. Under **Transition** , select **End conversation** to end the conversation after a user opts out of notifications.\n\n### Configure webhook\n\nTo configure your webhook, follow these steps:\n\n1. In your webhook, add an intent handler for storing the `updatesUserId`:\n\n app.handle('subscribe_to_notifications', conv =\u003e {\n const intentName = '\u003cname_of_intent_to_trigger\u003e';\n const notificationsSlot = conv.session.params['NotificationSlot_${intentName}'];\n if(notificationsSlot.permissionStatus == 'PERMISSION_GRANTED') {\n const updateUserId = notificationsSlot.additionalUserData.updateUserId;\n // Store the user ID and the notification's target intent for later use.\n // (Use a database, like Firestore, for best practice.)\n }\n });\n\nSend notifications\n------------------\n\nPush notifications are sent to users using the Actions API. To use this API, you need to activate the API in your Google Cloud project and set up and download a JSON service account key.\n\nYou can then use the Google OAuth2 client library to exchange the service account key for an access token and use the token to authenticate your requests to the Actions API.\n\n### Get a service account key\n\n1. Go to the [Google API console](//console.developers.google.com/apis/api/actions.googleapis.com/overview) and select your project from the **Select a project** dropdown.\n2. Click **Enable** to enable the Actions API for your project.\n3. Go to the [Google Cloud console credentials page](//console.developers.google.com/apis/credentials) and select your project from the **Select a project** dropdown.\n4. Click **Create credentials \\\u003e Service account**.\n5. Enter a service account name and click **Create**.\n6. From the **Select a role** dropdown, select **Project \\\u003e Owner**.\n7. Click **Continue**.\n8. Click **Create key** to download the service account JSON file.\n\n### Exchange the key for an access token and send a notification\n\nTo send push notifications through the Actions API, you need to exchange the service account key for an access token. We recommend using a Google API client library for this. In the series of code snippets that follow, we use the Google API Node.js client library.\n\n1. Install the Google API client library and request:\n\n `npm install googleapis request --save`\n2. Use the following code to get an access token from the service account key and send a push notification:\n\n // Use the Actions API to send a Google Assistant push notification.\n let client = auth.fromJSON(require('./service-account.json'));\n client.scopes = ['https://www.googleapis.com/auth/actions.fulfillment.conversation'];\n let notification = {\n userNotification: {\n title: 'Example notification title',\n },\n target: {\n userId: '\u003cUPDATES_USER_ID\u003e',\n intent: 'Notifications Intent',\n },\n };\n client.authorize((err, tokens) =\u003e {\n if (err) {\n throw new Error('Auth error: ${err}');\n }\n request.post('https://actions.googleapis.com/v2/conversations:send', {\n 'auth': {\n 'bearer': tokens.access_token,\n },\n 'json': true,\n 'body': {'customPushMessage': notification, 'isInSandbox': true},\n }, (err, httpResponse, body) =\u003e {\n if (err) {\n throw new Error('API request error: ${err}');\n }\n console.log('${httpResponse.statusCode}: ' + '${httpResponse.statusMessage}');\n console.log(JSON.stringify(body));\n });\n });"]]