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 le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:

Procedura guidata


Visualizzare informazioni sugli eventi utente aggregati

Visualizza le metriche di integrazione degli eventi nella scheda Eventi della pagina Dati della console Ricerca per la vendita al dettaglio. Questa pagina mostra tutti gli eventi scritti o importati nell'ultimo anno. Potrebbero essere necessarie fino a 24 ore prima che le metriche vengano visualizzate dopo l'importazione dati.

Vai alla pagina Dati

Statistiche sugli eventi utente di Vertex AI Search per il retail

Riassocia gli eventi utente

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

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

Un evento utente viene considerato non associato se il prodotto a cui è associato non è presente nel catalogo al momento dell'importazione dell'evento. 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'operazione di riunione 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 il ricoinvolgimento sia per gli eventi uniti sia per 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.

Il seguente esempio attiva un nuovo join 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 di 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 viene restituito 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 gli eventi utente

In genere, devi lasciare invariati gli eventi utente dopo che sono stati registrati. La purga 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 hai eventi utente che 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 è impostato su false per impostazione predefinita. Questa impostazione restituirà il numero di eventi da eliminare senza effettivamente eliminarli. Quando è tutto pronto per eliminare effettivamente 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 di 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 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 contenente una o più delle seguenti limitazioni:

  • eventTime

    Fornisce un timestamp per delimitare 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 solo 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 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