เมื่อคุณใช้ "การดำเนินการของแอป" กับแอป Android คุณอาจพบว่าตัวเอง
ต้องจัดการกับคำขอที่อยู่ในรูปแบบของธีม เช่น พูดว่า
แอปฟิตเนสใช้ Intent ในตัว (BII) ของ START_EXERCISE
เพื่อให้
ผู้ใช้เริ่มการออกกำลังกายที่หลากหลายด้วยการถาม Assistant เกี่ยวกับสิ่งต่างๆ เช่น
"Ok Google เริ่มเรียกใช้ในแอป Example"
การบรรลุความตั้งใจนี้ ต้องใช้ตรรกะที่ตรงกันคำขอของคุณในการจัดการ ของการออกกำลังกาย รวมถึงรูปแบบต่างๆ อย่าง "วิ่งเยาะๆ" "ระยะสั้น" หรือ "เชื้อชาติ" ตรรกะนี้เริ่มยุ่งยากอย่างรวดเร็วเมื่อการออกกำลังกายที่ได้รับการสนับสนุนเพิ่มขึ้น
สำหรับ BII ที่รองรับ เช่น START_EXERCISE
คุณหลีกเลี่ยงการจับคู่ที่ซับซ้อนนี้ได้
โดยใช้พื้นที่โฆษณาแบบอินไลน์ พื้นที่โฆษณาแบบอินไลน์เป็นชุด
ทางลัดของ Android ที่กำหนดไว้ใน shortcuts.xml
ที่แสดงถึงฟีเจอร์และเนื้อหา
ในแอปของคุณ
ทางลัดแต่ละรายการจะมีตัวระบุรายการและรายการคําพ้องความหมาย ซึ่งแสดงถึงรูปแบบของผู้ใช้ที่อาจใช้อ้างอิงสินค้า ระหว่างการเรียกใช้ BII จะเปรียบเทียบพารามิเตอร์ BII ที่ผู้ใช้ระบุกับรายการคำพ้องความหมาย เมื่อ พบการจับคู่ที่ตรงกัน ระบบจะอัปเดตพารามิเตอร์ BII ไปยังรายการของทางลัดการจับคู่ ของคุณ
พื้นที่โฆษณาในบรรทัดช่วยให้ Google Assistant ลดความซับซ้อนของพารามิเตอร์ BII ค่าที่ระบุให้กับแอปพลิเคชันของคุณระหว่างการเรียกใช้การดำเนินการของแอป
ฟังก์ชันพื้นที่โฆษณาแบบอินไลน์ เช่น ตารางตรวจสอบสำหรับพารามิเตอร์ BII เพื่อแสดงออกถึงวิธีต่างๆ ที่ผู้ใช้ใช้อ้างถึงฟีเจอร์หรือเนื้อหาในแอปของคุณ โดยใช้ตัวระบุรายการที่คุณกำหนด ลดความซับซ้อนในการจับคู่คำขอของแอป โดยให้การดำเนินการคาดการณ์ตัวระบุสินค้าจาก BII พารามิเตอร์
![แผนภาพโฟลว์ผู้ใช้พื้นที่โฆษณาแบบอินไลน์](https://developer.android.com/static/guide/app-actions/images/appactions-inline-inventory-flow.png?authuser=5&hl=th)
START_EXERCISE
ที่ใช้องค์ประกอบ
พื้นที่โฆษณาในบรรทัดเพื่อตีความชื่อการออกกำลังกายที่ผู้ใช้ระบุสำหรับการรองรับ
ประเภทต่างๆ ในแอป
ข้อจำกัดและทางเลือก
ทางลัดของพื้นที่โฆษณาในบรรทัดมีข้อจำกัดต่อไปนี้
- ขีดจํากัดทางลัด: มีทางลัดของพื้นที่โฆษณาในบรรทัดได้สูงสุด 1,000 รายการ ที่กำหนดไว้ต่อแอป
- ขีดจำกัดคำพ้อง: ทางลัดของพื้นที่โฆษณาในบรรทัดแต่ละรายการมีได้สูงสุด 20 รายการ ค่าคำพ้องความหมาย
- คำจำกัดความแบบคงที่: ระบบจะประกาศทางลัดของพื้นที่โฆษณาแบบแทรกในบรรทัดแบบคงที่
ใน
shortcuts.xml
และสามารถอัปเดตให้กับผู้ใช้ของคุณโดยการเผยแพร่ เวอร์ชันแอปของคุณ
เนื่องจากข้อกำหนดสำหรับการกำหนดค่าแบบคงที่ พื้นที่โฆษณาแบบอินไลน์จะดีที่สุด เหมาะสำหรับการขยายข้อมูลแอปที่ไม่ได้ปรับตามโปรไฟล์ของผู้ใช้มีการเปลี่ยนแปลงไม่บ่อยนักไปยัง Assistant เช่น รายการในเมนู เส้นทางรถประจำทาง หรือขนาดเครื่องดื่ม สำหรับแท็กประเภทอื่นๆ เนื้อหา โปรดพิจารณาทางเลือกต่อไปนี้
พื้นที่โฆษณาในเว็บ: อนุญาตให้ Assistant ค้นหาเนื้อหาเว็บสาธารณะเมื่อ การจับคู่การค้นหาของผู้ใช้กับตัวระบุเนื้อหาแอปที่รองรับ พื้นที่โฆษณาในเว็บ ที่เกิดขึ้นแบบเรียลไทม์ในระหว่างการเรียกใช้ ช่วยให้คุณขยาย แคตตาล็อกผลิตภัณฑ์ โพสต์โซเชียลมีเดีย และเนื้อหาที่อัปเดตอื่นๆ บ่อยครั้ง Assistant
ทางลัดแบบไดนามิก: ขยายคลังเนื้อหาของแอปที่ปรับเปลี่ยนในแบบของคุณ Assistant ทางลัดแบบไดนามิกช่วยให้ผู้ใช้เล่นเพลงทั่วไปได้อย่างรวดเร็ว การดำเนินการต่างๆ เช่น สั่งซื้อเครื่องดื่มโปรดอีกครั้งจากแอปสั่งอาหาร หรือ ดึงรายการช็อปปิ้งในแอปจดโน้ตขึ้นมา
สร้างพื้นที่โฆษณาในบรรทัด
พื้นที่โฆษณาแบบอินไลน์ทำให้การพัฒนาง่ายขึ้นโดยมอบวิธีที่สะดวกในการเข้าใช้งาน Assistant แปลวิธีต่างๆ ที่ผู้ใช้ขอเนื้อหาและฟีเจอร์ของแอป ลงในตัวระบุที่คาดการณ์ได้ ซึ่งแอปพลิเคชันของคุณคาดหวังไว้ สำหรับ ตัวอย่างเช่น สมมติว่าแอปของคุณมีการออกกำลังกายแบบต่างๆ ที่ผู้ใช้สามารถเริ่มใช้ได้ เสียงของผู้ใช้ และแอปของคุณคาดหวังให้ผู้ใช้ส่งคำขอต่อไปนี้สำหรับ การออกกำลังกายประเภทเดียวกัน
- Ok Google เริ่มเรียกใช้ในแอป Example
- Ok Google เริ่มวิ่งในแอป Example App
ในทางลัดของพื้นที่โฆษณาในบรรทัด คุณตั้งค่า shortcutId
เป็น "CARDIO_RUN"
ตัวระบุการออกกำลังกายที่แอปของคุณคาดไว้ จากนั้นคุณระบุ "run" และ
"วิ่งเยาะๆ" เป็นคำพ้องความหมายที่เกี่ยวข้องกับ shortcutId
จากนั้นเมื่อผู้ใช้ทริกเกอร์
การดำเนินการของแอปที่มีคำค้นหาก่อนหน้า Assistant จะใช้ตัวระบุ
"CARDIO_RUN"
สำหรับพารามิเตอร์ BII เมื่อสร้างความตั้งใจที่จะดำเนินการตามคำสั่งซื้อ
ข้อมูลโค้ดต่อไปนี้จากไฟล์ app/res/shortcuts.xml
ตัวอย่างมีการใช้งาน
ในกรณีนี้
<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>
ในตัวอย่างก่อนหน้านี้ พื้นที่โฆษณาแบบอินไลน์ shortcut
ประกาศ
แท็ก <parameter-binding>
ภายในเอลิเมนต์ <capability-binding>
เชื่อมโยงกับพารามิเตอร์ exercise.name
BII ที่กำหนดไว้ใน
<capability>
ทรัพยากรอาร์เรย์สตริง @array/run_names
ระบุรายการคำพ้องความหมายใน
res/values/arrays.xml
ที่ Assistant จดจำได้และแมปกับ
รหัสสินค้า "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>
เมื่อมีการระบุ <url-template>
สำหรับความสามารถนี้ shortcutId
สำหรับ
ระบบจะแทรกค่าที่ตรงกันใน URL ที่สร้างขึ้นที่
ตัวยึดตำแหน่งสำหรับพารามิเตอร์ โค้ดต่อไปนี้จากตัวอย่าง
ไฟล์ app/res/shortcuts.xml
รายการใช้เคสนี้:
<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>
ในตัวอย่างก่อนหน้านี้ Assistant จะสร้าง Deep Link สำหรับการดำเนินการตามคำสั่งซื้อ
myapp://workout?exercise=CARDIO_RUN
การดำเนินการตามคำสั่งซื้อโดยใช้ Intent ทางลัด
โดยค่าเริ่มต้น ทางลัดจะให้ shortcutId
ของพื้นที่โฆษณาในบรรทัดที่ตรงกัน
เป็น intent
ของ capability
ที่ทางลัดเชื่อมโยงอยู่ ตามที่ประกาศไว้
ในแท็ก <capability-binding>
ของทางลัด คุณสามารถ
อีกวิธีหนึ่งคือระบุ intent
ที่กำหนดไว้ในทางลัดเองสำหรับ
Fulfillment ใหม่ด้วยการเพิ่มแท็ก <shortcut-fulfillment>
ลงใน capability
โค้ดต่อไปนี้จากไฟล์ app/res/shortcuts.xml
ตัวอย่างมีการใช้งาน
Fulfillment ทางลัด:
<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>
ในตัวอย่างก่อนหน้านี้ หากการค้นหาของผู้ใช้ตรงกับค่าสินค้าคงคลังในบรรทัด
สำหรับพารามิเตอร์ exercise.name
แท็ก <shortcut-fulfillment>
ระบุว่า intent
ของทางลัดที่เชื่อมโยงไว้ใช้ในการดำเนินการตามคำสั่งซื้อ
พื้นที่โฆษณาแบบอินไลน์สำหรับฟีเจอร์เปิดแอป BII
แม้ว่าพื้นที่โฆษณาแบบอินไลน์มักจะเป็นความสามารถที่ไม่บังคับสำหรับ BII ซึ่ง
รองรับ แต่จำเป็นสำหรับ BII บางรายการ เช่น OPEN_APP_FEATURE
ช่วงเวลานี้
BII ที่ใช้กันโดยทั่วไป ช่วยให้ผู้ใช้ทำ Deep Link ไปยังฟีเจอร์เฉพาะของแอปได้
ด้วย Assistant
ฟีเจอร์เปิดแอป BII ต้องมีพื้นที่โฆษณาในบรรทัดของชื่อฟีเจอร์แอปเพื่อ
ตรวจสอบว่ามีคุณลักษณะที่ผู้ใช้ร้องขออยู่ก่อนทำ Deep Link ผู้ใช้ไปยัง
แอปของคุณ
โค้ดต่อไปนี้จากไฟล์ app/res/shortcuts.xml
ตัวอย่างใช้การดำเนินการนี้
BII ที่มีทางลัดเดียวที่แสดงฟีเจอร์สถานะการสั่งซื้อของแอป
<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>
ทรัพยากรอาร์เรย์สตริงใน res/values/arrays.xml
@array/order_status_names
ระบุรายการของ
คำพ้องความหมายสำหรับฟีเจอร์นี้:
<resources>
<string-array name="order_status_names">
<item>Order status</item>
<item>Orders</item>
<item>Order history</item>
</string-array>
</resources>
จากความสามารถที่กล่าวมาก่อนหน้านี้ Assistant จะตอบสนองความต้องการที่หลากหลาย วลีสำหรับสถานที่เดียวกัน:
- "Ok Google แสดงสถานะการสั่งซื้อในแอป Example App"
- "Ok Google ขอดูคำสั่งซื้อของฉันในแอป Example"
- "Ok Google แสดงประวัติการสั่งซื้อของฉันในแอป Example"
ทดสอบพื้นที่โฆษณาในบรรทัด
ทดสอบสินค้าคงคลังโดยตรวจสอบค่าพารามิเตอร์ BII ที่ Assistant ระบุให้กับ
แอปพลิเคชันของคุณ ขณะเดียวกันก็เสริมความสามารถของการดำเนินการของแอปที่เกี่ยวข้องด้วย ในบรรทัด
พื้นที่โฆษณาจะทำงานด้วยการแทนที่ค่าที่ผู้ใช้ระบุของ BII ที่เชื่อมโยงกับพื้นที่โฆษณา
ด้วย shortcutId
ของทางลัดพื้นที่โฆษณาในบรรทัดที่ตรงกัน
สำหรับ
ตัวอย่างเช่น ความสามารถ START_EXERCISE
BII อาจใช้พื้นที่โฆษณาแบบอินไลน์เพื่อ
แปลพารามิเตอร์ BII ที่ผู้ใช้ระบุ "เรียกใช้" ตามการออกกำลังกาย
รหัส "CARDIO_RUN"
ปลั๊กอิน Google Assistant ให้คุณดูตัวอย่างแอปพื้นที่โฆษณาแบบอินไลน์ การดำเนินการใน Assistant ในอุปกรณ์ทดสอบ ทดสอบพื้นที่โฆษณาโดยใช้ปลั๊กอินโดย โดยทำตามขั้นตอนต่อไปนี้
- กำหนดค่าพารามิเตอร์ที่ผูกกับพื้นที่โฆษณาของความสามารถ BII ด้วย ค่าคำพ้องความหมายที่เชื่อมโยงกับพื้นที่โฆษณาในบรรทัด
- ทริกเกอร์ BII จากปลั๊กอินโดยเรียกใช้ในอุปกรณ์ทดสอบ
- ตรวจสอบค่าพารามิเตอร์ที่ได้ซึ่ง Assistant ระบุให้กับ ในระหว่างการดำเนินการของแอปจนเสร็จสิ้น