מלאי באינטרנט

בעזרת 'פעולות באפליקציה', המשתמשים יכולים לדלג ישירות לתוכן של האפליקציה על ידי אמירת למשל: "Hey Google, show me the menu for Three Dot Cafe ב-ExampleApp". הפונקציונליות הזו נקראת קישורי עומק, והיא יכולה לעזור לכם למשתמשים כדי לבצע משימות באפליקציה.

כדי למלא בקשה מהסוג הזה, Google Assistant יוצרת קישור עומק אל לתוכן תואם באפליקציה. אם אתם מתחזקים את האתר באופן פעיל על התוכן או על המוצרים, וקישורי העומק בתוך האפליקציה מאורגנים לפי את התוכן הציבורי הזה מהאינטרנט, אפשר להגדיר ש-Assistant תאחזר כתובות URL לצורך פעולה מילוי הזמנות מהאתר באמצעות מלאי באינטרנט.

מלאי שטחי פרסום באינטרנט הוא מיקום האתר של כתובות ה-URL של הפריטים שנתמכות על ידי האפליקציה. כשמשתמש מפעיל את הפעולה באפליקציה, Assistant מתאימה את המשתמש שאילתה, כמו "Three Dot Cafe", לכתובות ה-URL התואמות באינדקס החיפוש של Google של האתר שציינתם בshortcuts.xml לאפליקציה ל-Android.

יתרונות

מלאי באינטרנט מציע יתרונות לאפליקציות עם רשימות גדולות שמתעדכנות באופן קבוע פריטים שהמשתמשים צופים בהם או מזמינים אותם באפליקציה:

  • נתוני מלאי באינטרנט נמצאים באתר שלכם, בשונה מנתוני מלאי מוטבע, שבו נשמרים רשימות פריטים באפליקציה. כדי להימנע ממתן גישה ל-Assistant לנתוני האינטרנט, קיים סיכון לנתוני מלאי לא פעילים מוטבעים, שאפשר לעדכן רק עד לפרסם גרסה חדשה של האפליקציה.

  • רשימות מלאי מוגבלות ל-1,000 פריטים. לעומת זאת, מלאי באינטרנט אין מגבלת פריטים, והוא יכול לגדול בהתאם לצרכים שלך.

  • מלאי שטחי פרסום באינטרנט יכול לפשט את הלוגיקה של האפליקציה, כי הוא מאפשר למילוי ההזמנות רק תטפל בכתובות URL צפויות של תוכן שאוחזרו מהאתר שלכם. לעומת זאת, אם לא מוגדר מלאי שטחי פרסום, Assistant יוצרת קישורי עומק בשביל מילוי הזמנות על ידי מיפוי פרמטרים של Intent למשתנים בתבנית של כתובת URL. שלך לאחר מכן צריך לנתח את כתובת ה-URL הזו שנוצרת באופן דינמי, לקבוע אם משתמש ביקש ישות נתמכת באפליקציה שלכם.

איך זה עובד

במהלך פעולה באפליקציה, Assistant יוצרת קישורי עומק שמפנים לתוכן של האפליקציה דרך ה-Intents (BII) שמגדירים ב-shortcuts.xml. Assistant משתמשת בשפה טבעית מתבצע עיבוד כדי לזהות את הפריטים הרלוונטיים בבקשה של המשתמש ולחלץ אותם לפרמטרים של BII. לאחר מכן, Assistant יוצרת קישור עומק באמצעות הפרמטרים, על סמך הגדרת האספקה שלך בshortcuts.xml.

יש שלוש שיטות ליצירת קישורי עומק למילוי הזמנות:

  • מיפוי פרמטרים: פרמטרים של Intent במפות Google ל-placeholders תבנית לכתובת URL של מילוי הזמנות.
  • מלאי שטחי פרסום מוטבע: התאמה של פרמטרים של Intent לרשימה של ערכות נתמכות הוגדר entities באפליקציה.
  • מלאי שטחי פרסום באינטרנט: התאמה בין פרמטרים של Intent לתוכן שנמצא אינדקס החיפוש של Google.

מלאי באינטרנט הוא דפוס כתובת אתר שהמפתח מגדיר, כמו https://www.exampleapp.com/restaurants/.*, שמייצג קבוצת ישויות של של ישויות שהאפליקציה תומכת בהן.

אם מוגדר פרמטר BII למלאי שטחי פרסום באינטרנט, Assistant שולח שאילתה לאתר כדי לבצע התאמת ישות לשאילתת המשתמש. אחר כך Assistant מעבירה תוצאות של כתובות URL שתואמות לדפוס כתובת ה-URL שהוגדר, כמו https://www.exampleapp.com/restaurants/three-dot-cafe, למילוי ההזמנות.

איור 1. דוגמה לשאילתה של Assistant שמשתמשת במלאי שטחי פרסום באינטרנט כדי לאחזר ישות של מסעדה.

אובייקטים מובנים של 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 נתמך, מפעילים אותו למלאי באינטרנט על ידי עדכון shortcuts.xml עם פרטים על האתר שלך. הקובץ shortcuts.xml הוא בפרויקט Android שבו אתם מגדירים את ה-BII שממפה הפונקציונליות של האפליקציה ובאופן שבו כל BII צריך ליצור קישורי עומק לאפליקציה למלא. למידע נוסף על shortcuts.xml, אפשר לעיין במאמר יצירת shortcuts.xml.

כדי להשתמש במלאי באינטרנט עבור BII נתמך, פועלים לפי השלבים הבאים:

  1. בקובץ shortcuts.xml של האפליקציה, מוסיפים את התג <capability> עם מאפיין android:name שמוגדר לשם ה-BII שאיתו מטפלים מלאי באינטרנט, לדוגמה: actions.intent.ORDER_MENU_ITEM.

  2. בתג <capability>, מוסיפים את התג <intent> עם android:action מוגדר לשם התצוגה שתופעל על ידי Intent זה.

  3. באותו תג <intent>, מוסיפים תג <parameter> ומגדירים אותו android:name לפרמטר BII התואם ביותר לישות המתוארת על ידי דפי האינטרנט שלכם. לדוגמה, כשמספקים מלאי באינטרנט עבור ORDER_MENU_ITEM, עליך לקשר דפי תפריט אל menuItem.name

  4. בתג <parameter> החדש, מוסיפים תג <data> ומגדירים אותו android:pathPattern לתבנית כתובת ה-URL של הנתיב שרוצים שישמשו למלאי באינטרנט.

אם מגדירים את shortcuts.xml באמצעות השלבים האלה, Assistant תוכל לאחזר תוכן מהאינטרנט מאינדקס חיפוש Google של תבנית כתובת ה-URL שצוינו במאפיין android:pathPattern. לאחר מכן Assistant מספקת כתובת URL של מילוי ההזמנות באמצעות התוצאות שתואמות לתבנית נתיב כתובת ה-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> של הכוונה למילוי הזמנות, כאילו היה קישור עומק. משתמשים ב getData() של ה-Intent לקבלת כתובת ה-URL כאובייקט Uri. הפעילות באפליקציה מקבל את הכוונה והוא אחראי לפרש את כתובת ה-URL ולהפעיל ממשק המשתמש המתאים של האפליקציה.

דוגמה: shortcuts.xml

בדוגמה הבאה מוגדר BII של ORDER_MENU_ITEM מספק מלאי באינטרנט כדי להחזיר תוצאות של כתובות URL עבור בקשות שמכילות פרמטר BII menuItem.name:

<?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/.*

דוגמאות נוספות של BII שתומכות במלאי שטחי פרסום של shortcuts.xml במאמרי העזרה.

טיפול בחלופה לתוצאות חסרות

במצבים שבהם תוצאות של מלאי שטחי הפרסום באינטרנט לא מוחזרות למילוי הזמנות, עליך להטמיע לוגיקה חלופית באפליקציה כדי לבצע את הפעולה בצורה הטובה ביותר בחוויית המשתמש. מצבים שגורמים לתוצאות חסרות:

  • פרמטר Intent חסר: המשתמש השמט פרמטר נדרש ב או ש-Assistant לא הבינו את הפרמטר במשתמש בקשה.
  • תוצאה של כתובת URL חסרה: Assistant לא מצאה ישות האתר שתואם לשאילתת המשתמש.

כדי לטפל בערכי פרמטרים חסרים, אפשר להגדיר מספר <intent> ליכולת. אם Assistant לא יכולה למלא את הכוונה הראשונה, חוזר לכוונה הבאה, וכן הלאה.

אסור להגדיר פרמטרים של Intent חלופי. במקום זאת, להשיג את היכולת באמצעות קישור עומק כללי יותר, כמו הצגת חיפוש תוצאות עבור שאילתת המשתמש.

בדוגמה הבאה shortcuts.xml, ה-BII של ORDER_MENU_ITEM מגדיר שתי מילוי הזמנות: הראשונה מצפה לכתובת אתר מהשדה 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 של מלאי באינטרנט, התוכן של המשתמש עדיין ניתן להשתמש בשאילתה באובייקטים חלופיים, לדוגמה להצגת חיפוש תוצאות.

בדוגמה הבאה shortcuts.xml, מוגדרים שני רכיבי Intent:

  1. באפשרות הראשונה נדרש קישור עומק למלאי באינטרנט דרך menuItem.name הפרמטר.
  2. אם לא מוחזר קישור עומק, ה-Intent השני יציג חיפוש תוצאות, באמצעות שאילתת המשתמש מ-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>

הוספת חיפוש בתוך האפליקציה באמצעות מלאי באינטרנט

אפשר לאפשר למשתמשים לחפש תוכן מהאינטרנט באפליקציה על ידי שילוב דפי אינטרנט מלאי שטחי פרסום עם יישום של ה-BII של actions.intent.GET\_THING.

ה-BII הזה מחפש תוכן או ישויות באמצעות החיפוש שמוגדר כברירת מחדל בתוך האפליקציה תכונה באפליקציה, כדי להפעיל שאילתות כמו: "Hey Google, show me see me takes. " ב-SampleApp". על ידי הגדרת מלאי באינטרנט ליכולת של thing.name שמועבר על ידי ה-BII GET_THING, תוצאות של ישות תואמת מועברים למילוי הזמנות.

לעיון בדוגמאות של shortcuts.xml במלאי באינטרנט, אפשר לעיין בחומר העזר בנושא BII של GET\_THING.

בדיקה של מלאי שטחי הפרסום באינטרנט

כשמגדירים מלאי באינטרנט למילוי הזמנות BII, מערכת Assistant יוצרת קישור עומק באמצעות תוצאות אינטרנט שתואמות לדפוס urlTemplate שהגדרת עבור בפרמטר ה-BII שצוין. אם לא נמצאה תוצאה של מלאי שטחי הפרסום באינטרנט, Assistant יוצרת כתובת URL שתואמת לדפוס urlTemplate של הכוונה החלופית. שלך יכול לבדוק את ההטמעה של מלאי שטחי הפרסום באינטרנט על ידי אימות הקישורים ש-Assistant שמספקות כתובות URL שתואמות לדפוסי urlTemplate של מלאי שטחי הפרסום שלך באינטרנט.

בדוגמה הבאה של BII של ORDER_MENU_ITEM, Assistant יוצרת מלאי באינטרנט קישורים למילוי הזמנות שתואמים לדפוס urlFilter שצוין menuItem.name, לדוגמה: https://www.examplecafe.com/items/nuggets הכוונה השנייה לוקחת את הערך של menuItem.name ומבצע חיפוש אם הכוונה הראשונה לא תואמת תבנית 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>

אפשר להשתמש בכלי הבדיקה של פעולות באפליקציה כדי לבדוק מלאי שטחי פרסום באינטרנט בחנות פיזית או וירטואלית. במכשיר.

כדי להשתמש בכלי הבדיקה, צריך לבצע את השלבים הבאים:

  1. מחברים את מכשיר הבדיקה לאפליקציה שפועלת.
  2. ב-Android Studio, עוברים אל כלים > פעולות באפליקציה > בדיקת פעולות באפליקציה כלי.
  3. לוחצים על יצירת תצוגה מקדימה.
  4. ב-Android Studio, מריצים את האפליקציה במכשיר הבדיקה.
  5. צריך להשתמש באפליקציית Assistant במכשיר הבדיקה כדי לבדוק את הפעולה באפליקציה. עבור למשל, אפשר להגיד "Ok Google, order nuggets on ExampleCafe".
  6. חשוב לבדוק את התנהגות האפליקציה או להשתמש בכלי לניפוי באגים ב-Android Studio כדי מאמתים את התוצאה של הפעולה הרצויה.