Gestire gli eventi utente

In questa pagina viene descritto come visualizzare ed eliminare gli eventi utente. Per informazioni sulla registrazione degli eventi utente quando si verificano, consulta Registrare gli eventi utente in tempo reale. Per importare i dati sugli eventi utente dagli eventi precedenti, consulta Importare gli eventi utente storici.

Tutorial su come riassociare gli eventi utente

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


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

Guidami


Tutorial sulla rimozione degli eventi utente

Questo tutorial mostra come eliminare definitivamente gli eventi utente.


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

Guidami


Visualizzare informazioni aggregate sugli eventi utente

Visualizza le metriche di integrazione degli eventi nella scheda Eventi della pagina Dati della console Search for Retail. In questa pagina sono visualizzati tutti gli eventi scritti o importati nell'ultimo anno. La visualizzazione delle metriche nella console può richiedere fino a un'ora dopo l'importazione dati.

Vai alla pagina Dati

Statistiche sugli eventi degli utenti di Vertex AI Search per la vendita al dettaglio

Riassocia gli eventi utente

Puoi partecipare di nuovo agli eventi utente effettuando una richiesta POST all'endpoint userEvents:rejoin.

L'operazione di riassociazione unisce gli eventi specificati con la versione più recente del catalogo dei prodotti.

Un evento utente è considerato non associato se il prodotto a cui è associato non è presente nel catalogo al momento dell'importazione dell'evento utente. Gli eventi non uniti non contengono informazioni dettagliate sul prodotto e non sono così utili per l'addestramento di modelli e la pubblicazione dei risultati.

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

Per chiamare questo metodo, devi disporre del ruolo IAM Amministratore Retail AI. Il completamento di un'operazione di nuovo può richiedere ore o giorni.

curl

Imposta userEventRejoinScope in base ai tipi di eventi a cui stai rientrando:

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: impostazione predefinita. Attiva la riconnessione sia per gli eventi uniti che per quelli non uniti.
  • JOINED_EVENTS: attiva la riconnessione solo per gli eventi uniti.
  • UNJOINED_EVENTS: attiva la riconnessione solo per gli eventi non uniti.

L'esempio seguente attiva una riconnessione 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 della nuova iscrizione. Sostituisci OPERATION_ID con l'ID dell'ID operazione restituito dal metodo di unione:

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 restituito sarà 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;
}

Rimuovi eventi utente

In genere, gli eventi utente dovrebbero essere mantenuti attivi dopo che sono stati registrati. L'eliminazione definitiva degli eventi non è consigliata.

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

Se alcuni dei tuoi 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. In questo modo è possibile eliminare selettivamente gli eventi utente filtrando in base ai campi eventTime, eventType, visitorID e userID.

Poiché non puoi annullare l'eliminazione, verifica la stringa del filtro eseguendo una prova prima di eliminare gli eventi utente. Il campo force è impostato su false per impostazione predefinita; questa impostazione restituisce il numero di eventi da eliminare senza eliminarli. Quando è tutto pronto per eliminare effettivamente gli eventi utente, imposta il campo force su true.

curl

Questo esempio filtra in base a un intervallo di tempo, che deve utilizzare il formato di data Zulu Time. 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 al seguente, 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 impone 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 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 di maggiore di (>) o minore di (<). Il tempo limitato 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 il 1° febbraio 2019 o in una data successiva, devi fornire la seguente stringa di filtro:

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