Gestire gli eventi utente

Questa pagina descrive come visualizzare ed eliminare gli eventi utente. Per informazioni su come registrare gli eventi utente nel momento in cui si verificano, consulta Registrare gli eventi utente in tempo reale. Per importare i dati sugli eventi utente da eventi passati, consulta Importare gli eventi utente storici.

Tutorial su come riassociare gli eventi utente

Questo tutorial mostra come riunire gli eventi utente inviando una richiesta POST all'endpoint userEvents:rejoin.


Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:

Procedura guidata


Tutorial sulla rimozione di eventi utente

Questo tutorial mostra come eliminare definitivamente gli eventi utente.


Per seguire una guida passo passo per questa attività direttamente nel Editor di Cloud Shell, fai clic su Procedura guidata:

Procedura guidata


Visualizzare informazioni aggregate sugli eventi utente

Visualizza le metriche di integrazione degli eventi nella scheda Eventi della console di Search for Retail Dati. In questa pagina sono mostrati tutti gli eventi scritti o importati nell'ultimo anno. Le metriche possono richiedere a 24 ore prima che venga visualizzata una volta completata l'importazione dati.

Vai alla pagina Dati

Statistiche sugli eventi utente di Vertex AI Search for Retail

Riassocia gli eventi utente

Puoi riunire gli eventi utente inviando una richiesta POST all'endpoint userEvents:rejoin.

L'operazione di riassociazione unisce eventi specifici con l'ultima versione del catalogo dei prodotti.

Un evento utente viene considerato non unito se il prodotto a cui è associato non è presente nel catalogo al momento dell'importazione dell'evento utente. Gli eventi non associati non contengono informazioni dettagliate sul prodotto e sono meno utili per addestrare modelli e offrire risultati.

Oltre a risolvere gli eventi non associati, l'operazione di riassociazione può essere utilizzata per correggere gli eventi associati al catalogo dei prodotti sbagliato.

Per chiamare questo metodo, devi disporre del ruolo IAM Amministratore AI per la vendita al dettaglio. Un rientro l'operazione può richiedere ore o giorni.

curl

Imposta userEventRejoinScope in base ai tipi di eventi a cui vuoi partecipare di nuovo:

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: valore predefinito. Attiva la riconnessione per entrambi a quelli non uniti.
  • JOINED_EVENTS: attiva il ricoinvolgimento solo per gli eventi a cui hai partecipato.
  • UNJOINED_EVENTS: attiva il ricoinvolgimento solo per gli eventi a cui non hai partecipato.

L'esempio seguente attiva un nuovo collegamento solo per gli eventi non uniti:

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"

Dovresti ricevere un oggetto risposta simile al seguente:

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

Puoi controllare lo stato del reintegro. Sostituisci OPERATION_ID con l'ID dell'ID operazione restituito dal metodo 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"

Al termine dell'operazione, lo stato dell'operazione torna come 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;
}

Rimuovere eventi utente

In genere, è consigliabile lasciare invariati gli eventi utente dopo la registrazione. L'eliminazione definitiva degli eventi non è consigliata.

Il completamento di un'eliminazione definitiva degli eventi può richiedere fino a diversi giorni. Se prevedi di reimpostare completamente gli eventi utente, valuta la possibilità di creare un nuovo progetto.

Se alcuni eventi utente non sono stati registrati correttamente e devi rimuoverli, puoi farlo utilizzando il metodo userEvents.purge.

Specifica gli eventi da rimuovere utilizzando una stringa di filtro. Questa funzionalità supporta l'eliminazione selettiva degli eventi utente filtrando in base ai campi eventTime, eventType, visitorID e userID.

Poiché non puoi annullare l'eliminazione, prova la stringa del filtro eseguendo un'esercitazione simulata prima di eliminare gli eventi utente. Il campo force è stato impostato su false da default; questa impostazione restituirà il numero di eventi da eliminare senza li eliminano. Quando è tutto pronto per eliminare gli eventi utente, imposta il campo force su true.

curl

Questo esempio filtra per un intervallo di tempo, che deve utilizzare il formato della data in ora Zulu. Il campo force è impostato su 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"

Dovresti ricevere un oggetto risposta simile a questo, dove purge-user-events-54321 è l'ID operazione:

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

Questo esempio richiede lo stato dell'operazione:

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"

Esempio di stato dell'operazione:

{
  "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"
  }
}

L'impostazione del campo force su true forza l'eliminazione.

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

Utilizzare il filtro degli eventi utente

Puoi filtrare gli eventi utente da eliminare.

Il filtro è una stringa che contiene una o più delle seguenti restrizioni:

  • eventTime

    Fornisce un timestamp per associare gli eventi da eliminare. Questo filtro può essere specificato una o due volte, con un simbolo maggiore di (>) o minore di (<). Il periodo di tempo delimitato deve essere un singolo blocco contiguo.

  • eventType

    Limita gli eventi da eliminare a un singolo tipo di evento.

  • visitorID

    Limita gli eventi da eliminare a un singolo ID visitatore.

  • userID

    Limita gli eventi da eliminare a un singolo ID utente.

Vengono eliminati solo gli eventi utente che soddisfano tutte le limitazioni.

Per eliminare tutti gli eventi utente di tipo add-to-cart che sono stati registrati a partire dal 1° febbraio 2019, dovrai fornire la seguente stringa di filtro:

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