Khoảng không quảng cáo nội tuyến

Khi triển khai Hành động trong ứng dụng cho ứng dụng Android, bạn có thể phải tự xử lý các yêu cầu là biến thể của một chủ đề. Ví dụ: giả sử ứng dụng thể dục của bạn triển khai START_EXERCISE ý định tích hợp (BII) để cho phép người dùng bắt đầu nhiều bài tập thể dục khác nhau bằng cách hỏi Trợ lý những câu như: "Ok Google, bắt đầu chạy trên Ứng dụng mẫu".

Việc thực hiện ý định này yêu cầu logic so khớp yêu cầu của bạn phải xử lý từng loại bài tập thể dục, bao gồm cả các biến thể như "chạy bộ", "chạy nước rút" hoặc "chạy đua". Logic này nhanh chóng trở nên rườm rà khi các bài tập thể dục được hỗ trợ tăng lên.

Đối với các BII được hỗ trợ, chẳng hạn như START_EXERCISE, bạn có thể tránh được logic so khớp phức tạp này bằng cách sử dụng một khoảng không quảng cáo nội tuyến. Khoảng không quảng cáo nội tuyến là một tập hợp các lối tắt tĩnh trên Android được xác định trong shortcuts.xml, đại diện cho các tính năng và nội dung trong ứng dụng của bạn.

Mỗi lối tắt chứa một giá trị nhận dạng mục và danh sách các từ đồng nghĩa thể hiện các biến thể về cách người dùng có thể tham chiếu đến mục. Trong quá trình gọi, BII sẽ so sánh tham số BII do người dùng cung cấp với danh sách từ đồng nghĩa. Khi tìm thấy kết quả trùng khớp, tham số BII sẽ được cập nhật thành giá trị nhận dạng mục của lối tắt đang so khớp.

Khoảng không quảng cáo nội tuyến cho phép Trợ lý Google đơn giản hoá các giá trị tham số BII được cung cấp cho ứng dụng của bạn ở các lệnh gọi Hành động trong ứng dụng.

Khoảng không quảng cáo nội tuyến hoạt động như bảng tìm kiếm cho các tham số BII, hiển thị nhiều cách người dùng tham chiếu đến các tính năng hoặc nội dung trong ứng dụng bằng giá trị nhận dạng mục mà bạn xác định. Tham số này giúp đơn giản hoá logic so khớp yêu cầu của ứng dụng bằng cách cho phép các phương thức thực hiện dự đoán giá trị nhận dạng mặt hàng từ các tham số BII.

Sơ đồ luồng người dùng của khoảng không quảng cáo nội tuyến
Hình 1. Sơ đồ luồng về khả năng của một START_EXERCISE sử dụng khoảng không quảng cáo nội tuyến để diễn giải tên các bài tập thể dục do người dùng cung cấp sang các loại bài tập thể dục được hỗ trợ trong ứng dụng.

Giới hạn và các lựa chọn thay thế

Lối tắt của khoảng không quảng cáo nội tuyến có các giới hạn sau:

  • Giới hạn lối tắt: Có thể xác định tối đa 1.000 lối tắt của khoảng không quảng cáo nội tuyến cho mỗi ứng dụng.
  • Giới hạn từ đồng nghĩa: Mỗi lối tắt của khoảng không quảng cáo nội tuyến có thể chứa tối đa 20 giá trị từ đồng nghĩa.
  • Định nghĩa tĩnh: Các lối tắt của khoảng không quảng cáo nội tuyến được khai báo tĩnh trong shortcuts.xml và chỉ có thể cập nhật cho người dùng của bạn bằng cách phát hành một phiên bản ứng dụng mới.

Theo yêu cầu của Google về cấu hình tĩnh, khoảng không quảng cáo nội tuyến phù hợp nhất với việc mở rộng thông tin ứng dụng không được cá nhân hoá và thường xuyên thay đổi cho Trợ lý, chẳng hạn như các mục trong trình đơn, tuyến xe buýt hoặc kích cỡ đồ uống. Đối với các loại nội dung khác, hãy cân nhắc những phương án thay thế sau:

  • Khoảng không quảng cáo trên web: cho phép Trợ lý truy vấn nội dung web công khai khi so khớp cụm từ tìm kiếm của người dùng với giá trị nhận dạng nội dung ứng dụng được hỗ trợ. Các truy vấn khoảng không quảng cáo trên web diễn ra theo thời gian thực trong lệnh gọi, cho phép bạn mở rộng danh mục sản phẩm, bài đăng trên mạng xã hội và các nội dung cập nhật thường xuyên khác cho Trợ lý.

  • Lối tắt động: mở rộng khoảng không quảng cáo của nội dung ứng dụng được cá nhân hoá cho Trợ lý. Phím tắt động cho phép người dùng nhanh chóng phát lại các hành động phổ biến, chẳng hạn như đặt lại đồ uống yêu thích của họ từ ứng dụng đặt đồ ăn hoặc lấy danh sách mua sắm trong ứng dụng ghi chú.

Tạo khoảng không quảng cáo nội tuyến

Khoảng không quảng cáo nội tuyến đơn giản hoá quá trình phát triển bằng cách cung cấp cho Trợ lý một lối diễn giải thuận tiện các cách khác nhau mà người dùng có thể yêu cầu nội dung và tính năng cho ứng dụng của bạn trong các giá trị nhận dạng có thể dự đoán mà ứng dụng của bạn mong đợi. Ví dụ: ứng dụng của bạn cung cấp nhiều bài tập thể dục mà người dùng có thể bắt đầu sử dụng giọng nói của họ và ứng dụng của bạn mong muốn người dùng thực hiện các yêu cầu sau cho cùng một loại bài tập thể dục:

  • Ok Google, hãy bắt đầu chạy trên Ứng dụng mẫu.
  • Ok Google, hãy bắt đầu chạy bộ trên trên Ứng dụng mẫu.

Trong lối tắt khoảng không quảng cáo nội tuyến, bạn phải đặt shortcutId thành "CARDIO_RUN", là giá trị nhận dạng bài tập thể dục mà ứng dụng của bạn dự kiến. Sau đó, bạn chỉ định "chạy" và "chạy bộ" là các từ đồng nghĩa đường liên kết với shortcutId. Sau đó, khi người dùng kích hoạt Hành động trong ứng dụng của bạn bằng các cụm từ tìm kiếm trước đó, Trợ lý sẽ sử dụng giá trị nhận dạng "CARDIO_RUN" cho tham số BII khi tạo ý định thực hiện nhiệm vụ.

Đoạn mã sau đây từ một tệp app/res/shortcuts.xml mẫu sẽ triển khai trường hợp này:

<capability android:name="actions.intent.START_EXERCISE">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.ExerciseActivity">
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
    </capability-binding>
</shortcut>

Trong mẫu trước đó, khoảng không quảng cáo nội tuyến shortcut khai báo thẻ <parameter-binding> trong phần tử <capability-binding>, liên kết thẻ đó với tham số exercise.name BII được xác định trong <capability>.

Tài nguyên mảng chuỗi @array/run_names chỉ định một danh sách các từ đồng nghĩa res/values/arrays.xml mà Trợ lý sẽ nhận dạng và ánh xạ với mã mục "CARDIO_RUN":

<!-- Synonym values for "CARDIO_RUN" inline inventory -->
<resources>
  <string-array name="run_names">
    <item>Run</item>
    <item>Jog</item>
    <item>Sprint</item>
  </string-array>
</resources>

Khi bạn đã cung cấp một <url-template> cho khả năng đó, shortcutId với giá trị phù hợp sẽ được chèn vào URL được tạo tại phần giữ chỗ tương ứng cho tham số. Mã sau đây từ một tệp app/res/shortcuts.xml mẫu sẽ triển khai trường hợp này:

<capability android:name="actions.intent.START_EXERCISE">
  <intent>
    <url-template android:value="myapp://workout{?exercise}" />
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
  </capability-binding>
</shortcut>

Trong mẫu trước, Trợ lý sẽ tạo đường liên kết sâu để thực hiện myapp://workout?exercise=CARDIO_RUN.

Thực hiện nhiệm vụ bằng cách sử dụng ý định qua lối tắt

Theo mặc định, phím tắt cung cấp shortcutId của giá trị khoảng không quảng cáo nội tuyến phù hợp với intent của capability mà lối tắt liên kết, như được khai báo trong<capability-binding>. Bạn có thể chỉ định thay thế một intent được xác định trong chính lối tắt dùng để thực hiện hành động bằng cách thêm thẻ <shortcut-fulfillment> vào capability.

Mã sau đây từ tệp app/res/shortcuts.xml mẫu sẽ triển khai việc thực hiện lối tắt:

<capability android:name="actions.intent.START_EXERCISE">
  <shortcut-fulfillment>
    <parameter android:name="exercise.name"/>
  </shortcut-fulfillment>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
  </capability-binding>
  <intent android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.ExerciseActivity">
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</shortcut>

Trong mẫu trước đó, nếu truy vấn của người dùng khớp với giá trị khoảng không quảng cáo nội tuyến cho tham số exercise.name, thì thẻ <shortcut-fulfillment> sẽ chỉ định intent của lối tắt ràng buộc sẽ dùng để thực hiện nhiệm vụ.

Khoảng không quảng cáo nội tuyến cho BII của tính năng ứng dụng mở

Mặc dù khoảng không quảng cáo nội tuyến thường là một khả năng không bắt buộc cho các BII hỗ trợ nó. Tuy nhiên, đối với một số BII nhất định thì nó là bắt buộc, chẳng hạn như OPEN_APP_FEATURE. Phương thức BII thường được dùng này cho phép người dùng đường liên kết sâu đến các tính năng cụ thể của ứng dụng, bằng cách sử dụng Trợ lý. BII của tính năng ứng dụng mở yêu cầu khoảng không quảng cáo nội tuyến của các tên tính năng ứng dụng để xác minh một tính năng do người dùng yêu cầu tồn tại trước khi liên kết sâu người dùng đó đến ứng dụng của bạn.

Mã mẫu sau đây từ một tệp app/res/shortcuts.xml mẫu triển khai BII này bằng một lối tắt duy nhất đại diện cho tính năng trạng thái của ứng dụng:

<capability android:name="actions.intent.OPEN_APP_FEATURE">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.MyClass">
    <parameter
       android:name="feature"
       android:key="featureParam" />
  </intent>
  <!-- Required fallback fulfillment to handle when parameters are missing from user query. -->
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.MyClass">
    <parameter
       android:name="HOME_SCREEN"
       android:key="featureParam" />
  </intent>
</capability>

<!-- Inline inventory for OPEN_APP_FEATURE. -->

<shortcut android:shortcutId="ORDER_STATUS">
  <capability-binding android:key="actions.intent.OPEN_APP_FEATURE">
    <parameter-binding
      android:key="feature"
      android:value="@array/order_status_names" />
    </capability-binding>
</shortcut>

Các tài nguyên mảng chuỗi trong res/values/arrays.xml, @array/order_status_names, chỉ định danh sách các từ đồng nghĩa cho tính năng này:

<resources>
  <string-array name="order_status_names">
    <item>Order status</item>
    <item>Orders</item>
    <item>Order history</item>
  </string-array>
</resources>

Với khả năng trước đó, Trợ lý có thể đáp ứng nhiều cụm từ cho cùng một tính năng:

  • "Ok Google, cho tôi xem trạng thái đơn đặt hàng của tôi trên Ứng dụng mẫu".
  • "Ok Google, cho tôi xem các đơn đặt hàng của tôi trên Ứng dụng mẫu".
  • "Ok Google, cho tôi các đơn hàng tôi đã đặt trên Ứng dụng mẫu".

Kiểm thử khoảng không quảng cáo nội tuyến

Kiểm thử khoảng không quảng cáo của bạn bằng cách kiểm tra các giá trị tham số BII mà Trợ lý cung cấp cho ứng dụng của bạn, đồng thời thực hiện các khả năng có liên quan ở Hành động trong ứng dụng. Khoảng không quảng cáo nội tuyến hoạt động bằng cách thay thế giá trị do người dùng cung cấp của tham số BII liên kết với khoảng không quảng cáo qua shortcutId của lối tắt phù hợp với khoảng không quảng cáo nội tuyến.

Ví dụ: một khả năng BII START_EXERCISE có thể sử dụng khoảng không quảng cáo nội tuyến để diễn giải tham số BII do người dùng cung cấp (chẳng hạn như "Chạy") thành mã nhận dạng ngoại lệ tương ứng "CARDIO_RUN".

Trình bổ trợ Trợ lý Google cho phép bạn xem trước Hành động trong ứng dụng trong khoảng không quảng cáo nội tuyến của mình trong Trợ lý trên một thiết bị kiểm thử. Hãy kiểm thử khoảng không quảng cáo của bạn bằng trình bổ trợ bằng cách làm theo các bước sau:

  1. Định cấu hình các tham số liên kết với khoảng không quảng cáo của khả năng BII với các giá trị đồng nghĩa liên quan đến khoảng không quảng cáo nội tuyến.
  2. Kích hoạt BII từ trình bổ trợ và gọi BII đó trên thiết bị kiểm thử.
  3. Kiểm tra các giá trị tham số thu được mà Trợ lý cung cấp cho ứng dụng của bạn trong quá trình thực hiện Hành động trong ứng dụng.