Web envanteri

Uygulama İşlemleri sayesinde kullanıcılar söyleyerek doğrudan uygulamanızın içeriğine atlayabilirler. "Ok Google, ExampleApp'te Three Dot Cafe'nin menüsünü göster" gibi şeyler. Derin bağlantı adı verilen bu işlev, kullanıcıların uygulamanızla işlerini tamamlamalarına yardımcı olur.

Google Asistan bu tür istekleri yerine getirmek için şuna derin bağlantı oluşturur: eşleşen içerik hakkında bilgi edindiniz. Web sitenizi aktif olarak içerik veya ürün bilgilerini sağlamalısınız ve uygulama içi derin bağlantılarınız herkese açık web içeriğinde işlem yapmak için URL'leri getirecek şekilde yapılandırabilirsiniz. sipariş karşılama işlemi gerçekleştirebilirsiniz.

Web envanteri, desteklenen öğe URL'lerinin web sitesi konumudur. elde edebilirsiniz. Kullanıcı uygulama işleminizi çağırdığında Asistan, kullanıcıyla eşleşir "Üç Nokta Kafe" gibi bir sorguyla Google arama dizinindeki ilgili URL'lere Android uygulamanız için shortcuts.xml bölümünde belirttiğiniz web sitesinin.

Avantajlar

Web envanteri, hem büyük hem de düzenli olarak güncellenen içerik listelerine sahip uygulamalar için kullanıcıların uygulamada görüntülediği veya sipariş ettiği öğeler:

  • Web envanteri verileri, satır içi envanter verilerinin aksine web sitenizde yer alır. depolayan Google Fotoğraflar'a erişebilir. Asistan'ın web verilerine erişmesine izin vermek yalnızca şunlar tarafından güncellenebilecek eski satır içi envanter verileri riskini uygulamanın yeni bir sürümünü yayınlamak.

  • Satır içi envanterler 1.000 öğeyle sınırlıdır. Öte yandan web envanteri, sınırsızdır ve ihtiyaçlarınıza göre büyüyebilir.

  • Web envanteri, sipariş karşılamanın yalnızca web sitenizden alınan öngörülebilir içerik URL'lerini işleme alabilir. Buna karşın envanter yapılandırılmadığında Asistan, intent parametrelerini bir URL şablonundaki değişkenlerle eşleyerek istek karşılama. Sizin Karşılama Kullanıcının uygulamanızda desteklenen bir varlık isteyip istemediğini belirleyebilirsiniz.

İşleyiş şekli

Uygulama İşlemi sırasında Asistan, yerleşik uygulama üzerinden uygulama içeriğine derin bağlantı verir shortcuts.xml içinde tanımladığınız amaçlar (BII'ler). Asistan doğal dil kullanır Kullanıcının isteğindeki alakalı öğeleri tespit etmek ve bunları çıkarmak için dönüştürülebilir. Ardından Asistan, bu parametreleri kullanarak shortcuts.xml. hizmetindeki sipariş karşılama yapılandırmanıza göre

Sipariş karşılama için derin bağlantı oluşturmanın üç yöntemi vardır:

  • Parametre eşleme: Amaç parametrelerini sipariş karşılama URL'si şablonu.
  • Satır içi envanter: Amaç parametrelerini desteklenenler listesiyle eşleştirir entities uygulamada tanımlandı.
  • Web envanteri: Amaç parametrelerini bir web sitesinin Google arama dizini.

Web envanteri, geliştirici tarafından tanımlanan bir web sitesi URL'si kalıbıdır. https://www.exampleapp.com/restaurants/.* gibi bir varlık grubunu temsil eder Google Analytics 4'te tarama yapar.

Web envanteri için BII parametresi yapılandırılmışsa Asistan Kullanıcı sorgusuyla bir öğe eşleştirmesi yapmak için web sitesini sorgular. Asistan, ardından yapılandırılmış URL kalıbıyla eşleşen URL sonuçlarını aktarır (örneğin, https://www.exampleapp.com/restaurants/three-dot-cafe, karşılama isteğinize.

Şekil 1. Bir alan adı almak için web envanterini kullanan örnek bir Asistan sorgusu restoran varlığı öğesi.

Desteklenen yerleşik amaçlar

Web envanteri, belirli amaç parametreleri için aşağıdakiler tarafından desteklenir. BBI'ler:

  • [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]
ziyaret edin.

Web envanteri ekle

Desteklenen bir BII'yi belirledikten sonra Web sitenizle ilgili ayrıntıları içeren shortcuts.xml. shortcuts.xml dosyası bir Bu kaynak, Android projenizde işletmenizle eşlenen BBI'ları tanımladığınız, her BII'nin uygulamanız için derin bağlantıları nasıl oluşturması gerektiğini ve yardımcı olur. shortcuts.xml hakkında daha fazla bilgi edinmek için Kısayollar.xml oluşturma başlıklı makaleyi inceleyin.

Desteklenen bir BII için web envanterini kullanmak istiyorsanız şu adımları uygulayın:

  1. Uygulamanızın shortcuts.xml dosyasına bir <capability> etiketi ekleyin ve android:name özelliği, kullandığınız BII'nin adına ayarlanır. web envanteri, örneğin: actions.intent.ORDER_MENU_ITEM.

  2. <capability> etiketine, android:action içeren bir <intent> etiketi ekleyin. özelliği, bu amaç tarafından etkinleştirilecek görünümün adına göre ayarlanmış olmalıdır.

  3. Aynı <intent> etiketine bir <parameter> etiketi ekleyin ve En yakın karşılık gelen BII parametresine android:name özelliği web sayfalarınızın açıkladığı varlıkla ilişkilendirilmesi gerekir. Örneğin, ekip üyelerinde ORDER_MENU_ITEM için web envanteri kullanıyorsanız menü sayfalarını menuItem.name.

  4. Yeni <parameter> etiketine <data> etiketi ekleyin ve android:pathPattern özelliğini, istediğiniz yolun URL kalıbına ekleyin web envanteri için kullanın.

Bu adımları kullanarak shortcuts.xml uygulamasını yapılandırdığınızda Asistan şunları yapabilir: oluşturduğunuz URL kalıbının Google arama dizininden web içeriği alma android:pathPattern özelliğinde sunulur. Asistan bir URL sağlar değeri karşıladığınız URL yolu kalıbıyla eşleşen sonuçları kullanarak tanımlanmıştır. Ardından, uygulamanız, ziyaret edilen kullanıcıya göre kullanıcıyı uygulamanızdaki belirli bir yere yönlendirir. Google Asistan tarafından sağlanan URL verileri.

Örneğin, web sitenizde URL yolu kullanan ürün listelemeleri bulunuyor https://www.examplecafe.com/items/ ile başlıyor. pathPattern kullanıyorsunuz https://www.examplecafe.com/items/.* değerini kullanır ve Asistan bu URL'yi kullanır bir sipariş karşılama URL'si bulmak için web aramasında https://www.examplecafe.com/items/item123.

Asistan, eşleşen bir web envanteri URL'si bulursa bunu <data> alanı (bu bir derin bağlantıymış gibi görünür). Şunu kullanın: getData() yöntemini kullanarak URL'yi bir Uri nesnesi olarak alabilirsiniz. Uygulama etkinliği, Kullanıcı, URL'yi yorumlamaktan ve uygun uygulama kullanıcı arayüzü.

Örnek kısayollar.xml

Aşağıdaki örnekte ORDER_MENU_ITEM BII tanımlanır ve içeren istekler için URL sonuçlarını döndürecek bir web envanteri sağlar: menuItem.name BII parametresi:

<?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>

Yukarıdaki örnekte menuItem.name,pathPattern Asistan'a yalnızca URL kalıbıyla eşleşen URL'leri döndürmesi talimatını verir: https://www.examplecafe.com/items/.*

Web envanterini destekleyen diğer shortcuts.xml BII örneği: referans belgelerinde bulabilirsiniz.

Eksik sonuçlar için yedek işleme

Web envanteri sonuçlarının gönderiminize döndürülmediği durumlarda uygulamanız, işlemi en iyi şekilde gerçekleştirmek için yedek mantık ne kadar iyi karşıladığını görebileceksiniz. Eksik sonuçlara neden olan durumlar şunlardır:

  • Amaç parametresi eksik: Kullanıcı, sorgu veya Asistan, kullanıcıdaki parametreyi anlamadı isteğinde bulunabilirsiniz.
  • Eksik URL sonucu: Asistan, kullanıcı sorgusuyla eşleşen web sitesidir.

Birden fazla <intent> tanımlayarak eksik parametre değerlerini ele alabilirsiniz. unsurlarına sahip olmanızı sağlar. Asistan ilk amacı yerine getiremezse bir sonraki amaca geri döner ve bu şekilde devam eder.

Yedek amaçlar parametre gerektirmemelidir. Bunun yerine daha genel bir derin bağlantıyla (ör. arama sonuçları sayfasında) sonuç elde eder.

Aşağıdaki shortcuts.xml örneğinde ORDER_MENU_ITEM BII iki karşılamayı tanımlar: İlki, menuItem.name öğesinden bir URL bekler parametresinden sonra bir değer girin. İkincisi ise herhangi bir parametre gerektirmez ve kullanıcıyı, menü öğelerini tıklayın.

<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>

Bir web envanteri URL'sinin döndürülmediği durumlarda, kullanıcının içeriği sorgusu, yedek amaçlarda (örneğin, Görüntülü Reklam Ağı araması yapmak için) kullanılmaya devam edebilir. sonuç.

Aşağıdaki shortcuts.xml örneğinde iki intent öğesi tanımlanmış:

  1. İlki, menuItem.name içinden bir web envanteri derin bağlantısı gerektirir parametresinden sonra bir değer girin.
  2. Derin bağlantı döndürülmezse ikinci amaç, aramayı menuItem.name sorgusu kullanılarak oluşturulur.
<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>

Web envanteriyle uygulama içi arama özelliği ekleyin

Web'i birleştirerek kullanıcıların uygulamanızda web içeriği aramalarına olanak tanıyabilirsiniz actions.intent.GET\_THING BII uygulamasıyla envanter oluşturabilirsiniz.

Bu BII, varsayılan uygulama içi aramayı kullanarak içerik veya varlık arar. "Ok Google, şelale yürüyüşlerini göster" gibi sorguları etkinleştirebilir. SampleApp'te." thing.name özelliği için web envanterini yapılandırarak GET_THING BII tarafından iletilen parametreyle eşleşen öğe sonuçları, web sitesi sipariş karşılama için iletilir.

Web envanteri shortcuts.xml örnekleri için GET\_THING BII referansına bakın.

Web envanterini test etme

BII karşılama için bir web envanteri tanımladığınızda Asistan, Tanımladığınız urlTemplate kalıbıyla eşleşen web sonuçlarını kullanan derin bağlantı belirtilen BII parametresine ayarlanır. Web envanteri sonucu bulunamazsa Asistan yedek amacınızın urlTemplate kalıbıyla eşleşen bir URL oluşturur. Siz web envanteri uygulamanızı test edebilir. Bunun için, Asistan'ın sağlayan, web envanterinizin urlTemplate kalıplarıyla eşleşen URL'lerdir.

Aşağıdaki ORDER_MENU_ITEM BII örneğinde Asistan, web envanteri oluşturur. Şu koşulda belirtilen urlFilter kalıbıyla eşleşen sipariş karşılama bağlantıları: menuItem.name parametresi, örneğin: https://www.examplecafe.com/items/nuggets. İkinci intent ise menuItem.name ve ilk intent, URL kalıbı.

<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>

Web envanterini fiziksel veya sanal bir cihazda test etmek için Uygulama İşlemleri Test Aracı'nı kullanın olanak tanır.

Test aracını kullanmak için aşağıdaki adımları izleyin:

  1. Test cihazınızı, çalışan uygulamanıza bağlayın.
  2. Android Studio'da Araçlar > Uygulama İşlemleri > Uygulama İşlemleri Testi aracını kullanın.
  3. Önizleme oluştur'u tıklayın.
  4. Android Studio'da, uygulamanızı test cihazınızda çalıştırın.
  5. Uygulama İşleminizi test etmek için test cihazınızdaki Asistan uygulamasını kullanın. Örneğin, "Ok Google, OrnekCafe'de çörek sipariş et" gibi bir şey diyebilirsin.
  6. Aşağıdaki işlemler için uygulamanızın davranışını gözlemleyin veya Android Studio hata ayıklayıcısını kullanın: istenen eylem sonucunu doğrulayabilirsiniz.