Administra los eventos de los usuarios

En esta página, se describe cómo ver y borrar eventos de usuario. Si quieres obtener información para registrar eventos de usuario a medida que ocurren, consulta Registra eventos de usuario en tiempo real. Para importar datos de eventos de usuarios de eventos anteriores, consulta Cómo importar eventos de usuario históricos.

Instructivo para volver a unir los eventos de usuario

En este instructivo, se muestra cómo volver a unir eventos de usuario mediante una solicitud POST al extremo userEvents:rejoin.


Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:

Guiarme


Instructivo para quitar eventos de usuarios

En este instructivo, se muestra cómo borrar definitivamente eventos de usuario.


Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:

Guiarme


Cómo consultar la información agregada de los eventos de usuarios

Consulta las métricas de integración de eventos en la pestaña Eventos de la página Datos de la consola de Search for Retail. En esta página, se muestran todos los eventos que se escribieron o importaron en el último año. Las métricas pueden tardar hasta una hora en aparecer en la consola después de una transferencia de datos exitosa.

Ir a la página Datos

Estadísticas de eventos de usuarios de Vertex AI Search para venta minorista

Vuelve a unir los eventos de usuario

Para volver a unirte a los eventos de usuario, realiza una solicitud POST al extremo userEvents:rejoin.

La operación para volver a unir une los eventos especificados con la versión más reciente del catálogo de productos.

Se considera que un evento de usuario no está unido si el producto con el que está asociado no está presente en el catálogo en el momento en que se transfirió. Los eventos no unidos carecen de información detallada del producto y no son tan útiles para entrenar modelos y entregar resultados.

Además de abordar eventos no unidos, la operación para volver a unir se puede usar a fin de corregir eventos que se unieron con el catálogo de productos incorrecto.

Debes tener el rol de IAM de Administrador de Retail AI para llamar a este método. Una operación para volver a unirse puede tardar horas o días en completarse.

curl

Configura userEventRejoinScope según los tipos de eventos a los que deseas volver a unirte:

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: Predeterminado. Activa la opción de volver a unirse para eventos a los que te uniste y a los que no.
  • JOINED_EVENTS: Activa la opción de volver a unirse solo para eventos a los que te uniste.
  • UNJOINED_EVENTS: Activa la opción de volver a unirse solo para eventos a los que no te uniste.

En el siguiente ejemplo, se activa la opción de volver a unirse solo para eventos a los que no te uniste:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
     'userEventRejoinScope': 'UNJOINED_EVENTS'
     }" \
    "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:rejoin"

Deberías recibir un objeto de respuesta similar al siguiente:

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"
}

Puedes verificar el estado de la opción de volver a unirse. Reemplaza OPERATION_ID por el ID del ID de la operación que muestra el método para volver a unirse:

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"

Cuando se completa la operación, el estado de la operación se muestra como done:

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2.RejoinUserEventsResponse",
    "rejoinedUserEventsCount": "1"
  }
}

Java

public static String rejoinUserEvents(UserEventRejoinScope scope)
    throws IOException, InterruptedException, ExecutionException {
  UserEventServiceClient userEventsClient = getUserEventServiceClient();

  RejoinUserEventsRequest request = RejoinUserEventsRequest.newBuilder()
      .setParent(DEFAULT_CATALOG_NAME)
      .setUserEventRejoinScope(scope)
      .build();

  String operationName = userEventsClient
      .rejoinUserEventsAsync(request).getName();

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

  return operationName;
}

Quita eventos de usuario

Por lo general, debes dejar los eventos del usuario en su lugar después de que se registraron. No se recomienda borrar definitivamente los eventos.

La eliminación definitiva de un evento puede tomar varios días en completarse. Si planeas restablecer los eventos de usuario por completo, considera crear un proyecto nuevo en su lugar.

Si tienes eventos de usuario que no se registraron de forma correcta y necesitas quitarlos, puedes hacerlo con el método userEvents.purge.

Especifica los eventos que deseas quitar mediante una string de filtrado. Esto admite la eliminación selectiva de eventos de usuario mediante el filtrado en los campos eventTime, eventType, visitorID y userID.

Debido a que no puedes deshacer la eliminación, prueba la string de filtrado mediante una prueba de validación antes de borrar los eventos de usuario. El campo force está configurado como false de forma predeterminada. Esta configuración mostrará la cantidad de eventos que se borrarán sin borrarlos. Cuando estés listo para borrar los eventos de usuario, establece el campo force como true.

curl

En este ejemplo, se filtra por un intervalo de tiempo, que debe usar el formato de fecha de la hora de Zulú. El campo force está configurado como false.

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)"" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{
    "filter":"eventTime > \"2019-12-23T18:25:43.511Z\" eventTime < \"2019-12-23T18:30:43.511Z\"",
    "force":"false"
  }' \
  "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:purge"

Deberías recibir un objeto de respuesta similar al siguiente, en el que purge-user-events-54321 es el ID de la operación:

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/purge-user-events-54321"
}

En este ejemplo, se solicita el estado de la operación:

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"

Ejemplo de estado de la operación:

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2.PurgeUserEventsResponse",
    "purgedEventsCount": "1"
  }
}

Establecer el campo force como true fuerza la eliminación.

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)"" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{
    "filter":"eventTime > \"2019-12-23T18:25:43.511Z\" eventTime < \"2019-12-23T18:30:43.511Z\"",
    "force":"true"
  }' \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:purge"

Java

public static String purgeUserEvents(
    String filter)
    throws IOException, InterruptedException, ExecutionException {
  UserEventServiceClient userEventsClient = getUserEventServiceClient();

  PurgeUserEventsRequest request = PurgeUserEventsRequest.newBuilder()
      .setParent(DEFAULT_CATALOG_NAME)
      .setFilter(filter)
      .setForce(true)
      .build();

  String operationName = userEventsClient
      .purgeUserEventsAsync(request).getName();

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

  return operationName;
}

Cómo usar el filtro de eventos del usuario

Puedes filtrar los eventos de usuario que se borrarán.

El filtro es una string que contiene una o más de las siguientes restricciones:

  • eventTime

    Proporciona una marca de tiempo para vincular los eventos que se borrarán. Este filtro se puede especificar una o dos veces, con un símbolo "mayor que" (>) o "menor que" (<). El tiempo delimitado debe ser un bloque único contiguo.

  • eventType

    Restringe los eventos que se borrarán a un solo tipo de evento.

  • visitorID

    Restringe los eventos que se borrarán a un solo ID de visitante.

  • userID

    Restringe los eventos que se borrarán a un solo ID de usuario.

Solo se borran los eventos del usuario que cumplan con todas las restricciones.

Para borrar todos los eventos de usuario de tipo add-to-cart que se registraron a partir del 1 de febrero de 2019, debes proporcionar la siguiente string de filtrado:

eventTime > "2019-02-01T00:00:00Z" eventType = add-to-cart