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

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

Thông tin về lớp học lập trình này

subjectLần cập nhật gần đây nhất: thg 6 13, 2022
account_circleTác giả: Assistant Developer Relations

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à nhiều thiết bị khác. 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, chẳng hạn như mua hàng tạp hoá hoặc đặt xe. (Để biết danh sách đầy đủ những thao tác có thể thực hiện, hãy xem Thư mục Actions.) 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ý những 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à mô-đun nâng cao của lớp học lập trình dành cho những độc giả đã có kinh nghiệm xây dựng Actions cho Trợ lý Google. Nếu chưa có kinh nghiệm phát triển trước đây với 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 nhập môn của chúng tôi ( Cấp 1, Cấp 2Cấp 3). Các mô-đun nâng cao này sẽ hướng dẫn bạn về một loạt tính năng có thể giúp bạn mở rộng chức năng của Hành động và thu hút người dùng mới.

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 đưa người dùng quay lại sau lần tương tác đầu tiên. Để làm việc này dễ dàng hơn, bạn có thể triển khai một số tính năng trong Hành động để cung cấp cho người dùng các đường dẫn quay lại cuộc trò chuyện của bạn.

Lớp học lập trình này đề cập đến 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 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 mà họ có thể nhấn để nói 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 trở lại Hành động của bạn
  • Tạo đường liên kết đưa người dùng đến Hành động của bạn từ trình duyệt web dành cho thiết bị di động

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

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

Bạn cần có

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

  • Một IDE/trình chỉnh sửa 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 khi 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ộ với giao diện dòng lệnh Firebase
  • 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 chính Tài khoản Google mà bạn sẽ dùng để tạo dự án này.)

Mặc dù không bắt buộc, nhưng bạn cũng nên quen thuộc với JavaScript (ES6) để hiểu về mã webhook.

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

Phần này cho bạn biết 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, được tạo trước đó.

Tìm 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 dành cho một phòng tập thể dục hư cấu có tên là "Action Phòng tập thể dục". Hành động cung cấp thông tin về phòng tập thể dục, bao gồm danh sách các lớp học sẽ quay vòng mỗi ngày. Hành động chứa nhiều thông tin như vậy là một lựa chọn phù hợp cho tất cả các tính năng thu hút 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 của mẫu Action Phòng tập thể dục:

e2d6e4ad98948cf3.png

Bạn sẽ thực hiện một số sửa đổi nhỏ cho hộp thoại để 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 này:

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ợ

Để thiết lập dự án Actions 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, như engagement-codelab.
  4. Nhấp vào Create Project (Tạo dự án).
  5. Thay vì chọn một danh mục, hãy di chuyển xuống phần Tuỳ chọn khác rồi nhấp vào thẻ Cuộc trò chuyện.
  6. Nhấp vào Build your Action (Tạo hành động) để mở rộng các lựa chọn rồi chọn Add Action(s) (Thêm hành động).
  7. Nhấp vào Add Your First Action (Thêm hành động đầu tiên của bạn).
  8. Trong hộp thoại Create Action (Tạo hành động), hãy chọn Custom Intent (Ý định tuỳ chỉnh), sau đó nhấp vào Build (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.pngS (biểu tượng bánh răng) trên bảng đ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 rồi nhấp vào Khôi phục.
  14. Nhấp vào Xong.

Triển khai phương thức thực hiện

Bây giờ, dự án Actions 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ộ bằng Giao diện dòng lệnh (CLI) của hàm Firebase.

Trong thư mục /user-engagement-codelab-nodejs/start/functions/ của tệp cơ sở sao chép, 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 thông báo "Đã triển khai xong!". Thông báo này cho biết bạn đã triển khai thành công webhook của mình cho Firebase.

Truy xuất URL triển khai

Bạn cần cung cấp cho Dialogflow URL chức năng của dịch vụ đá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 Actions (Hành động) trong danh sách các lựa chọn.
  3. Chuyển đến phần Phát triển > Các hàm trên thanh điều hướng bên trái. Nếu được nhắc "Chọn chế độ cài đặt cách chia sẻ dữ liệu", bạn có thể bỏ qua tuỳ 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 "phương thức thực hiện đơn hàng" bằng một URL trong mục Điều kiện kích hoạt. Lưu URL này; bạn sẽ cần sao chép thông tin này vào Dialogflow trong phần tiếp theo.

1741a329947975db.pngS

Đặt URL webhook trong Dialogflow

Bây giờ, bạn cần cập nhật nhân viên hỗ trợ Dialogflow để sử dụng webhook của mình cho phương thức 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ểnDialogflow (bạn có thể đóng bảng điều khiển của Firebase nếu muốn).
  2. Nhấp vào Đơn hàng trên bảng đ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 có thể gọi hành động của bạn để biết thông tin về Action Phòng tập, bao gồm văn bản phản hồi được cố định giá trị trong mã kèm theo giờ hoạt động và phản hồi bằng văn bản liệt kê lịch học cho mỗi ngày trong tuần.

Cách thử nghiệm Hành động của bạn trong trình mô phỏng Hành động:

  1. Trong bảng điều hướng bên trái của bảng điều khiển Dialogflow, hãy nhấp vào Các công cụ tích hợp > Trợ lý Google.
  2. Nhớ bật tính năng Tự động xem trước các thay đổi rồi nhấp vào Kiểm tra để cập nhật dự án Actions của bạn.
  3. Trình mô phỏng hành động sẽ tải dự án Actions của bạn. Để kiểm thử Hành động của bạn, hãy nhập Talk to my test app vào trường Input (Đầu vào) rồi nhấn phím Enter.
  4. Bạn sẽ thấy một câu trả lời chào mừng bạn đến với Action 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, đồng thời đảm bảo rằng phương thức thực hiện của bạn có phản hồi cho từng thông tin nhập.

60acf1ff87b1a87f.png.

3. Thêm gói đăng ký nhận bản 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ọ vào những thời điểm 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 lựa chọn đăng ký thông tin cập nhật hằng ngày cho một ý định, rồi gửi cho họ một thông báo của Trợ lý để liên kết trực tiếp đến việc thực hiện ý định đó.

Trong bước này, bạn sẽ tìm hiểu về các gói thuê bao cập nhật hằng ngày và thêm các gói đó vào ý định Danh sách lớp của Hành động. Sau khi làm theo các hướng dẫn này, cuộc trò chuyện trong Hành động của bạn 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. Loại thông báo này cung cấp thông tin cập nhật và thông tin dành riêng cho ứng dụng. Gói thuê bao cập nhật hằng ngày là một cách đơn giản để tiếp cận người dùng trên các thiết bị di động không thông qua Trợ lý, miễn là ý định mà bạn gửi thông tin cập nhật tiếp tục mang lại giá trị cho người dùng hằng ngày.

Thông tin cập nhật hằng ngà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 cân nhắc các mẹo sau khi quyết định xem có nên thêm lượt đăng ký cập nhật hằng ngày vào một Hành động hay không:

  • Đảm bảo thông tin cập nhật hằng ngày sẽ giúp người dùng thấy được nhiều thông tin hữu ích mỗi ngày. Nếu thao tác nhấn vào một bản cập nhật hằng ngày luôn nhận được cùng một lời nhắc, thì người dùng có thể sẽ huỷ đăng ký sau vài ngày.
  • Đảm bảo hộp thoại của bạn phù hợp với người dùng nếu họ đi thẳng đến ý định cập nhật hằng ngày của bạn. Người dùng không nhất thiết phải bắt đầu cuộc trò chuyện. Do đó, bạn không nên có nhiều bối cảnh.
  • Cho người dùng thấy lợi ích mà Hành động của bạn mang lại 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 phải suy nghĩ "Tôi muốn nội dung này mỗi ngày" khi được cung cấp lựa chọn đăng ký.
  • Đừng khiến người dùng liên tục đưa ra các đề xuất đăng ký. Cung cấp gói thuê bao cập nhật hằng ngày ngay sau khi cho người dùng thấy nội dung họ muốn đăng ký và tránh làm phiền họ ở nơi khác.
  • Giữ cuộc trò chuyện ngắn gọ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ỉ nên bao gồm một phản hồi, sau đó đóng mà không yêu cầu người dùng nhập thông tin.

Bật thông tin cập nhật hằng ngày

Bạn có thể thêm gói đăng ký nhận bản cập nhật hằng ngày vào ý định chào mừng để người dùng bắt đầu cuộc trò chuyện hoặc có ý định cụ thể hơn để liên kết sâu họ đến 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 là ý định hợp lý nhất vì cuộc hội thoại sẽ thay đổi mỗi ngày và người dùng có thể thấy hữu ích khi được nhắc về các lớp hiện có.

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:

  1. Trong bảng điều khiển Actions, hãy nhấp vào thẻ Develop (Phát triển) rồi chọn Actions (Thao tác) trên thanh điều hướng bên trái.
  2. Nhấp vào Danh sách lớp trong danh sách Thao tác.
  3. Trong phần Mức độ tương tác của người dùng, hãy bật/tắt tuỳ chọn Bạn có muốn cung cấp bản 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ả để mô tả thông tin cập nhật hằng ngày. Bối cảnh sẽ là "Bạn muốn tôi gửi <nội dung tiêu đề> hằng ngày cho bạn vào lúc nào", vì vậy, hãy đảm bảo tiêu đề của bạn vừa có tính mô tả vừa phù hợp với âm thanh khi được đọc to. Trong ví dụ này, hãy đặt Content title (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ý việc 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 (Intent) trong bảng điều hướng bên trái để tạo một ý định mới.
  2. Đặt tên cho ý định mới này là Setup Updates.
  3. Trong phần Cụm từ huấn luyện, hãy thêm biểu thức người dùng sau:
  • 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 cuộc 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 một ý định mới để xử lý câu trả lời của người dùng đối với lời nhắc đăng ký nhận bản 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 một ý định mới.
  2. Đặt tên cho ý định mới này là 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 khi 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 cuộc gọi webhook cho ý định này.
  5. Nhấp vào Lưu ở đầu trang.

b871c2bdadac8abc.png

Triển khai phương thức thực hiện

Để triển khai phương thức thực hiện trong webhook, hãy hoàn tất các bước sau:

Tải 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 qua gói actions-on-google, để dữ liệu nhập có dạ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 tiêu đề của khối đề xuất để định nghĩa Suggestion của bạn 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 cho các ý định mới

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

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

Cung cấp lời nhắc thay thế cho người dùng

Cuối cùng, phản hồi Danh sách lớp của bạn sẽ cung cấp gói thuê bao cập nhật hằng ngày, nhưng điều này có một vấn đề. Vì cùng một phản hồi 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, nên họ sẽ vẫn được yêu cầu đăng ký nhận các bản cập nhật hằng ngày ngay cả khi họ chỉ đến từ một người dùng. Làm cách nào để bạn 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ố của đối tượng conv 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 các đối số này có chứa phần UPDATES hay không (cho biết người dùng đã bắt đầu cuộc trò chuyện từ một thông báo cập nhật hằng ngày) và thay đổi phản hồi cho phù hợp. Bạn cũng có thể dùng nhánh trò chuyện này để đóng hộp thoại ngay sau khi cung cấp danh sách lớp. Việc này là theo phương pháp hay nhất của chúng tôi về việc cập nhật thông tin hằng ngày một cách ngắn gọn.

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 cách:

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

Kiểm thử bản cập nhật hằng ngày

Trong cửa sổ dòng lệnh, hãy chạy lệnh sau để triển khai mã webhook đã cập nhật cho Firebase:

firebase deploy

Để kiểm tra câu lệnh nhắc lại tuỳ chỉnh trong Trình mô phỏng thao tác, hãy làm theo các bước sau:

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

83a15ecac8c71787.pngS

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

8582482eSHA67d5b.png

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

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

Ở 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 bằng cách thêm ý định Đã huỷ 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 huỷ lớp học. Bạn cũng sẽ thiết lập 3 thành phần cần thiết sau đây để gửi thông báo:

  • Tài khoản Actions API – Bạn gửi thông báo cho người dùng bằng cách gửi yêu cầu POST đến một API, vì vậy, bạn cần thiết lập tài khoản dịch vụ và thông tin đăng nhập để tương tác với API này.
  • Trình trợ giúp về 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 người dù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ã nhận dạng này.
  • Bộ nhớ – Để gửi thông báo đẩy tới người dùng bên ngoài cuộc trò chuyện, bạn cần lưu trữ mã nhận dạng người dùng ở nơi nào đó có thể được gọi lại tự nguyện. Trong ví dụ này, bạn sẽ thiết lập cơ sở dữ liệu Firestore để lưu trữ thông tin cho từng người dùng.

Sau khi làm theo các 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 của mình:

7c9d4b633c547823.pngS

Đ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. Loại thông báo này cung cấp thông tin cập nhật và thông tin 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 có lý do chính đáng để bật thông báo. Với bản cập nhật hằng ngày, người dùng đã biết rằng họ sẽ đượ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 liệu họ có đang chọn nhận thông báo không thường xuyên hay không, hay sẽ phải nhận 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 cân nhắc các mẹo sau khi quyết định xem 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 một số lịch biểu mẫu cho thông báo đẩy. Nếu bạn dự định chỉ 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 cung cấp thông tin hữu ích mỗi khi người dùng nhận được thông báo. Thông báo cũng có thể liên kết sâu đến một trong các ý định của Hành động, vì vậy, hãy đảm bảo ý định đó hữu ích và phù hợp.
  • Hãy nêu rõ ràng khi đề nghị người dùng đăng ký nhận thông báo đẩy. Họ sẽ hiểu được điều gì sẽ xảy ra với mỗi thông báo đẩy và biết được tần suất gửi thông báo.

Bật Actions API

  1. Mở bảng điều khiển Google Cloud rồi chọn tên dự án Actions (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 phần API và Dịch vụ > Thư viện.
  2. Tìm Actions API rồi nhấp vào Bật.

6d464f49c88e70b4.pngs

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

Actions API yêu cầu xác thực, vì vậy, bạn cần tạo một 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 khoá tài khoản dịch vụ cho Actions API:

  1. Trong trình đơn điều hướng của Google Cloud Console (☰), hãy chuyển đến phần API và Dịch vụ > Thông tin xác thực.
  2. Nhấp vào Tạo thông tin xác thực > Khoá 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 có đuôi @<project_id>.iam.gserviceaccount.com)
  • Loại khoá: JSON
  1. Nhấp vào Tạo.
  2. 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 ngoài cuộc trò chuyện, bạn cần có cách lưu trữ mã nhận dạng người dùng có thể tham chiếu từ mã thông báo. Trong ví dụ này, chúng ta sử dụng cơ sở dữ liệu Firestore để lưu trữ mã nhận dạng 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.
  2. Trong thanh điều hướng bên trái, hãy chuyển đến phần Phát triển > 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

Hãy làm theo các bước sau trong bảng điều khiển Dialogflow để tạo quy trình chọn nhận 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ý việc người dùng yêu cầu đăng ký nhận thông báo đẩy đối với các lớp học bị huỷ. Trong bảng điều khiển Dialogflow, hãy nhấp vào nút + bên cạnh Ý định (Intent) trong bảng điều hướng bên trái để tạo một ý định mới.
  2. Đặt tên cho ý định mới này là Setup Push Notifications.
  3. Trong phần Cụm từ huấn luyện, hãy thêm biểu thức người dùng sau:
  • 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 cuộc gọi webhook cho ý định này.
  2. Nhấp vào Lưu ở đầu trang.

3d99bc41d0492552.pngS

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 về 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 một ý định mới.
  2. Đặt tên cho ý định mới này là 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 khi người dùng hoàn tất quy trình đăng ký nhận 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 cuộc 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 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 đã bị huỷ.

Hãy làm theo các bước sau để thêm một ý định sẽ được người dùng nhấn vào thông báo đẩy kích hoạt:

  1. Trong bảng điều khiển Dialogflow, hãy nhấp vào nút + bên cạnh Ý định (Intent) trong bảng điều hướng bên trái để tạo một ý định mới.
  2. Đặt tên cho ý định mới này là Class Canceled.
  3. Trong phần Cụm từ huấn luyện, 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 cuộc gọi webhook cho ý định này.
  5. Nhấp vào Lưu ở đầu trang.

940379556f559631.pngS

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

Trong phiên bản chính thức, 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 trao đổi với Hành động của mình. Ý định này chỉ nhằm mục đích gỡ lỗi; trên thực tế, bạn không nên xử lý thông báo đẩy khi thực hiện đơn hàng hoặc được kích hoạt trong quá trình trò chuyện với Hành động.

Hãy 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 đến 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 (Intent) trong bảng điều hướng bên trái để tạo một ý định mới.
  2. Đặt tên cho ý định mới này là Test Notification.
  3. Trong phần Cụm từ huấn luyện, 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 cuộc gọi webhook cho ý định này.
  5. Nhấp vào Lưu ở đầu trang.

6967f5a997643eb8.pngS

Bật thông báo đẩy

Hãy làm theo các bước sau để bật thông báo đẩy cho ý định Đã huỷ 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, hãy nhấp vào Cài đặt tích hợp.
  3. Thêm Class Đã huỷ làm ý định Lệnh gọi ngầm. Bước này là cần thiết để Dialogflow nhận biết rằng người dùng có thể bắt đầu cuộc trò chuyện của bạn với ý định Đã huỷ lớp học (bằng cách nhấn vào thông báo đẩy).
  4. Nhấp vào Đóng.

1ac725231ed279a1.pngS

  1. Trong bảng điều khiển Actions, hãy nhấp vào thẻ Develop (Phát triển) rồi chọn Actions (Thao tác) trên thanh điều hướng bên trái.
  2. Nhấp vào Đã huỷ 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ắt tuỳ 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. Bối cảnh sẽ là "Tôi có thể gửi thông báo đẩy về <tiêu đề nội dung> không?", vậy nên hãy đảm bảo tiêu đề của bạn vừa có tính mô tả vừa phù hợp với âm thanh khi được đọc to. Trong ví dụ này, hãy đặt Content title (Tiêu đề nội dung) thành class cancelations.
  5. Nhấp vào Lưu ở đầu trang.

4304c7cd575f6de3.png.

Triển khai phương thức thực hiện

Để triển khai phương thức thực hiện trong webhook, hãy hoàn tất các bước sau:

Tải 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 qua gói actions-on-google, để dữ liệu nhập có dạ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 tiêu đề của khối đề xuất để định nghĩa Suggestion của bạn 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 mới

Để kết nối với cơ sở dữ liệu Firestore, 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ý việc xác thực và các yêu cầu gửi đến Actions API.

b2f84ff91b0e1396.png Trong tệp index.js, hãy thêm mã sau vào dữ liệu 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 huỷ 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 cách:

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 cho các ý định mới

Khi người dùng đăng ký nhận thông báo đẩy, hãy gọi trình trợ giúp UpdatePermission để yêu cầu người dùng cấp quyền. Nếu thành công, đối số PERMISSION sẽ được thêm vào các đối số của đối tượng conv mà bạn có thể kiểm tra để tổng hợp 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 người dùng từ các đối số của đối tượng conv rồi lưu mã đó vào cơ sở dữ liệu. Sau đó, bạn sẽ gửi mã nhận dạng người dùng này đến Actions API. Đây là cách Trợ lý xác định người nhận thông báo.

Cuối cùng, hãy thêm phương thức thực hiện cho ý định Class Canceled đượ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 phát hành công khai của Hành động này, tập lệnh thông báo của bạn sẽ cung cấp thêm thông tin linh động về lớp nào đã bị huỷ.

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 yêu cầu POST đến Actions API kèm theo mã nhận dạng người dù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 qua cơ sở dữ liệu Firestore của bạn và gửi thông báo đẩy đến mọi người dùng đã đăng ký nhận thông báo.

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

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 thử thông báo đẩy

Trong cửa sổ dòng lệnh, hãy chạy lệnh sau để triển khai mã webhook đã cập nhật cho Firebase:

firebase deploy

Để kiểm tra thông báo trong Trình mô phỏng thao tác, 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 (Kiểm thử).
  2. Nhập Talk to my test app vào trường Input (Đầu vào) rồi nhấn phím Enter.
  3. Nhập Learn about classes rồi nhấn phím Enter.
  4. Nhập Get notifications rồi nhấn phím Enter.
  5. Nếu bạn chưa cấp quyền cho Hành động gửi thông báo đẩy cho bạn, hãy nhập yes rồi nhấn Enter.
  6. Nhập yes rồi nhấn phím Enter. Tài khoản Google của bạn hiện đã được đăng ký nhận thông báo đẩy về 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 một cuộc trò chuyện mới.
  3. Nhập Test notification rồi nhấn phím Enter.

634dfcb0be8dfdec.png

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

33cbde513c10122e.png.

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

Cho đến nay, chúng ta đã 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. Tuy nhiên, những tính năng đó được dự đoán là có người dùng khám phá và sử dụng Hành động của bạn.

Bạn có thể tạo đường liên kết đến Trợ lý để liên kết trực tiếp người dùng trên thiết bị di động với Hành động trên Trợ lý của bạn. Vì đường liên kết đến Trợ lý là một siêu liên kết tiêu chuẩn, nên bạn có thể thêm đường liên kết đó vào một trang web hoặc bất kỳ tài liệu tiếp thị nào trên web, chẳng hạn 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 đến Trợ lý, cách tạo một đường liên kết cho ý định chào mừng của Hành động và cách thêm đường liên kết đó vào một trang web đơn giản để thử nghiệm.

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

Việc thu hút người dùng đến Hành động của bạn lần đầu tiên có thể là một thách thức, đặc biệt là khi họ cần gọi rõ ràng Hành động của bạn trên Trợ lý. Đường liên kết đến Trợ lý có thể giúp làm giảm bớt phiền hà bằng cách cung cấp cho người dùng đườ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 đến Trợ lý của bạn trên một thiết bị có Trợ lý, họ sẽ được đưa thẳng đến Hành động của bạn. Khi 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 thiết bị di động hoặc thiết bị khác không hỗ trợ Trợ lý, họ vẫn sẽ được chuyển đến trang thông tin trong Thư mục Actions của bạn (nếu đường liên kết đó đã được xuất bản). Nhờ đó, đườ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 đến Trợ lý có thể là một công cụ tương tác hữu ích. Vì vậy, bạn nên tạo đường liên kết đến Trợ lý nếu định quảng cáo Hành động thông qua trang web hoặc mạng xã hội của mình. Bạn chỉ cần lưu ý những mẹo sau trước khi tạo và phân phối một đường liên kết đến Trợ lý:

  • Đường liên kết đến 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 nháp, đường liên kết này sẽ chỉ hoạt động trên các thiết bị của bạn. Những người khác sẽ được đưa đến trang 404 trong thư mục Actions (Hành động).
  • Bạn có thể cho phép người dùng thử nghiệm liên kết 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. Xin lưu ý rằng chỉ những người dùng tham gia vào giai đoạn alpha hoặc beta của bạn mới có thể thử nghiệm liên kết Trợ lý của bạn.
  • Đảm bảo ý định đích của đường liên kết đến Trợ lý tạo ấn tượng tốt ban đầu với người dùng mới. Ý định chào mừng là đích đến mặc định cho một đường liên kết đến Trợ lý vì ý định này đã làm tốt 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ý cho ý định chào mừng:

  1. Trong bảng điều khiển Actions, hãy nhấp vào thẻ Develop (Phát triển) rồi chọn Actions (Thao tác) trên thanh điều hướng bên trái.
  2. Nhấp vào actions.intent.MAIN trong danh sách actions.intent.MAIN.
  3. Trong phần Đường liên kết, hãy bật/tắt tuỳ chọn Bạn có muốn bật URL cho hành động này không.
  4. Đặt Tiêu đề đường liên kết mang tính mô tả để mô tả Hành động của bạn. Đặt tiêu đề thành một cặp danh từ đơn giản để mô tả những gì người dùng có thể đạt được 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 ở cuối trang này và lưu lại để sử dụng sau này.
  6. Nhấp vào Lưu ở đầu trang.

55341b8102b71eab.png.

Triển khai trang web thử nghiệm

Để thử nghiệm mối liên kết với Trợ lý, bạn có thể sử dụng các công cụ của Firebase để triển khai một trang web thử nghiệm cùng với phương thức thực hiện của mình. 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 đường liên kết đến Trợ lý.

Chuyển đến thư mục /user-engagement-codelab-nodejs/start/public/ của phương thức thực hiện rồi mở tệp index.html trong 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 đến Trợ lý vào phần tử nội dung. Tệp sẽ có dạng như đoạn mã dưới đây:

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 cửa sổ dòng lệnh, hãy chạy lệnh sau để triển khai trang web thử nghiệm của bạn cho Firebase:

firebase deploy

Sau khi lệnh triển khai chạy xong, hãy ghi lại 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. Khi nhấp vào đường liên kết này trên thiết bị di động, bạn sẽ được chuyển đến ý định chào mừng của Hành động trong Trợ lý.

599845d647f5b624.pngS

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

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

Xin chúc mừng!

Giờ đây, bạn đã tìm hiểu về 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 nào có sẵn trên nền tảng này 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 khác

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

Hãy theo dõi chúng tôi trên Twitter @ActionsOnGoogle để luôn cập nhật những thông báo mới nhất của chúng tôi và đăng bài lên #AoGDevs để chia sẻ những công trình mà bạn đã xây dựng!

Bài khảo sát nhận ý kiến phản hồi

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