Nutzer mit deiner Aktion für Google Assistant ansprechen

1. Übersicht

Actions on Google ist eine Entwicklerplattform, auf der Sie Software zum Erweitern der Funktionalität von Google Assistant, dem virtuellen persönlichen Assistenten von Google, für mehr als 1 Milliarde Geräte wie intelligente Lautsprecher, Smartphones, Fahrzeuge, Smart-TVs und Kopfhörer entwickeln können. Nutzer interagieren mit Assistant, um Dinge zu erledigen, z. B. Lebensmittel zu kaufen oder eine Fahrt zu buchen. Eine vollständige Liste der möglichen Aktionen finden Sie im Aktionsverzeichnis. Als Entwickler können Sie mit Actions on Google ganz einfach ansprechende und effektive Konversationsschnittstellen zwischen Nutzern und Ihrem Drittanbieterdienst erstellen und verwalten.

Dieses Codelab-Modul für Fortgeschrittene richtet sich an Leser, die bereits Erfahrung mit der Entwicklung von Actions für den Google Assistant haben. Wenn Sie noch keine Erfahrung mit der Entwicklung von Actions on Google haben, empfehlen wir Ihnen dringend, sich mit der Plattform vertraut zu machen, indem Sie unsere einführenden Codelabs ( Level 1, Level 2 und Level 3) durcharbeiten. In diesen erweiterten Modulen werden Sie durch eine Reihe von Funktionen geführt, mit denen Sie die Funktionalität Ihrer Action erweitern und Ihre Zielgruppe vergrößern können.

Eine wichtige Möglichkeit, den Erfolg einer Action zu messen, ist das Nutzer-Engagement. Es gibt Aufschluss darüber, wie effektiv die Action Nutzer nach der ersten Interaktion zurückbringt. Um das zu erleichtern, können Sie in Ihrer Aktion mehrere Funktionen implementieren, die Nutzern Möglichkeiten bieten, zur Unterhaltung zurückzukehren.

In diesem Codelab werden Funktionen zur Nutzerinteraktion und Best Practices für Actions on Google behandelt.

a3fc0061bd01a75.png 961ef6e27dc73da2.png

Aufgaben

Sie verbessern eine bereits entwickelte Funktion, indem Sie sie für Folgendes aktivieren:

  • Nutzern ein tägliches Update senden, auf das sie tippen können, um mit Ihrer Action zu sprechen
  • Push-Benachrichtigungen an Nutzer senden, die auf Ihre Action verweisen
  • Link erstellen, über den Nutzer über einen mobilen Webbrowser zu Ihrer Action gelangen

Lerninhalte

  • Was ist Nutzer-Engagement und warum ist es wichtig für den Erfolg einer Aktion?
  • Aktionen ändern, um das Nutzer-Engagement zu steigern
  • Welche Funktionen für das Nutzer-Engagement in verschiedenen Arten von Actions verwendet werden sollten
  • Benachrichtigungen über Assistant mit der Actions API senden

Voraussetzungen

Sie benötigen die folgenden Tools:

  • Eine IDE/ein Texteditor Ihrer Wahl, z. B. WebStorm, Atom oder Sublime
  • Ein Terminal zum Ausführen von Shell-Befehlen mit installiertem Node.js, npm und Git
  • Ein Webbrowser, z. B. Google Chrome
  • Eine lokale Entwicklungsumgebung mit dem Firebase-Befehlszeilentool
  • Ein Mobilgerät (Android oder iOS) mit Assistant (Sie müssen in Assistant mit demselben Google-Konto angemeldet sein, mit dem Sie dieses Projekt erstellen.)

Kenntnisse von JavaScript (ES6) sind ebenfalls dringend empfohlen, aber nicht erforderlich, um den Webhook-Code zu verstehen.

2. Projekt einrichten

In diesem Abschnitt erfahren Sie, wie Sie einer fertigen, zuvor erstellten Action Funktionen für Nutzer-Engagements hinzufügen.

Beispiel verstehen

Das Beispiel für dieses Codelab ist eine einfache Action für ein fiktives Fitnessstudio namens „Action Gym“. Die Aktion enthält Informationen zum Fitnessstudio, einschließlich einer Liste von Kursen, die täglich wechseln. Eine informative Aktion wie diese eignet sich gut für alle Funktionen zur Nutzerinteraktion, da die rotierende Klassenliste jeden Tag unterschiedliche nützliche Informationen liefert.

Das folgende Diagramm zeigt den Konversationsablauf des Action Gym-Beispiels:

e2d6e4ad98948cf3.png

Sie nehmen geringfügige Änderungen am Dialog vor, um ihn besser an die Interaktionsfunktionen anzupassen, die Sie hinzufügen. Das allgemeine Design der Unterhaltung ändert sich jedoch nicht wesentlich.

Basisdateien herunterladen

Führen Sie den folgenden Befehl aus, um das GitHub-Repository für das Codelab zu klonen:

git clone https://github.com/actions-on-google/user-engagement-codelab-nodejs

Projekt und Agent einrichten

So richten Sie Ihr Actions-Projekt und Ihren Dialogflow-Agent ein:

  1. Öffnen Sie die Actions Console.
  2. Klicken Sie auf Neues Projekt.
  3. Geben Sie einen Projektnamen ein, z. B. engagement-codelab.
  4. Klicke auf Projekt erstellen.
  5. Anstatt eine Kategorie auszuwählen, scrollen Sie zum Bereich Weitere Optionen und klicken Sie auf die Karte Konversation.
  6. Klicken Sie auf Build your Action, um die Optionen zu maximieren, und wählen Sie Add Action(s) aus.
  7. Klicken Sie auf Add Your First Action (Erste Aktion hinzufügen).
  8. Wählen Sie im Dialogfeld Aktion erstellen die Option Benutzerdefinierte Intention aus und klicken Sie dann auf Erstellen, um die Dialogflow-Konsole zu starten.
  9. Klicken Sie auf der Seite zur Erstellung von Agents in der Dialogflow-Konsole auf Create (Erstellen).
  10. Klicken Sie links in der Navigationsleiste auf das Zahnradsymbol 6bf56243a8a11a3b.png.
  11. Klicken Sie auf Exportieren und Importieren und dann auf Aus ZIP-Datei wiederherstellen.
  12. Laden Sie die Datei agent.zip aus dem zuvor heruntergeladenen Verzeichnis /user-engagement-codelab-nodejs/start/ hoch.
  13. Geben Sie RESTORE ein und klicken Sie auf Wiederherstellen.
  14. Klicken Sie auf Fertig.

Fulfillment bereitstellen

Nachdem Ihr Actions-Projekt und Ihr Dialogflow-Agent fertig sind, stellen Sie Ihre lokale index.js-Datei mit der Firebase Functions CLI bereit.

Führen Sie im Verzeichnis /user-engagement-codelab-nodejs/start/functions/ Ihres Basisdateien-Clones die folgenden Befehle aus:

firebase use <PROJECT_ID>
npm install
firebase deploy

Nach einigen Minuten sollte Bereitstellung abgeschlossen! angezeigt werden. Das bedeutet, dass Sie Ihren Webhook erfolgreich in Firebase bereitgestellt haben.

Bereitstellungs-URL abrufen

Sie müssen Dialogflow die URL der Cloud-Funktion zur Verfügung stellen. So rufen Sie diese URL ab:

  1. Öffnen Sie die Firebase Console.
  2. Wählen Sie Ihr Actions-Projekt aus der Liste der Optionen aus.
  3. Wählen Sie in der linken Navigationsleiste Entwickeln > Funktionen aus. Wenn Sie aufgefordert werden, die Einstellungen für die Datenfreigabe auszuwählen, können Sie diese Option ignorieren, indem Sie auf Später erledigen klicken.
  4. Auf dem Tab Dashboard sollte ein Eintrag für „Fulfillment“ mit einer URL unter Trigger angezeigt werden. Speichern Sie diese URL. Sie müssen sie im nächsten Abschnitt in Dialogflow kopieren.

1741a329947975db.png

Webhook-URL in Dialogflow festlegen

Jetzt müssen Sie Ihren Dialogflow-Agent aktualisieren, damit er Ihren Webhook für die Auftragsausführung verwendet. Gehen Sie dazu folgendermaßen vor:

  1. Öffnen Sie die Dialogflow-Konsole. Sie können die Firebase Console schließen.
  2. Klicken Sie in der linken Navigationsleiste auf Fulfillment (Auftragsausführung).
  3. Aktivieren Sie Webhook.
  4. Fügen Sie die URL ein, die Sie aus dem Firebase-Dashboard kopiert haben, falls sie noch nicht angezeigt wird.
  5. Klicken Sie auf Speichern.

Prüfen, ob Ihr Projekt richtig eingerichtet ist

Nutzer sollten Ihre Action aufrufen können, um Informationen zu Action Gym zu erhalten. Dazu gehören eine fest codierte Textantwort mit den Geschäftszeiten und eine Textantwort mit dem Kursplan für jeden Wochentag.

So testen Sie Ihre Aktion im Actions-Simulator:

  1. Klicken Sie in der linken Navigationsleiste der Dialogflow-Konsole auf Integrations > Google Assistant.
  2. Achten Sie darauf, dass Änderungen automatisch in der Vorschau ansehen aktiviert ist, und klicken Sie auf Testen, um Ihr Actions-Projekt zu aktualisieren.
  3. Im Actions-Simulator wird Ihr Actions-Projekt geladen. Geben Sie zum Testen Ihrer Aktion Talk to my test app in das Feld Eingabe ein und drücken Sie die Eingabetaste.
  4. Sie sollten eine Antwort sehen, in der Sie bei Action Gym willkommen geheißen werden. Folgen Sie den Aufforderungen, um die Unterhaltung fortzusetzen. Achten Sie dabei darauf, dass für jede Eingabe eine Antwort erfolgt.

60acf1ff87b1a87f.png

3. Tägliche Infos abonnieren

Eine gängige Methode, um Nutzer zu binden, besteht darin, ihnen Informationen anzubieten, wenn sie am nützlichsten sind. Dazu können Nutzer tägliche Updates für eine Intention abonnieren. Sie erhalten dann eine Assistant-Benachrichtigung mit einem Link, der direkt zur Ausführung dieser Intention führt.

In diesem Schritt erfahren Sie mehr über Abos für tägliche Updates und fügen sie dem Intent Class List Ihrer Aktion hinzu. Nachdem Sie diese Anleitung befolgt haben, sieht die Unterhaltung Ihrer Action so aus:

f48891c8118f7436.png

Wie werden Nutzer dadurch angesprochen?

Smartphone-Nutzer kennen wahrscheinlich Push-Benachrichtigungen, die app-spezifische Informationen und Updates liefern. Mit Abos für tägliche Updates können Sie Nutzer auf Mobilgeräten außerhalb von Assistant erreichen, sofern der Intent, für den Sie Updates senden, dem Nutzer weiterhin täglich einen Mehrwert bietet.

Tägliche Updates können ein nützliches Tool zur Interaktion sein, sollten aber nicht unbedingt in jede Action integriert werden. Berücksichtigen Sie die folgenden Tipps, wenn Sie entscheiden, ob Sie einer Aktion Abos für tägliche Updates hinzufügen möchten:

  • Die täglichen Updates sollten dem Nutzer jeden Tag unterschiedliche, nützliche Informationen liefern. Wenn das Tippen auf ein tägliches Update jedes Mal zur selben Aufforderung führt, wird der Nutzer wahrscheinlich nach ein paar Tagen das Abo kündigen.
  • Achten Sie darauf, dass Ihr Dialog für den Nutzer sinnvoll ist, wenn er direkt zum Intent für das tägliche Update springt. Nutzer beginnen nicht unbedingt am Anfang der Unterhaltung. Sie sollten daher nicht davon ausgehen, dass sie viel Kontext haben.
  • Machen Sie dem Nutzer den Vorteil Ihrer Action deutlich, bevor Sie ihn auffordern, tägliche Updates zu abonnieren. Wenn Nutzer die Option zum Abonnieren sehen, sollten sie denken: „Ich möchte diese Inhalte jeden Tag sehen.“
  • Überhäufen Sie den Nutzer nicht mit wiederholten Vorschlägen, ein Abo abzuschließen. Bieten Sie ein Abo für tägliche Updates direkt nach der Anzeige der Aboinhalte an und vermeiden Sie es, Nutzer an anderer Stelle damit zu belästigen.
  • Halten Sie die Unterhaltung kurz, nachdem der Intent „Aktualisieren“ ausgelöst wurde. Die meisten täglichen Updates sollten nur aus einer einzigen Antwort bestehen und dann geschlossen werden, ohne dass eine Nutzereingabe erforderlich ist.

Tägliche Updates aktivieren

Abonnements für tägliche Updates können dem Begrüßungs-Intent hinzugefügt werden, wodurch der Nutzer an den Anfang Ihrer Unterhaltung gelangt. Alternativ können Sie einen spezifischeren Intent verwenden, um ihn an eine bestimmte Stelle in der Unterhaltung weiterzuleiten. Für dieses Codelab ist der Intent Class List am sinnvollsten, da sich der Dialog jeden Tag ändert und Nutzer es möglicherweise nützlich finden, daran erinnert zu werden, welche Kurse verfügbar sind.

So aktivieren Sie tägliche Updates für den Intent Class List:

  1. Klicken Sie in der Actions Console auf den Tab Develop (Entwickeln) und wählen Sie in der linken Navigationsleiste Actions (Aktionen) aus.
  2. Klicken Sie in der Liste Aktionen auf Kursliste.
  3. Aktivieren oder deaktivieren Sie im Bereich Nutzerinteraktion die Option Möchten Sie Nutzern tägliche Updates anbieten?.
  4. Legen Sie einen aussagekräftigen Inhaltstitel fest, der das tägliche Update beschreibt. Der Kontext ist „Um wie viel Uhr soll ich dir deine tägliche… senden?“. Achte also darauf, dass der Titel sowohl aussagekräftig als auch gut vorlesbar ist. Legen Sie in diesem Beispiel den Content title (Inhaltstitel) auf list of upcoming Action Gym classes fest.
  5. Klicken Sie oben auf der Seite auf Speichern.

c00885cc30e14d68.png

Dialogflow einrichten

So erstellen Sie in der Dialogflow-Konsole Intents für den Abo-Vorgang für tägliche Updates:

Nutzer zum Abonnieren auffordern

  1. Richten Sie einen neuen Intent ein, um die Anfrage des Nutzers zu verarbeiten, tägliche Updates zu abonnieren. Klicken Sie in der Dialogflow-Konsole in der linken Navigationsleiste neben Intents auf das +, um einen neuen Intent zu erstellen.
  2. Geben Sie diesem neuen Intent den Namen Setup Updates.
  3. Fügen Sie im Abschnitt Trainingsformulierungen die folgenden Nutzerausdrücke hinzu:
  • Send daily reminders
  • Reminder
  • Remind me
  • Updates
  • Upcoming classes
  1. Aktivieren Sie im Abschnitt Fulfillment (Auftragsausführung) die Option Enable webhook call for this intent (Webhook-Aufruf für diesen Intent aktivieren).
  2. Klicken Sie oben auf der Seite auf Speichern.

5c70faa02151da0.png

Entscheidung des Nutzers verarbeiten

  1. Richten Sie einen neuen Intent ein, um die Antwort des Nutzers auf die Aufforderung zum Abonnieren täglicher Updates zu verarbeiten. Klicken Sie in der linken Navigationsleiste neben Intents auf das +, um einen neuen Intent zu erstellen.
  2. Geben Sie diesem neuen Intent den Namen Confirm Updates.
  3. Fügen Sie im Bereich Events actions_intent_REGISTER_UPDATE hinzu. Dieses Dialogflow-Ereignis wird ausgelöst, wenn der Nutzer den Ablauf für das Abonnieren von täglichen Updates abgeschlossen hat, unabhängig davon, ob er das Abo abgeschlossen hat oder nicht.
  4. Aktivieren Sie im Abschnitt Fulfillment (Auftragsausführung) die Option Enable webhook call for this intent (Webhook-Aufruf für diesen Intent aktivieren).
  5. Klicken Sie oben auf der Seite auf Speichern.

b871c2bdadac8abc.png

Auftragsausführung implementieren

So implementieren Sie die Ausführung in Ihrem Webhook:

Abhängigkeiten laden

b2f84ff91b0e1396.png Aktualisieren Sie in der Datei index.js die Funktion require(), um das Paket RegisterUpdate aus dem Paket actions-on-google hinzuzufügen. Ihre Importe sollten dann so aussehen:

index.js

const {
  dialogflow,
  Suggestions,
  RegisterUpdate,
} = require('actions-on-google');

Vorschlagschips aktualisieren

b2f84ff91b0e1396.png Fügen Sie in der Datei index.js der Liste der Vorschlagschip-Titel einen DAILY-Eintrag hinzu, damit Ihre Suggestion-Definition so aussieht:

index.js

// Suggestion chip titles
const Suggestion = {
  HOURS: 'Ask about hours',
  CLASSES: 'Learn about classes',
  DAILY: 'Send daily reminders',
};

Fulfillment für neue Intents hinzufügen

Wenn der Nutzer sagt, dass er abonnieren möchte, starten Sie den Abo-Ablauf für tägliche Updates, indem Sie den RegisterUpdate-Helfer mit der Zielvorhaben des Updates (Class List) und dem Typ (DAILY) aufrufen. Nach Abschluss des Abo-Ablaufs löst Assistant das actions_intent_REGISTER_UPDATE-Ereignis mit einem status-Argument aus, das beschreibt, ob das Abo erfolgreich war oder nicht. Bieten Sie dem Nutzer Follow-up-Aufforderungen an, die sich je nach Abostatus ändern.

b2f84ff91b0e1396.png Fügen Sie in der Datei index.js den folgenden Code hinzu:

index.js

// Start opt-in flow for daily updates
app.intent('Setup Updates', (conv) => {
  conv.ask(new RegisterUpdate({
    intent: 'Class List',
    frequency: 'DAILY',
  }));
});

// Confirm outcome of opt-in for daily updates
app.intent('Confirm Updates', (conv, params, registered) => {
  if (registered && registered.status === 'OK') {
     conv.ask(`Gotcha, I'll send you an update everyday with the ` +
     'list of classes. Can I help you with anything else?');
  } else {
    conv.ask(` I won't send you daily reminders. Can I help you with anything else?`);
  }
  if (conv.screen) {
    conv.ask(new Suggestions([Suggestion.HOURS, Suggestion.CLASSES]));
  }
});

Alternative Prompts für den Nutzer anbieten

In Ihrer Antwort auf die Kursliste wird am Ende das Abo für tägliche Updates angeboten. Das ist jedoch problematisch. Da dieselbe Antwort ausgelöst wird, wenn der Nutzer auf die Benachrichtigung mit dem täglichen Update tippt, wird er trotzdem aufgefordert, tägliche Updates zu abonnieren, obwohl er gerade von einem solchen Update kommt. Wie können Sie verhindern, dass Nutzer denken, sie müssten das Abo noch einmal abschließen?

Glücklicherweise enthalten die Argumente Ihres conv-Objekts Informationen dazu, wo der Nutzer die Unterhaltung begonnen hat. Sie können die conv-Argumente prüfen, um festzustellen, ob sie einen UPDATES-Abschnitt enthalten. Dieser gibt an, dass der Nutzer die Unterhaltung über eine Benachrichtigung zur täglichen Zusammenfassung gestartet hat. Ändern Sie die Antwort entsprechend. Sie können diesen Konversationszweig auch verwenden, um den Dialog unmittelbar nach der Bereitstellung der Liste der Klassen zu schließen. Das entspricht unserem Best Practice, das tägliche Update kurz zu halten.

b2f84ff91b0e1396.png Ersetzen Sie in der Datei index.js den folgenden Code:

index.js

// Class list intent handler
app.intent('Class List', (conv, {day}) => {
  if (!day) {
    day = DAYS[new Date().getDay()];
  }
  const classes =
  [...new Set(schedule.days[day].map((d) => `${d.name} at ${d.startTime}`))]
  .join(', ');
  const classesMessage =
  `On ${day} we offer the following classes: ${classes}. ` +
  `Can I help you with anything else?`;
  conv.ask(classesMessage);
  if (conv.screen) {
    conv.ask(new Suggestions([Suggestion.HOURS]));
  }
});

mit diesem:

index.js

// Class list intent handler
app.intent('Class List', (conv, {day}) => {
  if (!day) {
    day = DAYS[new Date().getDay()];
  }
  const classes =
  [...new Set(schedule.days[day].map((d) => `${d.name} at ${d.startTime}`))]
  .join(', ');
  let classesMessage = `On ${day} we offer the following classes: ${classes}. `;
  // If the user started the conversation from the context of a daily update,
  // the conv's arguments will contain an 'UPDATES' section.
  let engagement = conv.arguments.get('UPDATES');
  // Check the conv arguments to tailor the conversation based on the context.
  if (engagement) {
    classesMessage += `Hope to see you soon at Action Gym!`;
    conv.close(classesMessage);
  } else {
    classesMessage += `Would you like me to send you daily reminders of upcoming classes, or can I help you with anything else?`;
    conv.ask(classesMessage);
    if (conv.screen) {
      conv.ask(new Suggestions([Suggestion.DAILY, Suggestion.HOURS]));
    };
  };
});

Tägliche Updates testen

Führen Sie im Terminal den folgenden Befehl aus, um den aktualisierten Webhook-Code in Firebase bereitzustellen:

firebase deploy

So testen Sie Ihren benutzerdefinierten Reprompt im Actions-Simulator:

  1. Rufen Sie in der Actions Console Test auf.
  2. Geben Sie Talk to my test app in das Feld Eingabe ein und drücken Sie die Eingabetaste.
  3. Geben Sie Learn about classes ein und drücken Sie die Eingabetaste. In der Antwort Ihrer Aktion sollte jetzt angeboten werden, tägliche Erinnerungen zu senden.
  4. Geben Sie Send daily reminders ein und drücken Sie die Eingabetaste.
  5. Geben Sie eine Uhrzeit ein, zu der Sie das Update sehen möchten, und drücken Sie die Eingabetaste. Versuchen Sie es zu Testzwecken, indem Sie 3–5 Minuten nach der aktuellen Zeit antworten.

83a15ecac8c71787.png

Sie sollten auf Ihrem Mobilgerät etwa zu der Zeit, die Sie für Updates angegeben haben, eine Benachrichtigung von Assistant erhalten. Es kann einige Minuten dauern, bis diese Benachrichtigung angezeigt wird. Tippen Sie auf die Benachrichtigung. Sie sollten dann direkt zum Intent Class List in Assistant weitergeleitet werden, wo Sie eine Liste der anstehenden Kurse sehen:

8582482eafc67d5b.png

4. Push-Benachrichtigungen hinzufügen

Als weitere Option, um Nutzer außerhalb Ihrer Aktion anzusprechen, können Sie die Actions API aufrufen, um Push-Benachrichtigungen an Nutzer zu senden. Im Gegensatz zu täglichen Updates werden diese Benachrichtigungen nicht automatisch von Assistant geplant. Sie können sie also nach Belieben senden.

In diesem Schritt erfahren Sie, wie Sie Push-Benachrichtigungen in Ihre Action implementieren, indem Sie einen neuen Intent Class Canceled hinzufügen und Benachrichtigungen an Nutzer senden, um sie über eine Kursabsage zu informieren. Außerdem richten Sie die folgenden drei Komponenten ein, die zum Senden von Benachrichtigungen erforderlich sind:

  • Actions API-Konto: Sie senden Benachrichtigungen an den Nutzer, indem Sie eine POST-Anfrage an eine API senden. Daher müssen Sie ein Dienstkonto und Anmeldedaten für die Interaktion mit dieser API einrichten.
  • Berechtigungshelfer: Sie benötigen die Berechtigung des Nutzers, um auf die Nutzer-ID zuzugreifen, die zum Senden von Push-Benachrichtigungen erforderlich ist. In diesem Beispiel verwenden Sie eine Clientbibliotheksfunktion, um den Berechtigungshelfer aufzurufen und diese ID anzufordern.
  • Speicher: Wenn Sie Push-Benachrichtigungen an einen Nutzer außerhalb einer Unterhaltung senden möchten, müssen Sie Nutzer-IDs an einem Ort speichern, der jederzeit abgerufen werden kann. In diesem Beispiel richten Sie eine Firestore-Datenbank ein, in der Informationen für jeden Nutzer gespeichert werden.

Wenn Sie dieser Anleitung folgen, fügen Sie der Unterhaltung Ihrer Action den folgenden Dialog hinzu:

7c9d4b633c547823.png

Wie werden Nutzer dadurch angesprochen?

Smartphone-Nutzer kennen wahrscheinlich Push-Benachrichtigungen, die app-spezifische Informationen und Updates liefern. Push-Benachrichtigungen sind eine flexible Möglichkeit, Nutzer auf Mobilgeräten außerhalb von Assistant zu erreichen. Allerdings müssen Nutzer einen guten Grund haben, sie zu aktivieren. Da die Updates täglich erfolgen, wissen die Nutzer bereits, dass sie täglich benachrichtigt werden. Bei Push-Benachrichtigungen wissen Nutzer jedoch nicht, ob sie sich für den Erhalt seltener Benachrichtigungen registrieren oder mit mehreren Benachrichtigungen pro Tag belästigt werden.

Push-Benachrichtigungen können ein nützliches Tool zur Interaktion sein, sollten aber nicht unbedingt in jede Action eingebunden werden. Berücksichtigen Sie die folgenden Tipps, wenn Sie entscheiden, ob Sie Push-Benachrichtigungen zu einer Aktion hinzufügen möchten:

  • Planen Sie einige Beispielzeitpläne für Ihre Push-Benachrichtigungen. Wenn Sie nur eine Push-Benachrichtigung pro Tag senden möchten, sollten Sie stattdessen tägliche Updates verwenden.
  • Push-Benachrichtigungen sollten immer nützliche Informationen enthalten. Ihre Benachrichtigungen können auch mit einem der Intents Ihrer Action verknüpft werden. Achten Sie also darauf, dass der Intent nützlich und relevant ist.
  • Seien Sie deutlich, wenn Sie einen Nutzer bitten, Push-Benachrichtigungen zu abonnieren. Sie sollten wissen, was sie bei jeder Push-Benachrichtigung erwartet, und eine Vorstellung davon haben, wie oft die Benachrichtigungen gesendet werden.

Actions API aktivieren

  1. Öffnen Sie die Google Cloud Console und wählen Sie den Namen Ihres Actions-Projekts im Drop-down-Menü aus.

d015c1515b99e3db.png

  1. Klicken Sie im Navigationsmenü () auf APIs & Dienste > Bibliothek.
  2. Suchen Sie nach der Actions API und klicken Sie auf Aktivieren.

6d464f49c88e70b4.png

Dienstkonto erstellen

Für die Actions API ist eine Authentifizierung erforderlich. Sie müssen also ein Dienstkonto erstellen, um Anfragen zu senden. So erstellen und installieren Sie einen Dienstkontoschlüssel für die Actions API:

  1. Rufen Sie im Navigationsmenü der Google Cloud Console (☰) die Option APIs & Dienste > Anmeldedaten auf.
  2. Klicken Sie auf Anmeldedaten erstellen > Dienstkontoschlüssel.
  3. Wählen Sie im Drop-down-Menü Dienstkonto die Option Neues Dienstkonto aus.
  4. Geben Sie die folgenden Informationen ein:
  • Name des Dienstkontos: service-account
  • Rolle: Projekt > Inhaber
  • Dienstkonto-ID : service-account (immer gefolgt von @<project_id>.iam.gserviceaccount.com)
  • Schlüsseltyp: JSON
  1. Klicken Sie auf Erstellen.
  2. Verschieben Sie die heruntergeladene JSON-Datei in das Verzeichnis /user-engagement-codelab/start/functions/ Ihres Projekts.
  3. Benennen Sie die JSON-Datei in service-account.json um.

d9bd79d35691de3a.png

Firestore aktivieren

Wenn Sie Benachrichtigungen außerhalb des Unterhaltungschats senden möchten, benötigen Sie eine Möglichkeit, Nutzer-IDs zu speichern, auf die in Ihrem Benachrichtigungscode verwiesen werden kann. In diesem Beispiel verwenden wir eine Firestore-Datenbank zum Speichern der Nutzer-IDs von Abonnenten.

So erstellen Sie eine Firestore-Datenbank für Ihre Action:

  1. Wählen Sie in der Firebase Console den Namen Ihres Actions-Projekts aus.
  2. Klicken Sie in der linken Navigationsleiste auf Entwickeln > Datenbank und dann auf Datenbank erstellen.
  3. Wählen Sie Im Testmodus starten aus.
  4. Klicken Sie auf Aktivieren.

6dfc386413954caa.png

Dialogflow einrichten

So erstellen Sie den Opt-in-Vorgang für Push-Benachrichtigungen in der Dialogflow-Konsole:

Nutzer zum Abonnieren auffordern

  1. Richte einen neuen Intent ein, um Anfragen von Nutzern zu bearbeiten, die Push-Benachrichtigungen für abgesagte Kurse abonnieren möchten. Klicken Sie in der Dialogflow-Konsole in der linken Navigationsleiste neben Intents auf das +, um einen neuen Intent zu erstellen.
  2. Geben Sie diesem neuen Intent den Namen Setup Push Notifications.
  3. Fügen Sie im Abschnitt Trainingsformulierungen die folgenden Nutzerausdrücke hinzu:
  • Subscribe to notifications
  • Send notification
  • Notify me
  • Send class notifications
  • Cancelled notifications
  1. Aktivieren Sie im Abschnitt Fulfillment (Auftragsausführung) die Option Enable webhook call for this intent (Webhook-Aufruf für diesen Intent aktivieren).
  2. Klicken Sie oben auf der Seite auf Speichern.

3d99bc41d0492552.png

Entscheidung des Nutzers verarbeiten

  1. Richten Sie einen neuen Intent ein, um die Antwort des Nutzers auf die Aufforderung zum Abonnieren von Push-Benachrichtigungen zu verarbeiten. Klicken Sie in der linken Navigationsleiste neben Intents auf das +, um einen neuen Intent zu erstellen.
  2. Geben Sie diesem neuen Intent den Namen Confirm Push Notifications.
  3. Fügen Sie im Bereich Events actions_intent_PERMISSION hinzu. Dieses Dialogflow-Ereignis wird ausgelöst, wenn der Nutzer den Ablauf zum Abonnieren von Push-Benachrichtigungen abgeschlossen hat, unabhängig davon, ob er das Abo abgeschlossen hat oder nicht.
  4. Aktivieren Sie im Abschnitt Fulfillment (Auftragsausführung) die Option Enable webhook call for this intent (Webhook-Aufruf für diesen Intent aktivieren).
  5. Klicken Sie oben auf der Seite auf Speichern.

d37f550c5e07cb73.png

Push-Benachrichtigung verarbeiten

Sie können Ihre Push-Benachrichtigungen mit einer bestimmten Absicht verknüpfen. Nutzer, die auf die Push-Benachrichtigung tippen, werden dann per Deeplink direkt zu dieser Absicht in Ihrer Aktion weitergeleitet. In diesem Beispiel fügen Sie einen neuen Intent für Push-Benachrichtigungen hinzu, der Details zu abgesagten Kursen enthält.

So fügen Sie einen Intent hinzu, der ausgelöst werden soll, wenn der Nutzer auf eine Push-Benachrichtigung tippt:

  1. Klicken Sie in der Dialogflow-Konsole in der linken Navigationsleiste neben Intents auf das +, um einen neuen Intent zu erstellen.
  2. Geben Sie diesem neuen Intent den Namen Class Canceled.
  3. Fügen Sie im Abschnitt Trainingsformulierungen Cancelations als Nutzerausdruck hinzu.
  4. Aktivieren Sie im Abschnitt Fulfillment (Auftragsausführung) die Option Enable webhook call for this intent (Webhook-Aufruf für diesen Intent aktivieren).
  5. Klicken Sie oben auf der Seite auf Speichern.

940379556f559631.png

Testbenachrichtigungen während einer Unterhaltung senden

In der Produktion sollten Sie ein separates Skript für das Senden von Push-Benachrichtigungen verwenden, das nicht Teil des Fulfillment-Codes Ihrer Action ist. Erstellen Sie für dieses Beispiel einen Intent, den Sie aufrufen können, um eine Push-Benachrichtigung zu senden, während Sie mit Ihrer Action sprechen. Dieser Intent dient nur zu Debugging-Zwecken. In der Praxis sollten Push-Benachrichtigungen nicht von Ihrer Auftragsausführung verarbeitet oder anderweitig als Teil der Unterhaltung Ihrer Action ausgelöst werden.

So erstellen Sie einen Intent zum Testen von Push-Benachrichtigungen:

  1. Richten Sie für Test- und Debuggingzwecke einen neuen Intent ein, mit dem Sie Push-Benachrichtigungen an abonnierte Nutzer senden können. Klicken Sie in der Dialogflow-Konsole in der linken Navigationsleiste neben Intents auf das +, um einen neuen Intent zu erstellen.
  2. Geben Sie diesem neuen Intent den Namen Test Notification.
  3. Fügen Sie im Abschnitt Trainingsformulierungen Test notification als Nutzerausdruck hinzu.
  4. Aktivieren Sie im Abschnitt Fulfillment (Auftragsausführung) die Option Enable webhook call for this intent (Webhook-Aufruf für diesen Intent aktivieren).
  5. Klicken Sie oben auf der Seite auf Speichern.

6967f5a997643eb8.png

Push-Benachrichtigungen aktivieren

So aktivieren Sie Push-Benachrichtigungen für die Intention Class Canceled (Kurs abgesagt):

  1. Klicken Sie in der Dialogflow-Konsole in der Navigationsleiste auf Integrationen.
  2. Klicken Sie auf der Karte Google Assistant auf Integrationseinstellungen.
  3. Fügen Sie Class Canceled als Intent für implizite Aufrufe hinzu. Dieser Schritt ist erforderlich, damit Dialogflow erkennt, dass Nutzer Ihre Unterhaltung mit dem Intent Class Canceled (durch Tippen auf eine Push-Benachrichtigung) starten können.
  4. Klicken Sie auf Schließen.

1ac725231ed279a1.png

  1. Klicken Sie in der Actions Console auf den Tab Develop (Entwickeln) und wählen Sie in der linken Navigationsleiste Actions (Aktionen) aus.
  2. Klicken Sie in der Liste Aktionen auf Kurs abgesagt.
  3. Aktivieren oder deaktivieren Sie im Bereich Nutzerinteraktion die Option Möchten Sie Push-Benachrichtigungen senden?.
  4. Legen Sie einen aussagekräftigen Inhaltstitel fest, der die Push-Benachrichtigung beschreibt. Der Kontext ist „Darf ich dir Push-Benachrichtigungen für ? senden?“. Achten Sie also darauf, dass Ihr Titel sowohl aussagekräftig ist als auch beim Vorlesen richtig klingt. Legen Sie in diesem Beispiel den Content title (Inhaltstitel) auf class cancelations fest.
  5. Klicken Sie oben auf der Seite auf Speichern.

4304c7cd575f6de3.png

Auftragsausführung implementieren

So implementieren Sie die Ausführung in Ihrem Webhook:

Abhängigkeiten laden

b2f84ff91b0e1396.png Aktualisieren Sie in der Datei index.js die Funktion require(), um das Paket UpdatePermission aus dem Paket actions-on-google hinzuzufügen. Ihre Importe sollten dann so aussehen:

index.js

const {
  dialogflow,
  Suggestions,
  RegisterUpdate,
  UpdatePermission,
} = require('actions-on-google');

Vorschlagschips aktualisieren

b2f84ff91b0e1396.png Fügen Sie in der Datei index.js der Liste der Vorschlagschip-Titel einen NOTIFICATIONS-Eintrag hinzu, damit Ihre Suggestion-Definition so aussieht:

index.js

// Suggestion chip titles
const Suggestion = {
  HOURS: 'Ask about hours',
  CLASSES: 'Learn about classes',
  DAILY: 'Send daily reminders',
  NOTIFICATIONS: 'Get notifications',
};

Neue Importe einrichten

Um eine Verbindung zu Ihrer Firestore-Datenbank herzustellen, fügen Sie das firebase-admin-Paket und Konstanten für die in der Datenbank gespeicherten Felder hinzu. Importieren Sie außerdem die Pakete google-auth-library und request, um die Authentifizierung und Anfragen an die Actions API zu verarbeiten.

b2f84ff91b0e1396.png Fügen Sie in der Datei index.js den folgenden Code zu Ihren Importen hinzu:

index.js

// Firebase admin import
const admin = require('firebase-admin');

// Initialize Firestore
admin.initializeApp();
const db = admin.firestore();

// Firestore constants
const FirestoreNames = {
 INTENT: 'intent',
 USER_ID: 'userId',
 USERS: 'users',
};

// Actions API authentication imports
const {auth} = require('google-auth-library');
const request = require('request');

Benachrichtigungen über Kursabsagen einrichten

b2f84ff91b0e1396.png Ersetzen Sie in der Datei index.js den folgenden Code:

index.js

// Class list intent handler
app.intent('Class List', (conv, {day}) => {
  if (!day) {
    day = DAYS[new Date().getDay()];
  }
  const classes =
  [...new Set(schedule.days[day].map((d) => `${d.name} at ${d.startTime}`))]
  .join(', ');
  let classesMessage = `On ${day} we offer the following classes: ${classes}. `;
  // If the user started the conversation from the context of a daily update,
  // the conv's arguments will contain an 'UPDATES' section.
  let engagement = conv.arguments.get('UPDATES');
  // Check the conv arguments to tailor the conversation based on the context.
  if (engagement) {
    classesMessage += `Hope to see you soon at Action Gym!`;
    conv.close(classesMessage);
  } else {
    classesMessage += `Would you like me to send you daily reminders of upcoming classes, or can I help you with anything else?`;
    conv.ask(classesMessage);
    if (conv.screen) {
      conv.ask(new Suggestions([Suggestion.DAILY, Suggestion.HOURS]));
    };
  };
});

mit diesem:

index.js

// Class list intent handler
app.intent('Class List', (conv, {day}) => {
  if (!day) {
    day = DAYS[new Date().getDay()];
  }
  const classes =
  [...new Set(schedule.days[day].map((d) => `${d.name} at ${d.startTime}`))]
  .join(', ');
  let classesMessage = `On ${day} we offer the following classes: ${classes}. `;
  // If the user started the conversation from the context of a daily update,
  // the conv's arguments will contain an 'UPDATES' section.
  let engagement = conv.arguments.get('UPDATES');
  // Check the conv arguments to tailor the conversation based on the context.
  if (engagement) {
    classesMessage += `Hope to see you soon at Action Gym!`;
    conv.close(classesMessage);
  } else {
    classesMessage += `Would you like to receive daily reminders of upcoming classes, subscribe to notifications about cancelations, or can I help you with anything else?`;
    conv.ask(classesMessage);
    if (conv.screen) {
      conv.ask(new Suggestions([Suggestion.DAILY, Suggestion.NOTIFICATIONS,
Suggestion.HOURS]));
    };
  };
});

Fulfillment für neue Intents hinzufügen

Wenn der Nutzer angibt, dass er Push-Benachrichtigungen abonnieren möchte, rufen Sie den UpdatePermission-Helper auf, um die Berechtigung vom Nutzer anzufordern. Wenn das gelingt, wird das PERMISSION-Argument den Argumenten des conv-Objekts hinzugefügt. Sie können es prüfen, um die Unterhaltung zu ändern.

Sobald Sie die Einwilligung des Nutzers haben, übernehmen Sie die Nutzer-ID aus den Argumenten des conv-Objekts und speichern Sie sie in Ihrer Datenbank. Sie senden diese Nutzer-ID später an die Actions API. So kann Assistant feststellen, wer die Benachrichtigung erhält.

Fügen Sie schließlich die Ausführung für den Class Canceled-Intent hinzu, der durch Tippen auf die Push-Benachrichtigung ausgelöst wird. In diesem Beispiel ist Ihre Antwort ein Platzhalterstring. In einer produktionsreifen Version dieser Aktion würde Ihr Benachrichtigungsskript jedoch dynamischere Informationen dazu liefern, welcher Kurs abgesagt wurde.

b2f84ff91b0e1396.png Fügen Sie in der Datei index.js den folgenden Code hinzu:

index.js

// Call the User Information helper for permission to send push notifications
app.intent('Setup Push Notifications', (conv) => {
 conv.ask('Update permission for setting up push notifications');
 conv.ask(new UpdatePermission({intent: 'Class Canceled'}));
});

// Handle opt-in or rejection of push notifications
app.intent('Confirm Push Notifications', (conv) => {
 if (conv.arguments.get('PERMISSION')) {
   let userId = conv.arguments.get('UPDATES_USER_ID');
   if (!userId) {
     userId = conv.request.conversation.conversationId;
   }
   // Add the current conversation ID and the notification's
   // target intent to the Firestore database.
   return db.collection(FirestoreNames.USERS)
   .add({
     [FirestoreNames.INTENT]: 'Class Canceled',
     [FirestoreNames.USER_ID]: userId,
   })
   .then(() => {
     conv.ask(`Great, I'll notify you whenever there's a class cancelation. ` +
     'Can I help you with anything else?');
   });
 } else {
   conv.ask(`Okay, I won't send you notifications about class cancelations. ` +
     'Can I help you with anything else?');
 }
 if (conv.screen) {
    conv.ask(new Suggestions([Suggestion.CLASSES, Suggestion.HOURS]));
  }
});

// Intent triggered by tapping the push notification
app.intent('Class Canceled', (conv) => {
 conv.ask('Classname at classtime has been canceled.');
});

Testbenachrichtigungen hinzufügen

Wenn Sie eine Push-Benachrichtigung an einen Nutzer senden möchten, senden Sie eine POST-Anfrage an die Actions API mit der Nutzer-ID, dem Titel der Benachrichtigung und dem Ziel-Intent. Wenn Sie in diesem Beispiel den Intent „Test Notification“ auslösen, wird Ihre Firestore-Datenbank durchlaufen und Push-Benachrichtigungen werden an alle Nutzer gesendet, die Benachrichtigungen abonniert haben.

Denken Sie daran, dass Sie in diesem Beispiel den Code, der die Push-Benachrichtigung sendet, in Ihre Webhook-Ausführung einfügen und diesen Code durch Aufrufen einer Testabsicht in Ihrem Gespräch auslösen. In Actions, die Sie veröffentlichen möchten, sollte sich der Push-Benachrichtigungscode in einem separaten Skript von Ihrem Fulfillment befinden.

b2f84ff91b0e1396.png Fügen Sie in der Datei index.js den folgenden Code hinzu:

index.js

// Debug intent to trigger a test push notification
app.intent('Test Notification', (conv) => {
 // Use the Actions API to send a Google Assistant push notification.
 let client = auth.fromJSON(require('./service-account.json'));
 client.scopes = ['https://www.googleapis.com/auth/actions.fulfillment.conversation'];
 let notification = {
   userNotification: {
     title: 'Test Notification from Action Gym',
   },
   target: {},
 };
 client.authorize((err, tokens) => {
   if (err) {
     throw new Error(`Auth error: ${err}`);
   }
   // Iterate through Firestore and send push notifications to every user
   // who's currently opted in to canceled class notifications.
   db.collection(FirestoreNames.USERS)
       .where(FirestoreNames.INTENT, '==', 'Class Canceled')
       .get()
       .then((querySnapshot) => {
         querySnapshot.forEach((user) => {
           notification.target = {
             userId: user.get(FirestoreNames.USER_ID),
             intent: user.get(FirestoreNames.INTENT),
           };
           request.post('https://actions.googleapis.com/v2/conversations:send', {
             'auth': {
               'bearer': tokens.access_token,
             },
             'json': true,
             'body': {'customPushMessage': notification, 'isInSandbox': true},
           }, (err, httpResponse, body) => {
             if (err) {
               throw new Error(`API request error: ${err}`);
             }
             console.log(`${httpResponse.statusCode}: ` +
               `${httpResponse.statusMessage}`);
             console.log(JSON.stringify(body));
           });
         });
       })
       .catch((error) => {
         throw new Error(`Firestore query error: ${error}`);
       });
 });
 conv.ask('A notification has been sent to all subscribed users.');
});

Push-Benachrichtigungen testen

Führen Sie im Terminal den folgenden Befehl aus, um den aktualisierten Webhook-Code in Firebase bereitzustellen:

firebase deploy

So testen Sie Benachrichtigungen im Actions-Simulator:

  1. Rufen Sie in der Actions Console den Tab Test auf.
  2. Geben Sie Talk to my test app in das Feld Eingabe ein und drücken Sie die Eingabetaste.
  3. Geben Sie Learn about classes ein und drücken Sie die Eingabetaste.
  4. Geben Sie Get notifications ein und drücken Sie die Eingabetaste.
  5. Wenn Sie Ihrer Aktion noch keine Berechtigung zum Senden von Push-Benachrichtigungen erteilt haben, geben Sie yes ein und drücken Sie die Eingabetaste.
  6. Geben Sie yes ein und drücken Sie die Eingabetaste. Ihr Google-Konto sollte jetzt Push-Benachrichtigungen für diese Aktion erhalten.

3a8704bdc0bcbb17.png

  1. Geben Sie no ein und drücken Sie die Eingabetaste, um die Umgebung zu beenden.
  2. Geben Sie Talk to my test app ein und drücken Sie die Eingabetaste, um eine neue Unterhaltung zu starten.
  3. Geben Sie Test notification ein und drücken Sie die Eingabetaste.

634dfcb0be8dfdec.png

Innerhalb weniger Minuten sollten Sie auf Ihrem Mobilgerät eine Assistant-Push-Benachrichtigung mit dem Text „Test Notification from Action Gym“ erhalten. Wenn Sie auf diese Benachrichtigung tippen, werden Sie per Deeplink zum Intent Class Canceled Ihrer Aktion weitergeleitet.

33cbde513c10122e.png

5. Assistentenlink erstellen

Bisher haben wir uns mit Funktionen zur Steigerung der Interaktion beschäftigt, die Sie implementieren können, damit Nutzer immer wieder zu Ihrer Aktion zurückkehren. Diese Funktionen setzen jedoch voraus, dass Nutzer Ihre Aktion finden und verwenden.

Sie können einen Assistant-Link erstellen, über den Nutzer auf Mobilgeräten direkt zu Ihrer Action in Assistant weitergeleitet werden. Da ein Assistant-Link ein Standard-Hyperlink ist, können Sie ihn einer Website oder Marketingmaterialien wie einem Blog oder einem Beitrag in sozialen Medien hinzufügen.

In diesem Schritt erfahren Sie, was ein Assistant-Link ist, wie Sie einen für die Begrüßungsabsicht Ihrer Aktion erstellen und wie Sie ihn zum Testen auf einer einfachen Website hinzufügen.

Wie werden Nutzer dadurch angesprochen?

Es kann schwierig sein, Nutzer zum ersten Mal auf Ihre Aktion aufmerksam zu machen, insbesondere wenn sie Ihre Aktion explizit in Assistant aufrufen müssen. Ein Assistant-Link kann diese Reibung verringern, da er Nutzern einen direkten Link zu Ihrer Aktion bietet. Wenn ein Nutzer Ihrem Assistant-Link auf einem Assistant-fähigen Gerät folgt, wird er direkt zu Ihrer Aktion weitergeleitet. Wenn ein Nutzer Ihren Link auf einem Gerät öffnet, das kein Mobilgerät ist oder Assistant nicht unterstützt, wird er trotzdem zu Ihrem Aktionsverzeichnis weitergeleitet (sofern es veröffentlicht wurde). So können Sie Ihre Aktion auch für diese Nutzer bewerben.

Assistant-Links können ein nützliches Tool zur Interaktion sein. Sie sollten also einen erstellen, wenn Sie Ihre Action über Ihre Website oder soziale Medien bewerben möchten. Beachten Sie die folgenden Tipps, bevor Sie einen Assistant-Link erstellen und verteilen:

  • Assistant-Links funktionieren erst, wenn Ihre Aktion veröffentlicht wurde. Solange sich Ihr Projekt im Entwurfsstatus befindet, funktioniert der Link nur auf Ihren eigenen Geräten. Alle anderen Nutzer werden im Actions-Verzeichnis auf eine 404-Seite weitergeleitet.
  • Sie können Nutzern die Möglichkeit geben, einen Assistant-Link vor der Veröffentlichung zu testen, indem Sie Ihre Aktion in einer Alpha- oder Betaumgebung veröffentlichen. Nur Nutzer, die an Ihrem Alpha- oder Betatest teilnehmen, können Ihren Assistant-Link testen.
  • Der Zielvorhaben-Intent für Ihren Assistant-Link sollte bei neuen Nutzern einen guten ersten Eindruck hinterlassen. Ihr Begrüßungs-Intent ist das Standardziel für einen Assistant-Link, da er Ihre Action bereits gut vorstellen sollte.

So erstellen Sie einen Assistant-Link für den Begrüßungs-Intent:

  1. Klicken Sie in der Actions Console auf den Tab Develop (Entwickeln) und wählen Sie in der linken Navigationsleiste Actions (Aktionen) aus.
  2. Klicken Sie in der Liste Actions auf actions.intent.MAIN.
  3. Aktivieren Sie im Abschnitt Links die Option Möchten Sie eine URL für diese Aktion aktivieren?.
  4. Legen Sie einen aussagekräftigen Linktitel fest, der Ihre Aktion beschreibt. Der Titel sollte aus einem einfachen Verb und einem Nomen bestehen, die beschreiben, was der Nutzer mit Ihrer Action tun kann. Legen Sie in diesem Beispiel den Linktitel auf learn about Action Gym fest.
  5. Kopieren Sie das HTML-Snippet unten auf dieser Seite und speichern Sie es für später.
  6. Klicken Sie oben auf der Seite auf Speichern.

55341b8102b71eab.png

Testwebsite bereitstellen

Um Ihren Assistant-Link zu testen, können Sie Firebase-Tools verwenden, um eine Testwebsite zusammen mit Ihrer Auftragsausführung bereitzustellen. Wir haben für dieses Beispiel bereits eine einfache Testwebsite erstellt. Sie müssen nur noch Ihren Assistant-Link hinzufügen.

Rufen Sie das Verzeichnis /user-engagement-codelab-nodejs/start/public/ Ihres Fulfillment auf und öffnen Sie die Datei index.html in einem Texteditor.

b2f84ff91b0e1396.png Fügen Sie in der Datei index.html das HTML-Snippet Ihres Assistant-Links in das Body-Element ein. Die Datei sollte am Ende so aussehen:

index.html

<body>
    <p>
     <a href="https://assistant.google.com/services/invoke/uid/000000efb5f2fd97">🅖 Ask my test app to learn about Action Gym
     </a>
    </p>
</body>

Führen Sie im Terminal den folgenden Befehl aus, um die Testwebsite in Firebase bereitzustellen:

firebase deploy

Notieren Sie sich nach Abschluss des Bereitstellungsbefehls die Hosting-URL in der Ausgabe.

b01e8d322fb5d623.png

Rufen Sie diese URL im Webbrowser Ihres Mobilgeräts auf. Der Assistant-Link sollte auf Ihrer Testwebsite angezeigt werden. Wenn Sie auf Ihrem Mobilgerät auf diesen Link klicken, sollten Sie zum Willkommens-Intent Ihrer Aktion in Assistant weitergeleitet werden.

599845d647f5b624.png

Sie können auch versuchen, die Hosting-URL in einem Desktopbrowser aufzurufen. Da Ihre Action nicht veröffentlicht ist, sollten Sie dann zur 404-Seite im Assistant-Verzeichnis weitergeleitet werden.

6. Nächste Schritte

Glückwunsch!

Sie haben jetzt erfahren, wie wichtig das Nutzer-Engagement bei der Entwicklung einer Action ist, welche Funktionen für das Nutzer-Engagement auf der Plattform verfügbar sind und wie Sie die einzelnen Funktionen in eine Action einfügen.

Zusätzliche Lernressourcen

In den folgenden Ressourcen erfahren Sie mehr zum Nutzer-Engagement für Ihre Aktion:

Folgen Sie uns auf Twitter unter @ActionsOnGoogle, um über unsere neuesten Ankündigungen auf dem Laufenden zu bleiben, und twittern Sie unter #AoGDevs, um zu teilen, was Sie entwickelt haben.

Feedback-Umfrage

Bevor Sie gehen, füllen Sie bitte dieses Formular aus, um uns mitzuteilen, wie zufrieden Sie mit uns sind.