La barra de búsqueda moderna de comercio electrónico es mucho más que un campo de entrada. Es un asistente interactivo y dinámico que guía a los usuarios hacia los productos adecuados incluso antes de que terminen de ingresar texto. Esta experiencia de búsqueda mientras escribes (SAYT), que muestra sugerencias de búsquedas, marcas populares, categorías pertinentes y hasta los principales resultados de productos en tiempo real, fomenta la participación del usuario y aumenta la probabilidad de conversión.
Si bien Vertex AI Search for Commerce proporciona APIs distintas para el autocompletado de consultas y la búsqueda de productos, intencionalmente deja abierta la implementación final de una experiencia del usuario de SAYT.
En esta guía para compilar con Vertex AI Search para el comercio, se exploran dos patrones de diseño principales para implementar un widget de SAYT sólido con las APIs de Vertex AI Search para el comercio, y se detallan las ventajas y desventajas de cada enfoque.
Comprende los componentes principales
Para crear una función de SAYT integral, debes comprender las dos APIs fundamentales que proporciona Vertex AI Search for Commerce:
API de
CompleteQuery
: Es el cerebro detrás de las sugerencias de autocompletar.- Función: Para una cadena de entrada determinada, como labial, devuelve una lista de sugerencias para completar la búsqueda, incluidos lápiz labial y brillo labial, marcas populares asociadas y categorías relevantes.
- Costo: Esta API se incluye en los precios del paquete de Vertex AI Search for Commerce.
- Rendimiento: Es una API de alta capacidad de procesamiento diseñada para las respuestas rápidas y de baja latencia que se requieren para una experiencia de escritura letra por letra. Aprovecha las funciones de aprendizaje automático, como la corrección ortográfica y las sugerencias diseñadas para generar resultados, todo ello entrenado con los eventos de búsqueda diarios de tu tienda.
API de
Search
:Este es tu motor principal de descubrimiento de productos.- Función:Para una búsqueda determinada, devuelve una lista clasificada de resultados de productos relevantes.
- Costo:Esta es una API pagada, y su uso afecta directamente tus costos operativos.
- Eventos: Para el entrenamiento y las estadísticas del modelo, lo ideal es que cada llamada a la API de
Search
se vincule con un evento de búsqueda para hacer un seguimiento del comportamiento del usuario y mejorar los modelos de relevancia con el tiempo.
Para crear la experiencia de SAYT, debes escribir una API de wrapper o una lógica de frontend que llame a ambas APIs y combine sus resultados en una interfaz de usuario única y coherente.
Patrón de implementación 1: Enfoque directo, pero más costoso
Este es el método más sencillo de implementar. La lógica es que, por cada pulsación de tecla, realices llamadas paralelas a las APIs de CompleteQuery
y Search
.
Flujo
El flujo sigue esta ruta secuencial:
- Un usuario ingresa un carácter, como l.
- Tu aplicación envía l a la API de
CompleteQuery
. - Simultáneamente, tu aplicación envía l a la API de
Search
. - Los resultados se combinan y se muestran.
- El usuario ingresa otro carácter (l), lo que convierte la búsqueda en li.
- El proceso se repite para la nueva búsqueda li.
Ventajas
Entre las ventajas, se incluyen la implementación rápida, que te permite escribir e implementar el registro rápidamente.
Desventajas
- Alto volumen de la API de
Search
: Este enfoque aumenta considerablemente la cantidad de llamadas a la API deSearch
. Una búsqueda como lápiz labial activaría ocho solicitudes de búsqueda independientes, lo que generaría un aumento significativo en el volumen. - Aumento del costo: Dado que la API de
Search
es un servicio pagado, este volumen alto se traduce directamente en costos operativos más altos, lo que dificulta lograr un retorno de la inversión (ROI) positivo. - Complejidad de la administración de eventos: Cada llamada a la API de
Search
se debe registrar con un evento de búsqueda correspondiente para una medición y un entrenamiento precisos del modelo. El gran volumen de llamadas dificulta garantizar que se capture cada evento, lo que podría generar pérdida de datos y análisis sesgados. - Resultados potencialmente de menor calidad: Las búsquedas de uno o dos caracteres, como l, li, pueden devolver resultados ruidosos o demasiado amplios, lo que genera una experiencia inicial menos relevante.
Patrón de implementación 2: El enfoque optimizado y recomendado
Este patrón optimiza el costo, el rendimiento y la relevancia, ya que usa la API de CompleteQuery
para decidir de forma inteligente cuándo llamar a la API de Search
.
Flujo
El flujo sigue esta ruta secuencial:
- Un usuario ingresa una búsqueda de texto parcial, como labios.
- Tu aplicación envía lip a la API de
CompleteQuery
. - La API devuelve una lista de sugerencias, y es probable que lipstick sea el primer resultado.
- Tu aplicación toma la primera sugerencia (lápiz labial) y realiza una sola llamada a la API de
Search
con ese término. - Se muestran las sugerencias de autocompletar y los resultados de productos para lápiz labial.
- A medida que el usuario sigue escribiendo labios, labial, …, puedes agregar lógica para realizar una nueva llamada de búsqueda solo si cambia la primera sugerencia de autocompletar.
Ventajas
- Reducción significativa de costos: Al reducir drásticamente la cantidad de llamadas a la API de
Search
, este método mantiene los costos bajo control. - Volumen controlado de APIs y eventos: Los volúmenes de APIs y eventos son administrables y predecibles, lo que garantiza datos más confiables para el entrenamiento de modelos y el análisis.
- Mayor relevancia: Buscas términos más completos y probables, lo que proporciona resultados de productos de mayor calidad en el widget de SAYT.
- Mejor ROI: Los costos más bajos y una mejor experiencia del usuario contribuyen a un mayor retorno de la inversión.
Cómo controlar los casos extremos
Este enfoque es superior, pero requiere controlar algunos casos extremos:
- Sin sugerencias: Si la API de
CompleteQuery
no devuelve sugerencias, tu lógica debe recurrir a llamar a la API deSearch
con la entrada sin procesar del usuario. - Búsqueda parcial vs. sugerida: En casos excepcionales, es posible que un usuario quiera ver resultados para su término parcial, como ojo en lugar de la sugerencia principal, sombra de ojos. Si bien esta es una pequeña desventaja, el enfoque optimizado prioriza la intención del usuario más probable.
Mide el éxito con los IDs de experimento
Independientemente de la implementación que elijas, es importante medir el rendimiento de tu widget de SAYT de forma independiente de la página principal de resultados de la búsqueda. Si utilizas el mismo seguimiento para ambos, no podrás determinar si la función de SAYT realmente mejora las tasas de clics y las conversiones.
La solución para medir los porcentajes de clics y de conversaciones del widget de SAYT específicamente es usar experimentIds
distintos en tus eventos de búsqueda que diferencien estas métricas de las de los eventos de búsqueda principales.
- Eventos de SAYT: Asigna un ID específico, como
"experimentId": "sayt-widget"
, a todos los eventos de búsqueda que se originen en la función de búsqueda mientras escribes. - Eventos de búsqueda principal: Usa un ID diferente (o ningún ID) para las búsquedas que se inician cuando un usuario presiona Intro o hace clic en Buscar para ir a la página principal de resultados de la búsqueda.
Si segmentas tus eventos de esta manera, podrás usar los paneles de estadísticas de la consola de Vertex AI para filtrar y comparar el rendimiento de tu widget de SAYT con la experiencia de búsqueda estándar, lo que te brindará estadísticas claras y prácticas.
Conclusión
Vertex AI Search para comercio proporciona los componentes para crear una experiencia de búsqueda mientras escribes. Si actúas como el arquitecto que diseña la interacción entre las APIs de CompleteQuery
y Search
, puedes crear una función de búsqueda que sirva de puente entre la experiencia del usuario y el rendimiento. En la mayoría de los casos de uso, el enfoque optimizado ofrece una experiencia pertinente para el usuario y, al mismo tiempo, evita las operaciones que requieren mucha capacidad de procesamiento.