Administra los eventos de los usuarios

En esta página, se describe cómo ver y borrar eventos de usuario. Para obtener información sobre de los eventos de usuario a medida que ocurren, consulta Grabar eventos de usuarios en tiempo real Para importar datos de eventos de usuarios anteriores, consulta Importa eventos de usuarios 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 usuario

En este instructivo, se muestra cómo borrar definitivamente los 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


Consulta 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 24 horas en aparecer después de que se transfieren los datos correctamente.

Ir a la página Datos

Estadísticas de los eventos de usuarios de Vertex AI Search para la 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 última versión del en tu 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ó. No te uniste eventos carecen de información detallada del producto y no son tan útiles para la capacitación modelos de AA y la entrega de resultados.

Además de abordar los eventos no unidos, la operación para volver a unir se puede usar para eventos correctos que se unieron con un 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 de reconexión 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;
}

Cómo quitar 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 de 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