Gestionar eventos de usuario

En esta página se describe cómo ver y eliminar eventos de usuario. Para obtener información sobre cómo registrar eventos de usuario a medida que se producen, consulte Registrar eventos de usuario en tiempo real. Para importar datos de eventos de usuario anteriores, consulte Importar historial de eventos de usuario.

Tutorial sobre eventos de usuario de reincorporación

En este tutorial se muestra cómo volver a enviar eventos de usuario haciendo una solicitud POST al endpoint userEvents:rejoin.


Para seguir las instrucciones paso a paso de esta tarea directamente en el editor de Cloud Shell, haz clic en Ayúdame:

Guíame


Tutorial para eliminar eventos de usuarios

En este tutorial se explica cómo purgar eventos de usuario.


Para seguir las instrucciones paso a paso de esta tarea directamente en el editor de Cloud Shell, haz clic en Ayúdame:

Guíame


Ver información agregada de eventos de usuario

Consulte las métricas de integración de eventos en la pestaña Eventos de la página Datos de la consola de búsqueda de comercio. En esta página se muestran todos los eventos escritos o importados en el último año. Las métricas pueden tardar hasta 24 horas en aparecer después de que se hayan insertado los datos correctamente.

Ir a la página Datos

Estadísticas de eventos de usuario de Vertex AI Search para el sector del comercio

Volver a enviar eventos de usuario

Puedes volver a unir eventos de usuario haciendo una solicitud POST al endpoint userEvents:rejoin.

La operación de combinación vuelve a combinar los eventos especificados con la versión más reciente del catálogo de productos.

Se considera que un evento de usuario no se ha unido si el producto al que está asociado no está presente en el catálogo en el momento en que se ingiere el evento de usuario. Los eventos sin combinar no tienen información detallada sobre los productos y no son tan útiles para entrenar modelos y ofrecer resultados.

Además de solucionar los eventos no unidos, la operación de unión se puede usar para corregir eventos que se hayan unido con el catálogo de productos incorrecto.

Para llamar a este método, debes tener el rol de gestión de identidades y accesos Administrador de IA de comercio minorista. Una operación de unión puede tardar horas o días en completarse.

curl

Define userEventRejoinScope según los tipos de eventos a los que te vuelvas a unir:

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: predeterminado. Activa la reconexión tanto para los eventos unidos como para los no unidos.
  • JOINED_EVENTS: activa la reconexión solo para los eventos a los que se ha unido.
  • UNJOINED_EVENTS: activa la reconexión solo para los eventos que no se hayan unido.

En el siguiente ejemplo, solo se activa una unión de nuevo para los eventos que no se han unido:

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 a este:

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

Puedes comprobar el estado de la reconexión. Sustituye OPERATION_ID por el ID de la operación devuelto por el método rejoin:

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 complete la operación, el estado de la operación será 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;
}

Quitar eventos de usuario

Por lo general, debe dejar los eventos de usuario en su sitio una vez que se hayan registrado. No se recomienda purgar eventos.

La purga de eventos puede tardar varios días en completarse. Si tienes previsto restablecer por completo los eventos de usuario, te recomendamos que crees un proyecto nuevo.

Si tiene eventos de usuario que no se han registrado correctamente y necesita eliminarlos, puede hacerlo con el método userEvents.purge.

Especifique los eventos que quiera eliminar mediante una cadena de filtro. Esto permite eliminar selectivamente eventos de usuario filtrando por los campos eventTime, eventType, visitorID y userID.

Como no puede deshacer la eliminación, pruebe la cadena de filtro haciendo una prueba antes de eliminar los eventos de usuario. El campo force tiene el valor false de forma predeterminada. Este ajuste devolverá el número de eventos que se van a eliminar sin eliminarlos realmente. Cuando quieras eliminar los eventos del usuario, asigna el valor true al campo force.

curl

En este ejemplo se filtra por un intervalo de tiempo, que debe usar el formato de fecha de hora zulú. El campo force tiene el valor 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 a este, donde 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"
  }
}

Si asigna el valor true al campo force, se eliminará el elemento.

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

Usar el filtro de eventos de usuario

Puede filtrar los eventos de usuario que quiera eliminar.

El filtro es una cadena que contiene una o varias de las siguientes restricciones:

  • eventTime

    Proporciona una marca de tiempo para delimitar los eventos que se van a eliminar. Este filtro se puede especificar una o dos veces, con el símbolo mayor que (>) o menor que (<). El tiempo delimitado debe ser un bloque único y contiguo.

  • eventType

    Restringe los eventos que se van a eliminar a un solo tipo de evento.

  • visitorID

    Restringe los eventos que se van a eliminar a un solo ID de visitante.

  • userID

    Restringe los eventos que se van a eliminar a un solo ID de usuario.

Solo se eliminan los eventos de usuario que cumplen todas las restricciones.

Para eliminar todos los eventos de usuario de tipo add-to-cart que se registraron el 1 de febrero del 2019 o después, debe proporcionar la siguiente cadena de filtro:

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