Gestire gli eventi utente

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

Tutorial su come riassociare gli eventi utente

Questo tutorial mostra come partecipare di nuovo agli 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 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 le informazioni aggregate sugli eventi utente

Visualizza le metriche di integrazione degli eventi nella scheda Eventi della pagina Dati della console Search for commerce. 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

Vertex AI Search for commerce User Event Stats

Riassocia gli eventi utente

Puoi unire nuovamente 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. Un'operazione di ricongiungimento può richiedere ore o giorni.

curl

Imposta userEventRejoinScope in base ai tipi di eventi a cui ti stai unendo di nuovo:

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: predefinito. Attiva la riunione per gli eventi a cui hai partecipato e per quelli a cui non hai partecipato.
  • JOINED_EVENTS: Attiva il rientro solo per gli eventi a cui hai partecipato.
  • UNJOINED_EVENTS: Attiva il rientro solo per gli eventi a cui non è stato effettuato l'accesso.

Il seguente esempio attiva un'unione 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 operazione restituito dal metodo di rientro:

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 gli eventi utente in posizione dopo che sono stati registrati. L'eliminazione degli eventi non è consigliata.

L'eliminazione 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 supporta l'eliminazione selettiva degli eventi utente filtrando i campi eventTime, eventType, visitorID e userID.

Poiché non puoi annullare l'eliminazione, prova la stringa di filtro eseguendo una prova generale 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 è tutto pronto per eliminare gli eventi utente, imposta il campo force su true.

curl

Questo esempio filtra un intervallo di tempo, che deve utilizzare il formato della 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 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;
}

Utilizzare 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 blocco singolo e 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