Gestire gli eventi utente

Book: /retail/_book.yaml

Questa pagina descrive come visualizzare ed eliminare gli eventi utente. Per informazioni sulla registrazione degli eventi utente in tempo reale, consulta Registrare gli eventi utente in tempo reale. Per importare i dati degli eventi utente da eventi passati, consulta Importare gli eventi utente storici.

Tutorial su come riassociare gli eventi utente

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


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

Procedura guidata


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 Procedura guidata:

Procedura guidata


Visualizzare le informazioni aggregate sugli eventi utente

Visualizza le metriche di integrazione degli eventi nella scheda Eventi della pagina Dati della console AI Commerce Search su Gemini Enterprise for Customer Experience. Questa pagina mostra tutti gli eventi scritti o importati nell'ultimo anno. Le metriche possono richiedere fino a 24 ore per essere visualizzate dopo l'importazione dati.

Vai alla pagina Dati

Statistiche sugli eventi utente di AI Commerce Search

Riassocia gli eventi utente

Puoi riassociare gli eventi utente effettuando 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 Retail. Il completamento di un'operazione di riassociazione può richiedere ore o giorni. Verifica di disporre delle autorizzazioni necessarie.

curl

Imposta userEventRejoinScope in base ai tipi di eventi che stai riassociando:

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: predefinito. Attiva la riassociazione sia per gli eventi associati sia per quelli non associati.
  • JOINED_EVENTS: attiva la riassociazione solo per gli eventi associati.
  • UNJOINED_EVENTS: attiva la riassociazione solo per gli eventi non associati.

Il seguente esempio attiva una riassociazione solo per gli eventi non associati:

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 della riassociazione. Sostituisci OPERATION_ID con l' ID dell'operazione restituito dal metodo di riassociazione:

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

Rimuovi gli eventi utente

In genere, dovresti lasciare gli eventi utente in posizione dopo che sono stati registrati. L'eliminazione definitiva degli eventi non è consigliata.

Il completamento di un'eliminazione definitiva degli eventi può richiedere 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 che vuoi rimuovere utilizzando una stringa di filtro. Questa opzione supporta l'eliminazione selettiva degli eventi utente filtrando i campi eventTime, eventType, visitorID e userID.

Poiché non puoi annullare l'eliminazione, testa la stringa di filtro eseguendo un'esecuzione di prova 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 eliminarli effettivamente. Quando sei pronto per eliminare effettivamente gli eventi utente, imposta il campo force su true.

Per chiamare questo metodo devi disporre del ruolo IAM Amministratore AI Retail. Verifica di disporre delle autorizzazioni necessarie.

curl

Questo esempio filtra 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 di risposta simile al seguente, dove purge-user-events-54321 è l'ID dell'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"
  }
}

Se imposti il campo force su true, l'eliminazione viene forzata.

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

Utilizza il filtro degli eventi utente

Puoi filtrare gli eventi utente da eliminare.

Il filtro è una stringa che contiene 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 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 registrati a partire dal 1° febbraio 2019, devi fornire la seguente stringa di filtro:

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