Thu hút người dùng bằng Hành động của bạn trên Trợ lý Google

1. Tổng quan

Actions on Google là một nền tảng dành cho nhà phát triển cho phép bạn tạo phần mềm để mở rộng chức năng của Trợ lý Google, trợ lý cá nhân ảo của Google trên hơn 1 tỷ thiết bị, bao gồm loa thông minh, điện thoại, ô tô, TV, tai nghe, v.v. Người dùng tương tác với Trợ lý trong cuộc trò chuyện để hoàn thành công việc, như mua hàng tạp hóa hoặc đặt xe. (Để xem danh sách đầy đủ những việc có thể làm, hãy xem Thư mục Hành động.) Là nhà phát triển, bạn có thể sử dụng Actions on Google để dễ dàng tạo và quản lý các trải nghiệm trò chuyện thú vị và hiệu quả giữa người dùng và dịch vụ bên thứ ba của bạn.

Đây là học phần mã lớp nâng cao dành cho những độc giả đã có một số kinh nghiệm xây dựng Hành động cho Trợ lý Google. Nếu chưa có kinh nghiệm phát triển trước đây về Actions on Google, bạn nên làm quen với nền tảng này bằng cách làm theo các lớp học lập trình giới thiệu của chúng tôi ( Cấp 1, Cấp 2Cấp 3). Những học phần nâng cao này sẽ hướng dẫn bạn thực hiện một loạt các tính năng có thể giúp bạn mở rộng chức năng của Hành động và tăng lượng người xem.

Một cách quan trọng để đo lường mức độ thành công của một Hành động là mức độ tương tác của người dùng hoặc mức độ hiệu quả của Hành động đó trong việc mang lại người dùng sau lượt tương tác đầu tiên của họ. Để giúp việc đó dễ dàng hơn, bạn có thể triển khai một số tính năng trong Thao tác để giúp người dùng quay lại cuộc trò chuyện của bạn.

Lớp học lập trình này trình bày các tính năng tương tác với người dùng và các phương pháp hay nhất dành cho Actions on Google.

a3fc0061bd01a75.png 961ef6e27dc73da2.png

Sản phẩm bạn sẽ tạo ra

Bạn sẽ cải thiện một tính năng đã được xây dựng bằng cách bật tính năng này để:

  • Gửi cho người dùng thông tin cập nhật hằng ngày để họ có thể nhấn vào để nói chuyện với Hành động của bạn
  • Gửi cho người dùng thông báo đẩy liên kết quay lại Hành động của bạn
  • Tạo một đường liên kết đưa người dùng đến hành động của bạn trên một trình duyệt web dành cho thiết bị di động

Kiến thức bạn sẽ học được

  • Tương tác của người dùng là gì và tại sao mức độ tương tác lại quan trọng đối với một hành động thành công
  • Cách sửa đổi Hành động để tăng mức độ tương tác của người dùng
  • Cần sử dụng tính năng tương tác nào của người dùng trong các loại Hành động
  • Cách sử dụng API hành động để gửi thông báo thông qua Trợ lý

Bạn cần có

Bạn phải có các công cụ sau:

  • Trình chỉnh sửa IDE/văn bản mà bạn chọn, chẳng hạn như WebStorm, Atom hoặc Sublime
  • Một thiết bị đầu cuối để chạy các lệnh shell đã cài đặt Node.js, npm và git
  • Một trình duyệt web, chẳng hạn như Google Chrome
  • Môi trường phát triển cục bộ có giao diện dòng lệnh Firebase
  • Một thiết bị di động (Android hoặc iOS) có Trợ lý (Bạn phải đăng nhập vào Trợ lý bằng cùng một Tài khoản Google mà bạn sẽ dùng để tạo dự án này.)

Bạn cũng nên làm quen với JavaScript (ES6) mặc dù không bắt buộc để hiểu mã webhook.

2. Thiết lập dự án

Phần này hướng dẫn bạn cách thêm các tính năng tương tác của người dùng vào một Hành động hoàn chỉnh trước đó.

Hiểu mẫu

Mẫu của lớp học lập trình này là một Hành động đơn giản cho phòng tập thể dục hư cấu có tên "Action Gym." Hành động này cung cấp thông tin về phòng tập thể dục, bao gồm cả danh sách các lớp học xoay vòng mỗi ngày. Bạn nên làm một việc có thể cung cấp nhiều thông tin, chẳng hạn như Hành động tương tác với tất cả người dùng vì danh sách lớp xoay vòng cung cấp nhiều thông tin hữu ích mỗi ngày.

Sơ đồ dưới đây cho thấy quy trình trò chuyện mẫu của Phòng tập thể dục:

e2d6e4ad98948cf3.png

Bạn sẽ thực hiện một số sửa đổi nhỏ đối với hộp thoại cho phù hợp hơn với các tính năng tương tác mà bạn thêm. Tuy nhiên, thiết kế chung của cuộc trò chuyện sẽ không thay đổi nhiều.

Tải tệp cơ sở xuống

Chạy lệnh sau để sao chép kho lưu trữ GitHub cho lớp học lập trình:

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

Thiết lập dự án và nhân viên hỗ trợ của bạn

Để thiết lập dự án Hành động và nhân viên hỗ trợ Dialogflow, hãy hoàn tất các bước sau:

  1. Mở Bảng điều khiển Actions.
  2. Nhấp vào Dự án mới.
  3. Nhập Tên dự án, chẳng hạn như engagement-codelab.
  4. Nhấp vào Tạo dự án.
  5. Thay vì chọn một danh mục, hãy cuộn xuống phần Tùy chọn khác rồi nhấp vào thẻ Cuộc trò chuyện.
  6. Nhấp vào Tạo hành động để mở rộng các tùy chọn và chọn Thêm hành động.
  7. Nhấp vào Thêm hành động đầu tiên của bạn.
  8. Trong hộp thoại Tạo hành động, hãy chọn Ý định tùy chỉnh, sau đó nhấp vào Tạo để chạy bảng điều khiển Dialogflow.
  9. Trong trang tạo nhân viên hỗ trợ của bảng điều khiển Dialogflow, hãy nhấp vào Tạo.
  10. Nhấp vào 6bf56243a8a11a3b.png (biểu tượng bánh răng) trên thanh điều hướng bên trái.
  11. Nhấp vào Xuất và nhập, sau đó nhấp vào Khôi phục từ tệp zip.
  12. Tải tệp agent.zip lên từ thư mục /user-engagement-codelab-nodejs/start/ mà bạn đã tải xuống trước đó.
  13. Nhập RESTORE và nhấp vào Khôi phục.
  14. Nhấp vào Xong.

Triển khai việc thực hiện đơn hàng

Bây giờ, dự án Hành động và tác nhân Dialogflow của bạn đã sẵn sàng, hãy triển khai tệp index.js cục bộ của bạn bằng cách sử dụng chức năng CLI của Firebase.

Từ thư mục /user-engagement-codelab-nodejs/start/functions/ của bản sao tệp cơ sở, hãy chạy các lệnh sau:

firebase use <PROJECT_ID>
npm install
firebase deploy

Sau vài phút, bạn sẽ thấy "Triển khai xong!" cho biết rằng bạn đã triển khai thành công webhook của mình lên Firebase.

Truy xuất URL triển khai

Bạn cần cung cấp Dialogflow với URL cho chức năng đám mây. Để truy xuất URL này, hãy làm theo các bước sau:

  1. Mở Bảng điều khiển của Firebase.
  2. Chọn dự án Hành động của bạn trong danh sách các tùy chọn.
  3. Chuyển đến phần Phát triển > Hàm trên thanh điều hướng bên trái. Nếu bạn được nhắc "Chọn cài đặt chia sẻ dữ liệu" bạn có thể bỏ qua tùy chọn này bằng cách nhấp vào Thực hiện sau.
  4. Trong thẻ Trang tổng quan, bạn sẽ thấy một mục cho "fulfillment" có một URL trong mục Trình kích hoạt. Lưu URL này; bạn sẽ cần sao chép URL đó vào Dialogflow trong phần tiếp theo.

1741a329947975db.png

Đặt URL webhook trong Dialogflow

Bây giờ, bạn cần cập nhật nhân viên hỗ trợ Dialogflow của mình để sử dụng webhook để thực hiện. Để thực hiện việc này, hãy làm theo các bước sau:

  1. Mở bảng điều khiển luồng (bạn có thể đóng bảng điều khiển của Firebase nếu muốn).
  2. Nhấp vào Thực hiện trên thanh điều hướng bên trái.
  3. Bật Webhook.
  4. Dán URL mà bạn đã sao chép từ trang tổng quan Firebase nếu URL đó chưa xuất hiện.
  5. Nhấp vào Lưu.

Xác minh rằng dự án của bạn đã được thiết lập đúng cách

Người dùng phải gọi được Hành động của bạn để biết thông tin về Action Gym, bao gồm cả phản hồi bằng văn bản được mã hóa cứng có giờ làm việc và phản hồi bằng văn bản liệt kê lịch biểu của lớp học cho mỗi ngày trong tuần.

Cách kiểm tra Hành động của bạn trong Trình mô phỏng hành động:

  1. Trong bảng điều khiển Dialogflow bên trái của Dialogflow, hãy nhấp vào Tích hợp > Trợ lý Google.
  2. Hãy nhớ bật tính năng Tự động xem trước thay đổi rồi nhấp vào Thử nghiệm để cập nhật dự án Hành động của bạn.
  3. Trình mô phỏng Hành động sẽ tải dự án Hành động của bạn. Để kiểm tra Hành động của bạn, hãy nhập Talk to my test app vào trường Nhập rồi nhấn Enter.
  4. Bạn sẽ thấy một phản hồi chào mừng bạn đến với Phòng tập thể dục. Hãy thử làm theo lời nhắc để tiếp tục cuộc trò chuyện trong khi vẫn đảm bảo phương thức thực hiện đơn hàng của bạn có phản hồi cho từng phương thức.

60acf1ff87b1a87f.png

3. Thêm gói đăng ký cập nhật hàng ngày

Một cách phổ biến để thu hút người dùng là cung cấp thông tin cho họ khi thông tin hữu ích nhất. Việc này được thực hiện bằng cách cung cấp cho người dùng tùy chọn đăng ký cập nhật hằng ngày với ý định, thông báo này sẽ gửi cho họ thông báo của Trợ lý liên kết trực tiếp đến ý định thực hiện đó.

Trong bước này, bạn sẽ tìm hiểu về các gói đăng ký cập nhật hằng ngày và thêm các gói đăng ký đó vào ý định Danh sách lớp học của Hành động. Sau khi làm theo hướng dẫn này, cuộc trò chuyện của Hành động sẽ trông giống như sơ đồ sau:

f48891c8118f7436.png

Điều này sẽ thu hút người dùng như thế nào?

Người dùng điện thoại thông minh có thể quen thuộc với thông báo đẩy, cung cấp các thông tin và bản cập nhật dành riêng cho ứng dụng. Đăng ký cập nhật hàng ngày là cách đơn giản để truy cập vào người dùng trên các thiết bị di động bên ngoài Trợ lý, miễn là ý định của bạn là gửi bản cập nhật để tiếp tục cung cấp giá trị cho người dùng hằng ngày.

Cập nhật hàng ngày có thể là công cụ tương tác hữu ích nhưng không nhất thiết phải được kết hợp trong mọi Hành động. Hãy xem xét những mẹo sau đây khi quyết định có nên thêm gói đăng ký cập nhật hằng ngày vào một Hành động hay không:

  • Đảm bảo các nội dung cập nhật hằng ngày giúp người dùng thấy được những thông tin hữu ích mỗi ngày. Nếu việc nhấn vào thông tin cập nhật hằng ngày luôn hiển thị cùng một lời nhắc mỗi ngày, thì người dùng có thể sẽ hủy đăng ký sau vài ngày.
  • Hãy đảm bảo rằng hộp thoại của bạn phù hợp với người dùng nếu họ chuyển thẳng đến ý định cập nhật hằng ngày. Người dùng của bạn sẽ không nhất thiết bắt đầu bắt đầu cuộc trò chuyện, vì vậy, họ không nên có nhiều bối cảnh.
  • Hãy cho người dùng thấy lợi ích của Hành động của bạn trước khi nhắc họ đăng ký nhận thông tin cập nhật hằng ngày. Người dùng của bạn nên suy nghĩ kỹ: "Tôi muốn nội dung này mỗi ngày" khi họ được cung cấp lựa chọn đăng ký.
  • Đừng cung cấp cho người dùng những đề xuất lặp lại để đăng ký. Cung cấp gói đăng ký cập nhật hàng ngày ngay sau khi cho người dùng thấy nội dung họ đã đăng ký và tránh làm phiền họ về nơi khác.
  • Giữ cuộc trò chuyện ngắn sau khi ý định cập nhật được kích hoạt. Hầu hết các bản cập nhật hằng ngày chỉ được bao gồm một phản hồi duy nhất, sau đó đóng mà không yêu cầu người dùng nhập thông tin.

Bật tính năng cập nhật hằng ngày

Bạn có thể thêm các gói đăng ký cập nhật hằng ngày vào ý định chào mừng để đặt người dùng vào lúc bắt đầu cuộc trò chuyện hoặc với một ý định cụ thể hơn để liên kết sâu họ với một nơi nào đó trong cuộc trò chuyện. Đối với lớp học lập trình này, ý định Danh sách lớp học sẽ có ý nghĩa nhất vì hộp thoại sẽ thay đổi mỗi ngày và người dùng có thể thấy hữu ích khi nhận được những lớp học nào có sẵn.

Hãy làm theo các bước sau để bật tính năng cập nhật hằng ngày cho ý định Danh sách lớp học:

  1. Trong Bảng điều khiển Actions, hãy nhấp vào thẻ Phát triển rồi chọn Hành động trong thanh điều hướng bên trái.
  2. Nhấp vào Danh sách lớp học trong danh sách Hành động.
  3. Trong phần Mức độ tương tác của người dùng, hãy bật tùy chọn Bạn có muốn cung cấp thông tin cập nhật hằng ngày cho người dùng không.
  4. Đặt Tiêu đề nội dung mang tính mô tả cho biết thông tin cập nhật hằng ngày. Ngữ cảnh sẽ là &quot. Bạn muốn tôi gửi &thời gian hằng ngày của bạn vào lúc nào; vì vậy, hãy đảm bảo tiêu đề của bạn vừa mô tả vừa chính xác khi nói to. Trong ví dụ này, hãy đặt Tiêu đề nội dung thành list of upcoming Action Gym classes.
  5. Nhấp vào Lưu ở đầu trang.

c00885cc30e14d68.png

Thiết lập Dialogflow

Hãy làm theo các bước sau trong bảng điều khiển Dialogflow để tạo ý định cho quy trình đăng ký cập nhật hằng ngày:

Nhắc người dùng đăng ký

  1. Thiết lập một ý định mới để xử lý người dùng yêu cầu đăng ký nhận thông tin cập nhật hằng ngày. Trong bảng điều khiển Dialogflow, hãy nhấp vào nút + bên cạnh Ý định trong bảng điều hướng bên trái để tạo ý định mới.
  2. Đặt tên cho ý định mới này Setup Updates.
  3. Trong phần Cụm từ đào tạo, hãy thêm các biểu thức người dùng sau đây:
  • Send daily reminders
  • Reminder
  • Remind me
  • Updates
  • Upcoming classes
  1. Trong mục Thực hiện, hãy bật/tắt tùy chọn Bật lệnh gọi webhook cho ý định này.
  2. Nhấp vào Lưu ở đầu trang.

5c70faa02151da0.png

Xử lý quyết định của người dùng

  1. Thiết lập ý định mới để xử lý phản hồi của người dùng đối với lời nhắc đăng ký nhận thông tin cập nhật hằng ngày. Nhấp vào nút + bên cạnh Ý định trong bảng điều hướng bên trái để tạo ý định mới.
  2. Đặt tên cho ý định mới này Confirm Updates.
  3. Trong phần Sự kiện, hãy thêm actions_intent_REGISTER_UPDATE. Sự kiện Dialogflow này sẽ được kích hoạt bởi người dùng hoàn tất quy trình đăng ký cập nhật hàng ngày, cho dù họ đã đăng ký hay chưa.
  4. Trong mục Thực hiện, hãy bật/tắt tùy chọn Bật lệnh gọi webhook cho ý định này.
  5. Nhấp vào Lưu ở đầu trang.

b871c2bdadac8abc.png

Triển khai việc thực hiện đơn hàng

Để triển khai quá trình thực hiện trong webhook, hãy hoàn thành các bước sau:

Tải các phần phụ thuộc

b2f84ff91b0e1396.png Trong tệp index.js, hãy cập nhật hàm require() để thêm gói RegisterUpdate từ gói actions-on-google, để dữ liệu nhập của bạn trông giống như sau:

index.js

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

Cập nhật khối đề xuất

b2f84ff91b0e1396.png Trong tệp index.js, hãy thêm một mục DAILY vào danh sách các tiêu đề khối đề xuất, vì vậy, định nghĩa Suggestion của bạn sẽ có dạng như sau:

index.js

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

Thêm phương thức thực hiện đơn hàng cho ý định mới

Khi người dùng nói rằng họ muốn đăng ký, hãy bắt đầu quy trình đăng ký cập nhật hàng ngày bằng cách gọi trình trợ giúp RegisterUpdate có ý định nhắm mục tiêu (Danh sách lớp) và nhập (DAILY). Sau khi quy trình đăng ký kết thúc, Trợ lý sẽ kích hoạt sự kiện actions_intent_REGISTER_UPDATE với một đối số status để cho biết gói đăng ký có thành công hay không. Cung cấp lời nhắc theo dõi thay đổi cho người dùng tùy thuộc vào trạng thái đăng ký.

b2f84ff91b0e1396.png Trong tệp index.js, hãy thêm mã sau:

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]));
  }
});

Lời nhắc thay thế cho người dùng

Phản hồi Danh sách lớp học của bạn sẽ cung cấp đăng ký cập nhật hàng ngày khi kết thúc, nhưng điều này gây ra vấn đề. Vì phản hồi tương tự này sẽ được kích hoạt khi người dùng nhấn vào thông báo cập nhật hằng ngày, họ sẽ vẫn được yêu cầu đăng ký nhận thông tin cập nhật hằng ngày ngay cả khi họ chỉ nhận được thông báo. Làm thế nào để khiến người dùng không nghĩ rằng họ cần đăng ký lại?

Rất may là các đối số conv đối tượng\39; của bạn bao gồm thông tin về nơi người dùng đã bắt đầu cuộc trò chuyện. Bạn có thể kiểm tra các đối số conv để xem liệu các đối số này có chứa phần UPDATES hay không. Thông tin này cho biết người dùng đã bắt đầu cuộc trò chuyện từ thông báo cập nhật hằng ngày và thay đổi phản hồi này cho phù hợp. Bạn cũng có thể sử dụng nhánh cuộc trò chuyện này để đóng hộp thoại ngay sau khi cung cấp danh sách lớp học (làm theo phương pháp hay nhất của chúng tôi là cập nhật ngắn gọn hằng ngày).

b2f84ff91b0e1396.png Trong tệp index.js, hãy thay thế mã sau:

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]));
  }
});

bằng phương thức này:

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]));
    };
  };
});

Thử nghiệm nội dung cập nhật hằng ngày của bạn

Trong thiết bị đầu cuối, hãy chạy lệnh sau để triển khai mã webhook đã cập nhật lên Firebase:

firebase deploy

Để kiểm tra lời nhắc tùy chỉnh trong Trình mô phỏng hành động, hãy làm theo các bước sau:

  1. Trong Bảng điều khiển Actions, hãy chuyển đến Test.
  2. Nhập Talk to my test app vào trường Nhập rồi nhấn Enter.
  3. Nhập Learn about classes rồi nhấn Enter. Giờ đây, phản hồi của bạn về Hành động nên gửi lời nhắc hằng ngày.
  4. Nhập Send daily reminders rồi nhấn Enter.
  5. Nhập thời gian mà bạn muốn xem nội dung cập nhật và nhấn Enter. Đối với mục đích thử nghiệm, hãy thử phản hồi chậm hơn 3-5 phút so với thời gian hiện tại.

83a15ecac8c71787.png

Trên thiết bị di động, bạn sẽ nhận được thông báo từ Trợ lý trong khoảng thời gian bạn chỉ định để cập nhật. Lưu ý rằng thông báo này có thể mất vài phút để xuất hiện. Nhấn vào thông báo đó và thông báo sẽ liên kết sâu với ý định Danh sách lớp học trong Trợ lý để cung cấp cho bạn danh sách các lớp học sắp tới:

8582482eafc67d5b.png

4. Thêm thông báo đẩy

Một cách khác để thu hút người dùng bên ngoài Hành động của bạn là bạn có thể gọi API hành động để gửi thông báo đẩy cho người dùng. Khác với thông tin cập nhật hằng ngày, các thông báo này không tự động lên lịch cho Trợ lý để bạn có thể gửi theo ý muốn.

Trong bước này, bạn sẽ tìm hiểu cách triển khai thông báo đẩy trong Hành động của mình bằng cách thêm ý định Đã hủy lớp học mới và gửi thông báo cho người dùng để thông báo cho họ về việc hủy lớp học. Bạn cũng sẽ thiết lập ba thành phần sau cần thiết để gửi thông báo:

  • Tài khoản API Hành động - Bạn gửi thông báo đến người dùng bằng cách gửi yêu cầu POST đến API, vì vậy, bạn sẽ cần thiết lập tài khoản dịch vụ và thông tin xác thực để giao diện với API này.
  • Trình trợ giúp quyền – Bạn cần có quyền của người dùng truy cập vào mã nhận dạng khách hàng cần thiết để gửi thông báo đẩy cho họ. Trong ví dụ này, bạn sẽ sử dụng hàm thư viện ứng dụng để gọi trình trợ giúp quyền và yêu cầu mã này.
  • Bộ nhớ – Để gửi thông báo đẩy cho người dùng bên ngoài một cuộc trò chuyện, bạn cần lưu trữ mã nhận dạng khách hàng ở những nơi có thể thu hồi theo ý muốn. Trong ví dụ này, bạn sẽ thiết lập một cơ sở dữ liệu Firestore để lưu trữ thông tin cho từng người dùng.

Sau khi làm theo hướng dẫn này, bạn sẽ thêm hộp thoại sau vào cuộc trò chuyện trong Hành động:

7c9d4b633c547823.png

Điều này sẽ thu hút người dùng như thế nào?

Người dùng điện thoại thông minh có thể quen thuộc với thông báo đẩy, cung cấp các thông tin và bản cập nhật dành riêng cho ứng dụng. Thông báo đẩy là một cách linh hoạt để truy cập vào người dùng trên các thiết bị di động bên ngoài Trợ lý, miễn là người dùng nhận được lý do chính đáng để bật tính năng này. Với các thông tin cập nhật hằng ngày, người dùng đã biết rằng họ sẽ nhận được thông báo hằng ngày. Tuy nhiên, với thông báo đẩy, người dùng không biết mình có đang chọn nhận thông báo không thường xuyên không hoặc sẽ bị thử nghiệm nhiều thông báo mỗi ngày.

Thông báo đẩy có thể là một công cụ tương tác hữu ích nhưng không nhất thiết phải được tích hợp vào mọi Hành động. Hãy xem xét các mẹo sau khi quyết định có nên thêm thông báo đẩy vào một Hành động hay không:

  • Lên kế hoạch cho một số lịch biểu mẫu trong thông báo đẩy. Nếu bạn chỉ định gửi một thông báo đẩy mỗi ngày, hãy cân nhắc sử dụng thông tin cập nhật hằng ngày.
  • Đảm bảo thông báo đẩy của bạn sẽ cung cấp thông tin hữu ích mỗi khi nhận được. Các thông báo của bạn cũng có thể liên kết sâu với một trong các ý định của Hành động; vì vậy, hãy đảm bảo ý định này hữu ích và phù hợp.
  • Hãy rõ ràng khi yêu cầu người dùng đăng ký nhận thông báo đẩy. Họ nên hiểu được những gì sẽ xảy ra với mỗi thông báo đẩy và biết một số tần suất gửi thông báo.

Bật API hành động

  1. Mở Google Cloud Console và chọn tên dự án Hành động trong trình đơn thả xuống.

d015c1515b99e3db.png

  1. Trong trình đơn điều hướng (☰), hãy chuyển đến API & Dịch vụ > Thư viện.
  2. Tìm API Actions, rồi nhấp vào Bật.

6d464f49c88e70b4.png

Tạo một tài khoản dịch vụ

API Hành động yêu cầu xác thực để bạn cần tạo tài khoản dịch vụ để gửi yêu cầu. Hãy làm theo các bước sau để tạo và cài đặt khóa tài khoản dịch vụ cho API Hành động:

  1. Trong trình đơn điều hướng của Google Cloud Console (☰), hãy chuyển đến API & amp; Dịch vụ > Thông tin xác thực.
  2. Nhấp vào Tạo thông tin xác thực và khóa; Khóa tài khoản dịch vụ.
  3. Trong trình đơn thả xuống Tài khoản dịch vụ, hãy chọn Tài khoản dịch vụ mới.
  4. Điền các thông tin sau:
  • Tên tài khoản dịch vụ: service-account
  • Vai trò: Dự án > Chủ sở hữu
  • Mã tài khoản dịch vụ: service-account (luôn đứng sau @<project_id>.iam.gserviceaccount.com)
  • Loại khóa: JSON
  1. Nhấp vào Tạo.
  2. Di chuyển tệp JSON đã tải xuống vào thư mục /user-engagement-codelab/start/Functions/ của dự án.
  3. Đổi tên tệp JSON thành service-account.json.

d9bd79d35691de3a.png

Bật Firestore

Để gửi thông báo ra bên ngoài cuộc trò chuyện, bạn cần có một cách lưu trữ mã nhận dạng khách hàng mà bạn có thể tham chiếu từ mã thông báo của mình. Trong ví dụ này, chúng tôi đang sử dụng cơ sở dữ liệu Firestore để lưu trữ ID người dùng của người dùng đã đăng ký.

Hãy làm theo các bước sau để tạo cơ sở dữ liệu Firestore cho Hành động của bạn:

  1. Trong bảng điều khiển của Firebase, hãy chọn tên dự án Hành động của bạn.
  2. Trong ngăn điều hướng bên trái, hãy chuyển đến Phát triển và gt; cơ sở dữ liệu rồi nhấp vào Tạo cơ sở dữ liệu.
  3. Chọn Bắt đầu ở chế độ thử nghiệm.
  4. Nhấp vào Bật.

6dfc386413954caa.png

Thiết lập Dialogflow

Làm theo các bước sau trong bảng điều khiển Dialogflow để tạo quy trình chọn tham gia thông báo đẩy:

Nhắc người dùng đăng ký

  1. Thiết lập một ý định mới để xử lý người dùng yêu cầu đăng ký nhận thông báo đẩy cho các lớp học đã hủy. Trong bảng điều khiển Dialogflow, hãy nhấp vào nút + bên cạnh Ý định trong bảng điều hướng bên trái để tạo ý định mới.
  2. Đặt tên cho ý định mới này Setup Push Notifications.
  3. Trong phần Cụm từ đào tạo, hãy thêm các biểu thức người dùng sau đây:
  • Subscribe to notifications
  • Send notification
  • Notify me
  • Send class notifications
  • Cancelled notifications
  1. Trong mục Thực hiện, hãy bật/tắt tùy chọn Bật lệnh gọi webhook cho ý định này.
  2. Nhấp vào Lưu ở đầu trang.

3d99bc41d0492552.png

Xử lý quyết định của người dùng

  1. Thiết lập một ý định mới để xử lý phản hồi của người dùng đối với lời nhắc đăng ký thông báo đẩy. Nhấp vào nút + bên cạnh Ý định trong bảng điều hướng bên trái để tạo ý định mới.
  2. Đặt tên cho ý định mới này Confirm Push Notifications.
  3. Trong phần Sự kiện, hãy thêm actions_intent_PERMISSION. Sự kiện Dialogflow này sẽ được kích hoạt bởi người dùng hoàn tất quy trình đăng ký thông báo đẩy, cho dù họ đã đăng ký hay chưa.
  4. Trong mục Thực hiện, hãy bật/tắt tùy chọn Bật lệnh gọi webhook cho ý định này.
  5. Nhấp vào Lưu ở đầu trang.

d37f550c5e07cb73.png

Xử lý thông báo đẩy

Bạn có thể liên kết thông báo đẩy của mình với một ý định cụ thể để những người dùng nhấn vào thông báo đẩy được liên kết sâu trực tiếp với ý định đó trong Hành động của bạn. Trong ví dụ này, hãy thêm một ý định mới cho thông báo đẩy cung cấp thông tin chi tiết về các lớp học đã hủy.

Làm theo các bước sau để thêm một ý định để người dùng kích hoạt thông báo đẩy:

  1. Trong bảng điều khiển Dialogflow, hãy nhấp vào nút + bên cạnh Ý định trong bảng điều hướng bên trái để tạo ý định mới.
  2. Đặt tên cho ý định mới này Class Canceled.
  3. Trong phần Cụm từ đào tạo, hãy thêm Cancelations làm biểu thức người dùng.
  4. Trong mục Thực hiện, hãy bật/tắt tùy chọn Bật lệnh gọi webhook cho ý định này.
  5. Nhấp vào Lưu ở đầu trang.

940379556f559631.png

Gửi thông báo thử nghiệm giữa cuộc trò chuyện

Trong quá trình sản xuất, bạn nên có một tập lệnh tách biệt với mã Thực hiện hành động gửi thông báo đẩy. Trong ví dụ này, hãy tạo một ý định mà bạn có thể gọi để gửi thông báo đẩy trong khi nói chuyện với Hành động của bạn. Mục đích này chỉ nhằm mục đích gỡ lỗi. Trong thực tế, thông báo đẩy không được xử lý do bạn thực hiện hoặc được kích hoạt trong cuộc trò chuyện của Hành động.

Làm theo các bước sau để tạo ý định thử nghiệm thông báo đẩy:

  1. Đối với mục đích thử nghiệm và gỡ lỗi, hãy thiết lập một ý định mới cho phép bạn gửi thông báo đẩy cho người dùng đã đăng ký. Trong bảng điều khiển Dialogflow, hãy nhấp vào nút + bên cạnh Ý định trong bảng điều hướng bên trái để tạo ý định mới.
  2. Đặt tên cho ý định mới này Test Notification.
  3. Trong phần Cụm từ đào tạo, hãy thêm Test notification làm biểu thức người dùng.
  4. Trong mục Thực hiện, hãy bật/tắt tùy chọn Bật lệnh gọi webhook cho ý định này.
  5. Nhấp vào Lưu ở đầu trang.

6967f5a997643eb8.png

Bật thông báo tự động

Làm theo các bước sau để bật thông báo đẩy cho ý định Đã hủy lớp học:

  1. Trong bảng điều khiển Dialogflow, hãy chuyển đến mục Tích hợp trong thanh điều hướng.
  2. Trên thẻ Trợ lý Google, nhấp vào Cài đặt tích hợp.
  3. Thêm Lớp đã hủy làm ý định Gọi hàm ngầm. Đây là bước cần thiết để Dialogflow nhận ra rằng người dùng có thể bắt đầu cuộc trò chuyện của bạn bằng ý định Đã hủy lớp học (bằng cách nhấn vào thông báo đẩy).
  4. Nhấp vào Close (Đóng).

1ac725231ed279a1.png

  1. Trong Bảng điều khiển Actions, hãy nhấp vào thẻ Phát triển rồi chọn Hành động trong thanh điều hướng bên trái.
  2. Nhấp vào Lớp học đã hủy trong danh sách Hành động.
  3. Trong phần Mức độ tương tác của người dùng, hãy bật/tắt tùy chọn Bạn có muốn gửi thông báo đẩy không?.
  4. Đặt Tiêu đề nội dung mang tính mô tả để mô tả thông báo đẩy. Ngữ cảnh sẽ là " ok nếu tôi gửi thông báo đẩy cho ##quot; vì vậy, hãy đảm bảo tiêu đề của bạn vừa mô tả vừa âm thanh chính xác khi đọc thành tiếng. Trong ví dụ này, hãy đặt Tiêu đề nội dung thành class cancelations.
  5. Nhấp vào Lưu ở đầu trang.

4304c7cd575f6de3.png.

Triển khai việc thực hiện đơn hàng

Để triển khai quá trình thực hiện trong webhook, hãy hoàn thành các bước sau:

Tải các phần phụ thuộc

b2f84ff91b0e1396.png Trong tệp index.js, hãy cập nhật hàm require() để thêm gói UpdatePermission từ gói actions-on-google, để dữ liệu nhập của bạn trông giống như sau:

index.js

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

Cập nhật khối đề xuất

b2f84ff91b0e1396.png Trong tệp index.js, hãy thêm một mục NOTIFICATIONS vào danh sách các tiêu đề khối đề xuất, vì vậy, định nghĩa Suggestion của bạn sẽ có dạng như sau:

index.js

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

Thiết lập tính năng nhập dữ liệu mới

Để kết nối với cơ sở dữ liệu Firestore của bạn, hãy thêm gói firebase-admin và thêm hằng số cho các trường được lưu trữ trong cơ sở dữ liệu. Ngoài ra, hãy nhập các gói google-auth-libraryrequest để xử lý các yêu cầu xác thực và yêu cầu vào API Hành động.

b2f84ff91b0e1396.png Trong tệp index.js, hãy thêm mã sau vào tệp nhập:

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');

Đề xuất thiết lập thông báo hủy lớp học

b2f84ff91b0e1396.png Trong tệp index.js, hãy thay thế mã sau:

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]));
    };
  };
});

bằng phương thức này:

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]));
    };
  };
});

Thêm phương thức thực hiện đơn hàng cho ý định mới

Khi người dùng nói rằng họ muốn đăng ký nhận thông báo đẩy, hãy gọi cho trình trợ giúp của UpdatePermission để yêu cầu người dùng cho phép. Nếu việc đó thành công, đối số PERMISSION sẽ được thêm vào đối số conv của đối tượng mà bạn có thể kiểm tra để chuyển hướng cuộc trò chuyện.

Sau khi bạn có quyền của người dùng, hãy lấy mã nhận dạng khách hàng từ các đối số của đối tượng conv và lưu dữ liệu đó trong cơ sở dữ liệu của bạn. Sau đó, bạn sẽ gửi mã nhận dạng khách hàng này tới API hành động. Đây là cách Trợ lý xác định người nhận thông báo.

Cuối cùng, hãy thực hiện thao tác thực hiện ý định Class Canceled mà đã được kích hoạt bằng cách nhấn vào thông báo đẩy. Trong ví dụ này, phản hồi của bạn là một chuỗi phần giữ chỗ, mặc dù trong phiên bản sẵn sàng sản xuất của Hành động này, tập lệnh thông báo của bạn sẽ cung cấp thông tin linh động hơn về lớp nào đã bị hủy.

b2f84ff91b0e1396.png Trong tệp index.js, hãy thêm mã sau:

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.');
});

Thêm thông báo thử nghiệm

Để gửi thông báo đẩy cho người dùng, hãy gửi một yêu cầu POST tới API Hành động có mã nhận dạng khách hàng, tiêu đề thông báo và ý định mục tiêu. Trong ví dụ này, việc kích hoạt ý định Thông báo thử nghiệm sẽ lặp lại thông qua cơ sở dữ liệu Firestore của bạn và gửi thông báo đẩy cho mọi người dùng đã đăng ký nhận thông báo.

Hãy nhớ rằng, trong ví dụ này, bạn đang bao gồm mã gửi thông báo đẩy trong thực hiện webhook của bạn và kích hoạt mã đó bằng cách gọi một ý định thử nghiệm trong cuộc trò chuyện của bạn. Trong những Hành động mà bạn dự định phát hành, mã thông báo đẩy của bạn phải nằm trong một tập lệnh tách biệt với phương thức thực hiện đơn hàng.

b2f84ff91b0e1396.png Trong tệp index.js, hãy thêm mã sau:

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.');
});

Kiểm tra thông báo đẩy

Trong thiết bị đầu cuối, hãy chạy lệnh sau để triển khai mã webhook đã cập nhật lên Firebase:

firebase deploy

Để kiểm tra thông báo trong Trình mô phỏng hành động, hãy làm theo các bước sau:

  1. Trong Bảng điều khiển Actions, hãy chuyển đến thẻ Test (Thử nghiệm).
  2. Nhập Talk to my test app vào trường Nhập rồi nhấn Enter.
  3. Nhập Learn about classes rồi nhấn Enter.
  4. Nhập Get notifications rồi nhấn Enter.
  5. Nếu bạn chưa cấp quyền Hành động để gửi thông báo đẩy cho bạn, hãy nhập yes và nhấn Enter.
  6. Nhập yes rồi nhấn Enter. Tài khoản Google của bạn hiện đã được đăng ký để nhận thông báo đẩy cho Hành động này.

3a8704bdc0bcbb17.png

  1. Nhập no rồi nhấn Enter để thoát.
  2. Nhập Talk to my test app rồi nhấn Enter để bắt đầu cuộc trò chuyện mới.
  3. Nhập Test notification rồi nhấn Enter.

634dfcb0be8dfdec.png

Trong vòng vài phút, bạn sẽ nhận được thông báo &thử nghiệm; Thông báo thử nghiệm từ Action Gym" Thông báo đẩy của Trợ lý trên thiết bị di động. Khi nhấn vào thông báo này, bạn sẽ được liên kết sâu với ý định Đã hủy lớp học cho Hành động.

33cbde513c10122e.png

5. Tạo đường liên kết đến Trợ lý

Cho đến nay, chúng tôi đã thảo luận về các tính năng tương tác mà bạn có thể triển khai để thu hút người dùng quay lại Hành động của bạn, nhưng các tính năng đó dự đoán sẽ giúp người dùng khám phá và sử dụng Hành động của bạn.

Bạn có thể tạo một đường liên kết đến Trợ lý để liên kết người dùng trên thiết bị di động ngay với Hành động trên Trợ lý. Vì đường liên kết của Trợ lý là siêu liên kết chuẩn, nên bạn có thể thêm đường liên kết đó vào trang web hoặc mọi tài liệu tiếp thị trên web như blog hoặc bài đăng trên mạng xã hội.

Trong bước này, bạn sẽ tìm hiểu về đường liên kết của Trợ lý, cách tạo đường liên kết đến ý định chào mừng của Hành động và cách thêm đường liên kết đó vào trang web đơn giản để thử nghiệm.

Điều này sẽ thu hút người dùng như thế nào?

Để thu hút người dùng lần đầu tiên thực hiện Hành động của bạn, bạn có thể gặp khó khăn, đặc biệt là khi họ cần kêu gọi hành động của bạn trên Trợ lý. Đường liên kết của Trợ lý giúp giảm bớt phiền hà này bằng cách cung cấp cho người dùng một đường liên kết trực tiếp đến Hành động của bạn. Khi người dùng nhấp vào đường liên kết của Trợ lý trên thiết bị có Trợ lý, họ sẽ được chuyển thẳng đến Hành động của bạn. Khi một người dùng mở đường liên kết của bạn trên một thiết bị không phải di động hoặc bất kỳ thiết bị nào khác không hỗ trợ Trợ lý, họ sẽ vẫn được chuyển đến trang thông tin của bạn trên Danh bạ thao tác (nếu đã được xuất bản). Nhờ vậy, đường liên kết đó vẫn có thể tiếp thị Hành động của bạn cho những người dùng đó.

Đường liên kết của Trợ lý có thể là một công cụ tương tác hữu ích. Vì thế, bạn nên tạo một đường liên kết nếu bạn dự định quảng cáo Hành động của mình thông qua trang web hoặc mạng xã hội của bạn. Chỉ cần biết những mẹo sau trước khi bạn tạo và phân phối liên kết Trợ lý:

  • Đường liên kết của Trợ lý chỉ hoạt động sau khi Hành động của bạn được xuất bản. Khi dự án của bạn đang ở trạng thái bản nháp, đường liên kết sẽ chỉ hoạt động trên những thiết bị của riêng bạn. Bất kỳ ai khác sẽ được chuyển đến trang 404 trong thư mục Hành động.
  • Bạn có thể cho phép người dùng kiểm tra đường liên kết của Trợ lý trước khi xuất bản bằng cách phát hành Hành động của bạn trong môi trường alpha hoặc beta. Lưu ý rằng chỉ những người dùng tham gia phiên bản alpha hoặc beta mới có thể thử nghiệm đường liên kết của Trợ lý.
  • Đảm bảo ý định đích đến cho đường liên kết của Trợ lý tạo ấn tượng tốt đầu tiên với người dùng mới. Mục đích chào mừng của bạn là đích đến mặc định cho một đường liên kết Trợ lý vì đường liên kết này đã hoạt động rất hiệu quả trong việc giới thiệu Hành động của bạn

Hãy làm theo các bước sau để tạo một đường liên kết đến Trợ lý nhằm mục đích chào mừng:

  1. Trong Bảng điều khiển Actions, hãy nhấp vào thẻ Phát triển rồi chọn Hành động trong thanh điều hướng bên trái.
  2. Nhấp vào actions.intent.Main trong danh sách Thao tác.
  3. Trong phần Đường liên kết, hãy bật/tắt tùy chọn Bạn có muốn bật URL cho Hành động này không.
  4. Đặt Tiêu đề liên kết mang tính mô tả cho biết Hành động của bạn. Tạo tiêu đề là một cặp động từ đơn giản mô tả những việc mà người dùng có thể thực hiện với Hành động của bạn. Trong ví dụ này, hãy đặt Tiêu đề liên kết thành learn about Action Gym.
  5. Sao chép đoạn mã HTML từ cuối trang này và lưu đoạn mã đó để dùng sau này.
  6. Nhấp vào Lưu ở đầu trang.

55341b8102b71eab.png

Triển khai một trang web thử nghiệm

Để kiểm tra đường liên kết của Trợ lý, bạn có thể sử dụng các công cụ Firebase để triển khai một trang web thử nghiệm cùng với quá trình thực hiện đơn hàng. Chúng tôi đã tạo một trang web thử nghiệm đơn giản cho ví dụ này, bạn chỉ cần thêm liên kết Trợ lý của mình.

Truy cập vào thư mục thực hiện /user-engagement-codelab-nodejs/start/public/ của bạn rồi mở tệp index.html trong một trình chỉnh sửa văn bản.

b2f84ff91b0e1396.png Trong tệp index.html, hãy dán đoạn mã HTML của đường liên kết có Trợ lý vào phần tử nội dung. Tệp sẽ có dạng như đoạn mã bên dưới:

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>

Trong thiết bị đầu cuối, hãy chạy lệnh sau để triển khai trang web thử nghiệm cho Firebase:

firebase deploy

Sau khi lệnh triển khai chạy xong, hãy lưu ý đến URL lưu trữ trong dữ liệu đầu ra.

b01e8d322fb5d623.png

Truy cập vào URL này trên trình duyệt web của thiết bị di động và bạn sẽ thấy đường liên kết đến Trợ lý trên trang web thử nghiệm của mình. Khi nhấp vào đường liên kết này trên thiết bị di động, bạn sẽ chuyển đến ý định chào mừng của Hành động trong Trợ lý.

599845d647f5b624.png

Bạn cũng có thể thử truy cập URL lưu trữ trên trình duyệt dành cho máy tính để đưa đến trang 404 trong thư mục Trợ lý vì Hành động của bạn không được xuất bản.

6. Các bước tiếp theo

Xin chúc mừng!

Giờ đây, bạn đã biết được tầm quan trọng của mức độ tương tác của người dùng khi phát triển một Hành động, những tính năng tương tác của người dùng có trên nền tảng và cách thêm từng tính năng vào một Hành động.

Tài nguyên học tập bổ sung

Hãy khám phá những tài nguyên này để tìm hiểu thêm về hành động tương tác của người dùng cho Hành động của bạn:

Hãy theo dõi chúng tôi trên Twitter: @ ActionsOnGoogle để theo dõi các thông báo mới nhất của chúng tôi qua Twitter và chia sẻ những câu hỏi của bạn trên #AoGDevs!

Khảo sát về ý kiến phản hồi

Trước khi bạn đi, vui lòng điền vào biểu mẫu này để cho chúng tôi biết hiệu suất của chúng tôi!