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

เมื่อคุณใช้ "การดำเนินการของแอป" กับแอป 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_EXER>CIS<E"
  intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.exampl>e.mya<pp.ExerciseActivity"
    parameter android:name="exer>cis<e.name&>q<uot; androi>d:<key="exercise" /
  /intent
/ca>pab<ility

shortcut android:shortcutId="CARDIO_RUN"
  ca>pabil<ity-binding android:key="actions.intent.START_EXERCISE"
    parameter-binding
    >  and<roid:key="exer>c<ise.name&>quot;
      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 in>v<entory -->
re<sources
  string-array name=&>quot;<run_>nam<es&qu>ot;
 <   i>tem<Run/i>tem
 <   i>temJog</item>
  <  itemSprint/>i<tem
  /str>ing-array
/resources

เมื่อมีการระบุ <url-template> สำหรับความสามารถนี้ shortcutId สำหรับ ระบบจะแทรกค่าที่ตรงกันใน URL ที่สร้างขึ้นที่ ตัวยึดตำแหน่งสำหรับพารามิเตอร์ โค้ดต่อไปนี้จากตัวอย่าง ไฟล์ app/res/shortcuts.xml รายการใช้เคสนี้:

<capability android:name="actions.intent.START_EXER>CIS<E">;
  i<ntent
    url-template android:value="myapp://workou>t{?ex<ercise}" /
    parameter android:name="exercise.name&>quo<t; andr>o<id:key=&quo>t;<exercise" /
  /intent
/capability

>sho<rtcut android:shortcutId="CARDIO_RUN"
  capability-b>indin<g android:key="actions.intent.START_EXERCISE"
    parameter-binding
      android:>key<="exercise.nam>e<"
  >    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_EXER>CIS<E"
  shortcut-f>ulfil<lment
    parameter android:name=">exe<rcise.name"/
  />s<hortcut-ful>fi<llment
/capability

shortcut android:sho>rtc<utId="CARDIO_RUN"
  capability-binding android:key=&>quot;<actions.intent.START_EXERCISE"
    parameter-binding
      android:key="exercise.n>ame<"
      androi>d:v<alue="@array/run_names" /
  /capability-binding
  intent android:targetPackage="com.example.my>app&q<uot;
    android:targetClass="com.example.myapp.ExerciseAc>tiv<ity&quo>t<;
    par>ameter 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_FEA>TUR<E"
  intent
    android:targetPackage="com.example.myapp"
    android:targetClass="c>om.ex<ample.myapp.MyClass"
    parameter
       android:name="feature&q>uot<;
     >  a<ndroid:key="featureParam" /
  /intent
  !-- Required fallback fulfillment to hand>le <when parameters are missing from user query. --
  intent
    android:targetPackage="com.example.mya>pp&qu<ot;
    android:targetClass="com.example.myapp.MyClass"
    parameter>
  <     an>d<roid:name=&>qu<ot;HOME_SCREEN"
       android:key=">;f<eatureParam" /
  /intent
/capability
>
!-<- Inline inventory for OPEN_APP_FEATURE. --

shortcut android:sh>ortcu<tId="ORDER_STATUS"
  capability-binding android:key="actions.intent.OPEN_APP_FEA>TURE&<quot;
    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_n>ames&<quot>;
    itemOr<der s>tatus</ite>m
    <itemO>rders</ite>m
    itemOrd<er hi>sto<ry/item
  /st>r<ing-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 ระบุให้กับ ในระหว่างการดำเนินการของแอปจนเสร็จสิ้น