Esta es la documentación de Recomendaciones IA, Retail Search y la nueva consola de Retail.

Obtén recomendaciones

En esta página, se describe cómo solicitar recomendaciones para un usuario y un evento de usuario específicos.

Después de subir los productos y los eventos de usuarios registrados, puedes solicitar recomendaciones de productos para usuarios específicos en función de los eventos de usuario registrados para ese usuario y su actividad actual.

La API de Retail muestra una lista de identificadores de productos clasificados. Eres responsable de renderizar los resultados en tu sitio web con imágenes y texto.

Nunca almacenes en caché los resultados personalizados de un usuario final ni los muestres a un usuario final diferente.

Antes de comenzar

Antes de que puedas acceder a la API de venta minorista, debes crear un proyecto de Google Cloud y configurar la autenticación con los pasos que se indican en Antes de comenzar.

Además, antes de que puedas enviar solicitudes de predicción a Recomendaciones IA, debes tener un modelo de recomendación entrenado y ajustado, y una o más configuraciones de entrega activas.

Evalúa las recomendaciones

Antes de actualizar el código de tu sitio web para solicitar recomendaciones, puedes usar los resultados de la predicción de la vista previa a fin de confirmar que tu modelo y la configuración de entrega funcionen como esperas.

Para obtener más información sobre la configuración de entrega, consulta Entrega de configuraciones.

Puedes obtener una vista previa de los resultados de la configuración de entrega desde la página Evaluar, o bien puedes ir a la página Detalles de la configuración de entrega en la consola y hacer clic en la pestaña Evaluar. En los siguientes pasos, se muestra cómo obtener una vista previa en la página Evaluar.

Para obtener una vista previa de las recomendaciones que muestra la configuración de entrega, sigue estos pasos:

  1. Ve a la página Evaluación de venta minorista en Google Cloud Console.

    Ir a la página Evaluación

  2. Haz clic en la pestaña Recomendaciones si no está seleccionada.

  3. Selecciona la configuración de entrega de la que deseas obtener una vista previa.

  4. (Opcional) Ingrese un ID de visitante para obtener una vista previa de las recomendaciones para ese usuario.

  5. Si se muestra la sección Associate items, haz clic en Add item y, luego, ingresa un ID de producto a fin de obtener recomendaciones asociadas para ese elemento. Puedes agregar varios elementos asociados.

    La opción de agregar elementos solo está disponible si el tipo de modelo de configuración de entrega seleccionado requiere productos como entrada para las recomendaciones. Recomendada para ti Los modelos no requieren que se ingresen elementos asociados.

  6. Haz clic en Vista previa de la predicción para ver los resultados de la predicción.

Para ver la página de detalles de la configuración de publicación de la que quieres obtener una vista previa, haz clic en Ver configuración de publicación en el campo Seleccionar configuración de publicación.

Obtén una recomendación

Para obtener detalles sobre los costos de la predicción, consulta Precios.

curl

Para obtener una recomendación, realiza una solicitud POST al método predict de REST y proporciona el cuerpo de solicitud adecuado:

  • La cuenta de servicio que uses debe tener la función “Visualizador de venta minorista” o una versión superior.

  • Reemplaza SERVING_CONFIG_ID por la configuración de entrega en la que usarás las predicciones. Obtenga más información.

  • Si importaste eventos de usuario de Google Analytics 360 con BigQuery, configura visitorId como el ID de cliente de Google Analytics. Consulta la documentación de Google Analytics para saber cómo obtener el ID de cliente.

  • Si ejecutas un experimento A/B, configura experimentIds como el ID de este grupo de experimentos. Obtenga más información.

  • Proporciona un objeto de evento del usuario correspondiente a la acción que inició la solicitud de recomendación.

    Ten en cuenta que no se registra este evento del usuario; solo se utiliza para proporcionar contexto sobre esta solicitud de recomendación. También debes registrar el evento de usuario de la misma manera en la que registras otros eventos del usuario en la API de venta minorista.

  • De forma opcional, proporciona un filtro para limitar los productos potenciales que se muestran. Obtén más información.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
              "filter": "FILTER_STRING",
              "validateOnly": false,
              "userEvent": {
                  "eventType": "detail-page-view",
                  "visitorId": "VISITOR_ID",
                  "userInfo": {
                      "userId": "USER_ID",
                      "ipAddress": "IP_ADDRESS",
                      "userAgent": "USER_AGENT"
                  },
                  "experimentIds": "EXPERIMENT_GROUP",
                  "productDetails": [{
                      "product": {
                        "id": "PRODUCT_ID"
                     }
                  }]
              }
            }' \
https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/placements/SERVING_CONFIG_ID:predict

Deberías ver resultados similares a los siguientes:

{
  "results": [{"id": "sample-id-1"}, {"id": "sample-id-2"}],
  "attribution_token": "sample-atr-token"
}

Debes asociar el valor attribution_token con cualquier URL que entregues como resultado de esta predicción y mostrarla con los eventos de usuario para esas URL. Obtén más información.

Java

public static PredictResponse predictWithNextPageToken(UserEvent userEvent, int pageSize,
    String nextPageToken)
    throws IOException, InterruptedException {
  PredictionServiceClient predictionClient = getPredictionServiceClient();

  PredictRequest request = PredictRequest.newBuilder()
      .setPlacement(HOME_PAGE_PLACEMENT_NAME)
      .setUserEvent(userEvent)
      .setPageSize(pageSize)
      .setPageToken(nextPageToken)
      .setValidateOnly(true)
      .build();

  PredictResponse response = predictionClient.predict(request);

  predictionClient.shutdownNow();
  predictionClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

Reclasificación de precio

La reclasificación de precio hace que los productos sugeridos con una probabilidad de recomendarse similar se ordenen según el precio, con los elementos de precio más alto primero. La relevancia también se usa para ordenar elementos, por lo que habilitar la reclasificación de precio no es lo mismo que ordenarlos por precio.

La reclasificación de precios se puede establecer a nivel de la configuración de entrega o por solicitud de predicción.

Cuando eliges una configuración de reclasificación de precio cuando creas una configuración de entrega en Cloud Console, esa configuración se aplica a todas las recomendaciones que entrega esa configuración, sin que tengas que realizar ninguna acción adicional.

Si necesitas controlar la reclasificación de precios de una recomendación en particular, puedes hacerlo a través de la API de venta minorista con el campo PredictRequest.params. Esto anula cualquier configuración de reclasificación a nivel de configuración que, de lo contrario, se aplicaría a esta recomendación.

Diversidad de recomendaciones

La diversificación afecta si los resultados que se muestran de una sola solicitud de predicción son de diferentes categorías de tu catálogo de productos.

La diversificación se puede establecer a nivel de configuración de entrega o por solicitud de predicción.

Cuando eliges una configuración de diversificación cuando creas una configuración de entrega en Cloud Console, esa configuración se aplica de forma predeterminada a todas las recomendaciones que entrega esa configuración, sin que tengas que realizar ninguna acción adicional.

Si necesitas controlar la diversidad de una recomendación en particular, puedes hacerlo a través de la API de venta minorista mediante el campo PredictRequest.params. Esto anula cualquier configuración de diversificación a nivel de configuración que, de lo contrario, se aplicaría a esta recomendación. Consulta los valores aceptados.

Cómo usar filtros de recomendación

Puedes filtrar las recomendaciones que muestra Recomendaciones IA mediante el campo filter del método predict.

El campo filter acepta dos formas de especificación de filtro:

  • Expresiones de etiqueta

    Si agregaste valores tag a tus productos cuando los subiste, puedes especificar que solo los productos que coincidan con todas las etiquetas que filtras se muestren como recomendaciones. Consulta la documentación de referencia de la API para el campo Product.tags[].

    Las expresiones de etiqueta pueden contener los operadores booleanos OR o NOT, que deben estar separados de los valores de la etiqueta por uno o más espacios. También se puede anteponer un guion (-) a los valores de la etiqueta, lo que equivale al operador NOT. Las expresiones de etiqueta que usan los operadores booleanos deben estar entre paréntesis.

  • filterOutOfStockItems

    La marca filterOutOfStockItems filtra cualquier producto con un stockState de OUT_OF_STOCK.

Puedes combinar estos dos tipos de filtros. Solo se muestran los elementos que satisfacen todas las expresiones de filtro especificadas.

Estas son algunas strings de filtro de ejemplo:

"filter": "tag=\"spring-sale\""
"filter": "filterOutOfStockItems"
"filter": "tag=\"spring-sale\" tag=\"exclusive\" filterOutOfStockItems"

En el siguiente ejemplo, solo se muestran artículos que están en stock y que tienen la etiqueta "spring-sale" o "exclusivo" (o ambas) y tampoco tienen la etiqueta "items-to-exclude".

"filter": "tag=(\"spring-sale\" OR \"exclusive\") tag=(-\"items-to-exclude\") filterOutOfStockItems"

Supervisa y soluciona problemas

Después de configurar tu sitio web para obtener recomendaciones, te recomendamos que configures las alertas. Consulta Configura una alerta para errores de predicción.

Para solucionar errores, consulta Cómo supervisar y solucionar problemas.