เมื่อใช้การดำเนินการของแอป ผู้ใช้จะเข้าสู่เนื้อหาของแอปได้โดยตรงด้วยการพูดว่า อย่างเช่น "Ok Google ขอดูเมนู Three Dot Cafe ใน ExampleApp" ฟังก์ชันนี้เรียกว่าการทำ Deep Link และอาจทำให้ ให้ผู้ใช้ทำสิ่งต่างๆ ให้เสร็จสิ้นด้วยแอป
เพื่อดำเนินการตามคำขอประเภทนี้ Google Assistant จะสร้าง Deep Link ไปยัง เนื้อหาที่ตรงกันในแอปของคุณ หากคุณดูแลรักษาเว็บไซต์อย่างต่อเนื่องด้วย ข้อมูลเนื้อหาหรือผลิตภัณฑ์ และ Deep Link ในแอปมีการจัดระเบียบไว้ตาม เนื้อหาเว็บสาธารณะนี้ คุณสามารถกำหนดค่า Assistant ให้ดึงข้อมูล URL สำหรับการดำเนินการ Fulfillment ใดๆ จากเว็บไซต์ของคุณโดยใช้พื้นที่โฆษณาบนเว็บ
พื้นที่โฆษณาในเว็บคือตำแหน่งเว็บไซต์ของ URL ของสินค้าที่รองรับ
ตามแอปของคุณ เมื่อผู้ใช้เรียกใช้การดำเนินการในแอป Assistant จะจับคู่กับผู้ใช้
คำค้นหา เช่น "Three Dot Cafe" ไปยัง URL ที่ตรงกันในดัชนีการค้นหาของ Google
ของเว็บไซต์ที่คุณระบุใน shortcuts.xml
สำหรับแอป Android
ข้อดี
พื้นที่โฆษณาบนเว็บมีข้อดีสำหรับแอปที่มีรายการขนาดใหญ่และอัปเดตเป็นประจำ รายการที่ผู้ใช้ดูหรือสั่งซื้อในแอป
ข้อมูลพื้นที่โฆษณาบนเว็บจะอยู่ในเว็บไซต์ของคุณ ซึ่งแตกต่างจากข้อมูลพื้นที่โฆษณาในบรรทัด ซึ่งจะจัดเก็บรายการ ไว้ในแอปของคุณ ให้ Assistant เข้าถึงข้อมูลเว็บได้เพื่อหลีกเลี่ยง ความเสี่ยงที่ข้อมูลสินค้าคงคลังในบรรทัดซึ่งไม่มีการอัปเดต ซึ่งสามารถอัปเดตได้โดย การเผยแพร่แอปเวอร์ชันใหม่
สินค้าคงคลังในบรรทัดจำกัดไว้ที่ 1,000 รายการ ในทางตรงกันข้าม พื้นที่โฆษณาบนเว็บ ไม่มีขีดจำกัดรายการ และเติบโตได้ตามความต้องการของคุณ
พื้นที่โฆษณาในเว็บจะช่วยลดความซับซ้อนของตรรกะของแอปโดยอนุญาตให้การดำเนินการตามคำสั่งซื้อเฉพาะ จัดการ URL เนื้อหาที่คาดเดาได้ ซึ่งดึงมาจากเว็บไซต์ของคุณ ในทางตรงกันข้าม ถ้า ไม่ได้กำหนดค่าพื้นที่โฆษณา Assistant จะสร้าง Deep Link สำหรับ Fulfillment ด้วยการแมปพารามิเตอร์ Intent กับตัวแปรในเทมเพลต URL บัญชี Fulfillment ใหม่จะต้องวิเคราะห์ URL ที่สร้างขึ้นแบบไดนามิกนี้เพื่อ ระบุว่าผู้ใช้ขอเอนทิตีที่รองรับในแอปของคุณหรือไม่
วิธีการทำงาน
ระหว่างการทำงานของแอป Deep Link ของ Assistant จะไปยังเนื้อหาแอปผ่าน
Intent (BII) ที่คุณกำหนดใน shortcuts.xml
Assistant ใช้ภาษาธรรมชาติ
การประมวลผลเพื่อระบุรายการที่เกี่ยวข้องในคำขอของผู้ใช้ และดึงข้อมูลรายการเหล่านั้น
ไว้เป็นพารามิเตอร์ BII จากนั้น Assistant จะสร้าง Deep Link โดยใช้พารามิเตอร์
ตามการกำหนดค่าการดำเนินการตามคำสั่งซื้อใน shortcuts.xml.
การสร้าง Deep Link สำหรับการดำเนินการตามคำสั่งซื้อทำได้ 3 วิธีดังนี้
- การแมปพารามิเตอร์: พารามิเตอร์ Intent ของ Maps กับตัวยึดตำแหน่งใน เทมเพลต URL ของการดำเนินการตามคำสั่งซื้อ
- พื้นที่โฆษณาแบบอินไลน์: จับคู่พารามิเตอร์ Intent กับรายการที่รองรับ
entities
ที่กำหนดไว้ในแอป - พื้นที่โฆษณาบนเว็บ: จับคู่พารามิเตอร์ความตั้งใจกับเนื้อหาที่พบในเว็บไซต์ ดัชนีการค้นหาของ Google
พื้นที่โฆษณาในเว็บคือรูปแบบ URL ของเว็บไซต์ที่นักพัฒนาซอฟต์แวร์กำหนด
เช่น https://www.exampleapp.com/restaurants/.*
แสดงชุดเอนทิตีของ
เอนทิตีที่แอปรองรับ
หากมีการกําหนดค่าพารามิเตอร์ BII สําหรับพื้นที่โฆษณาบนเว็บ Assistant
ค้นหาเว็บไซต์เพื่อดำเนินการจับคู่เอนทิตีกับคำค้นหาของผู้ใช้ จากนั้น Assistant
ส่งผลลัพธ์ URL ที่ตรงกับรูปแบบ URL ที่กำหนดค่าไว้ เช่น
https://www.exampleapp.com/restaurants/three-dot-cafe
เพื่อดำเนินการตามคำสั่งซื้อ
Intent ในตัวที่รองรับ
พารามิเตอร์ Intent บางรายการรองรับพื้นที่โฆษณาบนเว็บมีดังต่อไปนี้ BII:
- [
actions.intent.CREATE_REVIEW
] - [
actions.intent.GET_NEWS_ARTICLE
] - [
actions.intent.GET_REVIEW
] - [
actions.intent.GET_THING
] - [
actions.intent.ORDER_MENU_ITEM
] - [
actions.intent.GET_EXERCISE_PLAN
] - [
actions.intent.GET_DIGITAL_DOCUMENT
] - [
actions.intent.GET_ITEM_LIST
] - [
actions.intent.GET_OFFER
] - [
actions.intent.CREATE_OFFER
] - [
actions.intent.GET_PRODUCT
] - [
actions.intent.UPDATE_CART
] - [
actions.intent.CREATE_SOCIAL_MEDIA_CONNECTION
] - [
actions.intent.GET_IMAGE_OBJECT
] - [
actions.intent.GET_SOCIAL_MEDIA_POSTING
] - [
actions.intent.GET_SOCIAL_MEDIA_PROFILE
] - [
actions.intent.CREATE_TAXI_RESERVATION
] - [
actions.intent.CREATE_FLIGHT_RESERVATION
] - [
actions.intent.CREATE_LODGING_RESERVATION
] - [
actions.intent.GET_LOCAL_BUSINESS
] - [
actions.intent.GET_RESERVATION
] - [
actions.intent.UPDATE_RESERVATION
]
เพิ่มพื้นที่โฆษณาในเว็บ
เมื่อระบุ BII ที่รองรับได้แล้ว คุณจะเปิดใช้ BII นั้นสำหรับพื้นที่โฆษณาบนเว็บได้โดยการอัปเดต
shortcuts.xml
พร้อมรายละเอียดเกี่ยวกับเว็บไซต์ของคุณ ไฟล์ shortcuts.xml
คือ
ในโปรเจ็กต์ Android ซึ่งคุณกําหนด BII ที่แมปกับ
ฟังก์ชันการทำงานของแอปและวิธีที่ BII แต่ละรายการควรสร้างลิงก์ในรายละเอียด
ดำเนินการตามคำสั่งซื้อ ดูข้อมูลเพิ่มเติมเกี่ยวกับ shortcuts.xml
ได้ที่ Create shortcuts.xml
หากต้องการใช้พื้นที่โฆษณาบนเว็บสำหรับ BII ที่รองรับ ให้ทำตามขั้นตอนต่อไปนี้
ในไฟล์
shortcuts.xml
ของแอป ให้เพิ่มแท็ก<capability>
ด้วย กำหนดแอตทริบิวต์android:name
เป็นชื่อของ BII ที่คุณกำลังจัดการ พื้นที่โฆษณาบนเว็บ เช่นactions.intent.ORDER_MENU_ITEM
ในแท็ก
<capability>
ให้เพิ่มแท็ก<intent>
ที่มีandroid:action
เป็นชื่อของมุมมองที่จะเปิดใช้งานโดย Intent นี้ในแท็ก
<intent>
เดียวกัน ให้เพิ่มแท็ก<parameter>
และตั้งค่าแท็กandroid:name
กับพารามิเตอร์ BII ที่สอดคล้องกันมากที่สุด ต่อเอนทิตีที่หน้าเว็บของคุณอธิบายไว้ ตัวอย่างเช่น เมื่อระบุ พื้นที่โฆษณาเว็บสำหรับORDER_MENU_ITEM
คุณควรลิงก์หน้าเมนูไปยังmenuItem.name
ในแท็ก
<parameter>
ใหม่ ให้เพิ่มแท็ก<data>
และตั้งค่าแท็กandroid:pathPattern
เป็นรูปแบบ URL ของเส้นทางที่คุณต้องการ พื้นที่โฆษณาบนเว็บ
เมื่อกำหนดค่า shortcuts.xml
โดยใช้ขั้นตอนเหล่านี้ Assistant จะทำสิ่งต่อไปนี้ได้
เรียกเนื้อหาเว็บจากดัชนีการค้นหาของ Google ของรูปแบบ URL ที่คุณ
ที่ระบุไว้ในแอตทริบิวต์ android:pathPattern
จากนั้น Assistant จะระบุ URL
ลงใน Fulfillment ของคุณโดยใช้ผลลัพธ์ที่ตรงกับรูปแบบเส้นทาง URL ที่คุณ
กำหนดไว้ จากนั้นแอปจะนำผู้ใช้ไปยังตำแหน่งที่เฉพาะเจาะจงในแอปของคุณ โดยอิงตาม
เกี่ยวกับข้อมูล URL ที่ได้รับจาก Assistant
เช่น เว็บไซต์มีข้อมูลผลิตภัณฑ์ที่แสดงที่ใช้เส้นทาง URL
ขึ้นต้นด้วย https://www.examplecafe.com/items/
คุณใช้ pathPattern
ค่า https://www.examplecafe.com/items/.*
และ Assistant ใช้ URL นี้
ในการค้นหาเว็บเพื่อค้นหา URL การดำเนินการตามคำสั่งซื้อ เช่น
https://www.examplecafe.com/items/item123
หาก Assistant พบ URL ของพื้นที่โฆษณาบนเว็บที่ตรงกัน ก็จะระบุ URL นั้นไว้ใน
<data>
ของ Intent ที่ดำเนินการตามคำสั่งซื้อ เสมือนเป็น Deep Link ใช้เมนู
getData()
ของ Intent เพื่อรับ URL เป็นออบเจ็กต์ Uri
กิจกรรมบนแอปที่
ได้รับ Intent จะทำหน้าที่ตีความ URL และเปิดใช้งาน
อินเทอร์เฟซผู้ใช้ของแอปที่เหมาะสม
ตัวอย่าง shortcuts.xml
ตัวอย่างต่อไปนี้ระบุ ORDER_MENU_ITEM
BII ที่
ให้พื้นที่โฆษณาบนเว็บเพื่อแสดงผลการค้นหา URL สำหรับคำขอที่มี
พารามิเตอร์ menuItem.name
BII:
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<!-- Define URL match pattern in the pathPattern data field -->
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*"/>
</parameter>
</intent>
</capability>
</shortcuts>
ในตัวอย่างข้างต้น มีการระบุ pathPattern
สำหรับ menuItem.name
สั่งให้ Assistant แสดงเฉพาะ URL ที่ตรงกับรูปแบบ URL
https://www.examplecafe.com/items/.*
ตัวอย่าง shortcuts.xml
เพิ่มเติมของ BII ที่รองรับพื้นที่โฆษณาในเว็บมีดังนี้
มีอยู่ในเอกสารอ้างอิง
จัดการวิดีโอสำรองในกรณีที่ผลลัพธ์หายไป
ในกรณีที่ไม่มีการส่งผลลัพธ์พื้นที่โฆษณาบนเว็บกลับไปยังการดำเนินการตามคำสั่งซื้อ แอปของคุณควรใช้ตรรกะสำรอง เพื่อเติมเต็มการดำเนินการด้วย ประสบการณ์ของผู้ใช้ได้ สถานการณ์ที่ทําให้ผลลัพธ์หายไปมีดังนี้
- ไม่มีพารามิเตอร์ Intent: ผู้ใช้ละเว้นพารามิเตอร์ที่คาดไว้ใน หรือ Assistant ไม่เข้าใจพารามิเตอร์ใน อีกครั้ง
- ไม่มีผลลัพธ์ URL: Assistant ไม่พบเอนทิตีใน เว็บไซต์ที่ตรงกับคำค้นหาของผู้ใช้
คุณจะจัดการค่าพารามิเตอร์ที่ขาดหายไปได้โดยกำหนด <intent>
หลายรายการ
สำหรับความสามารถ ถ้า Assistant ไม่สามารถตอบสนองความตั้งใจแรก
จะเปลี่ยนไปเป็นความตั้งใจถัดไป และอื่นๆ
Intent สำรองไม่ควรต้องใช้พารามิเตอร์ แต่ควร มีความสามารถด้วย Deep Link ทั่วไป เช่น การแสดงการค้นหา ผลลัพธ์สำหรับการค้นหาของผู้ใช้
ในตัวอย่าง shortcuts.xml
ต่อไปนี้ ORDER_MENU_ITEM
BII
กำหนดการดำเนินการ 2 รายการ โดยรายการแรกคาดหวัง URL จาก menuItem.name
พารามิเตอร์ อย่างที่สองคือไม่ต้องใช้พารามิเตอร์ โดยกำหนดเส้นทางผู้ใช้ไปยังหน้าที่แสดง
รายการเมนูทั้งหมด
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*"/>
</parameter>
</intent>
<!-- Fallback intent with no required parameters -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.ViewMenuActivity">
<url-template android:value="myapp://app.examplecafe.com/menu/all-items" />
</intent>
</capability>
ในกรณีที่ไม่มีการส่งกลับ URL ของพื้นที่โฆษณาบนเว็บ เนื้อหาของผู้ใช้ อาจยังมีการใช้คำค้นหาใน Intent สำรอง เช่น เพื่อแสดงการค้นหา ผลลัพธ์
ในตัวอย่าง shortcuts.xml
ต่อไปนี้ มีการกำหนดองค์ประกอบ Intent 2 รายการ
- รายการแรกต้องมี Deep Link ของพื้นที่โฆษณาในเว็บจาก
menuItem.name
พารามิเตอร์ - หากไม่ได้แสดงผล Deep Link Intent ที่ 2 จะแสดงการค้นหา
โดยใช้ข้อความค้นหาของผู้ใช้จาก
menuItem.name
หากมี
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*" />
</parameter>
</intent>
<!-- Fallback intent displaying search results, using "menuItem.name" -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.SearchMenuActivity">
<parameter-mapping android:name="menuItem.name" android:key="food" />
<url-template android:value="https://www.examplecafe.com/search?q={?food}" />
</intent>
</capability>
เพิ่มการค้นหาในแอปด้วยพื้นที่โฆษณาบนเว็บ
คุณช่วยให้ผู้ใช้ค้นหาเนื้อหาเว็บในแอปได้โดยการรวมเว็บ
พื้นที่โฆษณาที่ใช้ actions.intent.GET\_THING
BII
BII นี้จะค้นหาเนื้อหาหรือเอนทิตีโดยใช้การค้นหาในแอปเริ่มต้น
แสดงในแอป โดยเปิดใช้คำค้นหาอย่างเช่น "Ok Google ขอดูการเดินป่าไปยังน้ำตกหน่อย"
บน SampleApp” กำหนดค่าพื้นที่โฆษณาบนเว็บสำหรับความสามารถของ thing.name
ที่ส่งโดย GET_THING
BII ซึ่งตรงกับผลลัพธ์ของเอนทิตีจาก
ผ่านเว็บไซต์สำหรับการดำเนินการตามคำสั่งซื้อ
สำหรับตัวอย่าง shortcuts.xml
ของพื้นที่โฆษณาบนเว็บ โปรดดูข้อมูลอ้างอิง GET\_THING
BII
การทดสอบพื้นที่โฆษณาในเว็บ
เมื่อคุณกำหนดพื้นที่โฆษณาบนเว็บสำหรับการดำเนินการตามคำสั่งซื้อ BII Assistant จะสร้าง
Deep Link โดยใช้ผลการค้นหาเว็บที่ตรงกับรูปแบบ urlTemplate
ที่คุณกำหนดไว้
พารามิเตอร์ BII ที่ระบุ หากไม่พบผลการค้นหาพื้นที่โฆษณาบนเว็บ Assistant
สร้าง URL ที่ตรงกับรูปแบบ urlTemplate
ของ Intent สำรอง คุณ
สามารถทดสอบการใช้งานพื้นที่โฆษณาในเว็บโดยยืนยันลิงก์ที่ Assistant
ที่ระบุคือ URL ที่ตรงกับรูปแบบ urlTemplate
ของพื้นที่โฆษณาบนเว็บ
ในตัวอย่าง ORDER_MENU_ITEM
BII ต่อไปนี้ Assistant จะสร้างพื้นที่โฆษณาบนเว็บ
ลิงก์การดำเนินการตามคำสั่งซื้อที่ตรงกับรูปแบบ urlFilter
ที่ระบุไว้ใน
menuItem.name
เช่น
https://www.examplecafe.com/items/nuggets
ความตั้งใจที่สองจะใช้ค่า
menuItem.name
และทำการค้นหาหาก Intent แรกไม่ตรงกับ
รูปแบบ URL
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<!-- web inventory fulfillment -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*" />
</parameter>
</intent>
<!-- search intent -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.MenuSearchActivity">
<parameter-mapping android:name="menuItem.name" android:key="food" />
<url-template android:value="https://www.examplecafe.com/search?q={?food}" />
</intent>
</capability>
ใช้เครื่องมือทดสอบ App Actions เพื่อทดสอบพื้นที่โฆษณาในเว็บบนหน้าร้านจริงหรือเสมือนจริง อุปกรณ์
ทำตามขั้นตอนต่อไปนี้เพื่อใช้เครื่องมือทดสอบ
- เชื่อมต่ออุปกรณ์ทดสอบกับที่แอปทำงานอยู่
- ใน Android Studio ไปที่เครื่องมือ > การดำเนินการของแอป > การทดสอบการดำเนินการของแอป เครื่องมือ
- คลิกสร้างตัวอย่าง
- ใน Android Studio ให้เรียกใช้แอปในอุปกรณ์ทดสอบ
- ใช้แอป Assistant ในอุปกรณ์ทดสอบเพื่อทดสอบการดำเนินการของแอป สำหรับ เช่น พูดว่า "Ok Google สั่งอาหารว่างที่ ExampleCafe"
- สังเกตลักษณะการทำงานของแอปหรือใช้โปรแกรมแก้ไขข้อบกพร่องของ Android Studio เพื่อ ยืนยันผลการดำเนินการที่ต้องการ