พื้นที่โฆษณาแบบอินไลน์

เมื่อคุณใช้ "การดำเนินการของแอป" กับแอป Android คุณอาจพบว่าตัวเอง ต้องจัดการกับคำขอที่อยู่ในรูปแบบของธีม เช่น พูดว่า แอปฟิตเนสใช้ Intent ในตัว (BII) ของ START_EXERCISE เพื่อให้ ผู้ใช้เริ่มการออกกำลังกายที่หลากหลายด้วยการถาม Assistant เกี่ยวกับสิ่งต่างๆ เช่น "Ok Google เริ่มเรียกใช้ในแอป Example"

การบรรลุความตั้งใจนี้ ต้องใช้ตรรกะที่ตรงกันคำขอของคุณในการจัดการ ของการออกกำลังกาย รวมถึงรูปแบบต่างๆ อย่าง "วิ่งเยาะๆ" "ระยะสั้น" หรือ "เชื้อชาติ" ตรรกะนี้เริ่มยุ่งยากอย่างรวดเร็วเมื่อการออกกำลังกายที่ได้รับการสนับสนุนเพิ่มขึ้น

สำหรับ BII ที่รองรับ เช่น START_EXERCISE คุณหลีกเลี่ยงการจับคู่ที่ซับซ้อนนี้ได้ โดยใช้พื้นที่โฆษณาแบบอินไลน์ พื้นที่โฆษณาแบบอินไลน์เป็นชุด ทางลัดของ Android ที่กำหนดไว้ใน shortcuts.xml ที่แสดงถึงฟีเจอร์และเนื้อหา ในแอปของคุณ

ทางลัดแต่ละรายการจะมีตัวระบุรายการและรายการคําพ้องความหมาย ซึ่งแสดงถึงรูปแบบของผู้ใช้ที่อาจใช้อ้างอิงสินค้า ระหว่างการเรียกใช้ BII จะเปรียบเทียบพารามิเตอร์ BII ที่ผู้ใช้ระบุกับรายการคำพ้องความหมาย เมื่อ พบการจับคู่ที่ตรงกัน ระบบจะอัปเดตพารามิเตอร์ BII ไปยังรายการของทางลัดการจับคู่ ของคุณ

พื้นที่โฆษณาในบรรทัดช่วยให้ Google Assistant ลดความซับซ้อนของพารามิเตอร์ BII ค่าที่ระบุให้กับแอปพลิเคชันของคุณระหว่างการเรียกใช้การดำเนินการของแอป

ฟังก์ชันพื้นที่โฆษณาแบบอินไลน์ เช่น ตารางตรวจสอบสำหรับพารามิเตอร์ BII เพื่อแสดงออกถึงวิธีต่างๆ ที่ผู้ใช้ใช้อ้างถึงฟีเจอร์หรือเนื้อหาในแอปของคุณ โดยใช้ตัวระบุรายการที่คุณกำหนด ลดความซับซ้อนในการจับคู่คำขอของแอป โดยให้การดำเนินการคาดการณ์ตัวระบุสินค้าจาก BII พารามิเตอร์

วันที่ แผนภาพโฟลว์ผู้ใช้พื้นที่โฆษณาแบบอินไลน์
รูปที่ 1 แผนผังโฟลว์ของความสามารถของ 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 ในอุปกรณ์ทดสอบ ทดสอบพื้นที่โฆษณาโดยใช้ปลั๊กอินโดย โดยทำตามขั้นตอนต่อไปนี้

  1. กำหนดค่าพารามิเตอร์ที่ผูกกับพื้นที่โฆษณาของความสามารถ BII ด้วย ค่าคำพ้องความหมายที่เชื่อมโยงกับพื้นที่โฆษณาในบรรทัด
  2. ทริกเกอร์ BII จากปลั๊กอินโดยเรียกใช้ในอุปกรณ์ทดสอบ
  3. ตรวจสอบค่าพารามิเตอร์ที่ได้ซึ่ง Assistant ระบุให้กับ ในระหว่างการดำเนินการของแอปจนเสร็จสิ้น