Nutzerereignisse verwalten

Auf dieser Seite wird beschrieben, wie Sie Nutzerereignisse aufrufen und löschen. Weitere Informationen zum Aufzeichnen von Nutzerereignissen in Echtzeit finden Sie unter Nutzerereignisse in Echtzeit aufzeichnen. Informationen zum Importieren von Nutzerereignisdaten aus vergangenen Ereignissen finden Sie unter Nutzerereignisdaten importieren.

Anleitung zum erneuten Verknüpfen von Nutzerereignissen

In dieser Anleitung wird gezeigt, wie Sie Nutzerereignisse durch Senden einer POST-Anfrage an den Endpunkt userEvents:rejoin noch einmal verknüpfen.


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt im Cloud Shell-Editor zu erhalten:

Anleitung


Anleitung zum Entfernen von Nutzerereignissen

In dieser Anleitung erfahren Sie, wie Sie Nutzerereignisse dauerhaft löschen.


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt im Cloud Shell-Editor zu erhalten:

Anleitung


Aggregierte Informationen zu Nutzerereignissen aufrufen

Sehen Sie sich auf der Seite Daten der Search for Retail-Konsole auf dem Tab Ereignisse die Messwerte für die Ereignisintegration an. Auf dieser Seite werden alle Ereignisse angezeigt, die im letzten Jahr geschrieben oder importiert wurden. Nach erfolgreicher Datenaufnahme kann es bis zu einer Stunde dauern, bis Messwerte in der Console angezeigt werden.

Zur Seite "Daten"

Vertex AI Search für Nutzerereignisstatistiken im Einzelhandel

Nutzerereignisse neu verknüpfen

Sie können Nutzerereignisse durch Stellen einer POST-Anfrage an den Endpunkt userEvents:rejoin wiederverknüpfen.

Mit dem Rejoin-Vorgang zum Wiederverknüpfen werden angegebene Ereignisse mit der neuesten Version des Produktkatalogs verbunden.

Ein Nutzerereignis gilt als nicht verknüpft, wenn das Produkt, mit dem es verknüpft ist, zum Zeitpunkt der Aufnahme des Nutzerereignisses nicht im Katalog vorhanden ist. Nicht verknüpfte Ereignisse enthalten keine detaillierten Produktinformationen und sind weniger hilfreich für Trainingsmodelle und die Bereitstellung von Ergebnissen.

Zusätzlich zur Adressierung nicht verknüpfter Ereignisse können mit dem Rejoin-Vorgang zum Wiederverknüpfen Ereignisse korrigiert werden, die mit dem falschen Produktkatalog verknüpft wurden.

Um diese Methode aufrufen zu können, benötigen Sie die IAM-Rolle Retail AI Admin haben. Der Vorgang für die Neuverknüpfung kann Stunden oder Tage dauern.

curl

Legen Sie userEventRejoinScope entsprechend den Ereignistypen fest, die Sie wieder verknüpfen möchten:

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: Standard. Löst Rejoin für verknüpfte und nicht verknüpfte Ereignisse aus.
  • JOINED_EVENTS: Löst Rejoin nur für verknüpfte Ereignisse aus.
  • UNJOINED_EVENTS: Löst Rejoin nur für nicht verbundene Ereignisse aus.

Im folgenden Beispiel wird eine Rejoin nur für nicht verknüpfte Ereignisse ausgelöst:

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"

Sie sollten ein Antwortobjekt erhalten, das in etwa so aussieht:

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

Sie können den Status des Rejoin prüfen. Ersetzen Sie OPERATION_ID durch die ID der Vorgangs-ID, die von der Rejoin-Methode zurückgegeben wird:

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"

Wenn der Vorgang abgeschlossen ist, wird der Vorgangsstatus als done zurückgegeben:

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

Nutzerereignisse entfernen

Im Allgemeinen sollten Sie Nutzerereignisse aufbewahren, nachdem sie aufgezeichnet wurden. Es wird nicht empfohlen, Ereignisse dauerhaft zu löschen.

Das Löschen eines Ereignisses kann bis zu mehreren Tagen dauern. Wenn Sie Nutzerereignisse vollständig zurücksetzen möchten, sollten Sie stattdessen ein neues Projekt erstellen.

Wenn Sie Nutzerereignisse haben, die nicht ordnungsgemäß aufgezeichnet wurden, und Sie sie entfernen müssen, können Sie die Methode userEvents.purge verwenden.

Geben Sie die Ereignisse an, die Sie entfernen möchten, indem Sie einen Filterstring verwenden. So wird das selektive Löschen von Nutzerereignissen unterstützt, da die Felder eventTime, eventType, visitorID und userID gefiltert werden.

Da Sie den Löschvorgang nicht rückgängig machen können, testen Sie Ihren Filterstring, indem Sie einen Probelauf ausführen, bevor Sie Nutzerereignisse löschen. Das Feld force ist standardmäßig auf false gesetzt. Diese Einstellung gibt die Anzahl der zu löschenden Ereignisse zurück, ohne sie tatsächlich zu löschen. Wenn Sie bereit sind, die Nutzerereignisse zu löschen, setzen Sie das Feld force auf true.

curl

In diesem Beispiel wird nach einem Zeitraum gefiltert, der das Datumsformat zu Zulu verwenden muss. Das Feld force ist auf false gesetzt.

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"

Sie sollten ein Antwortobjekt erhalten, das in etwa so aussieht, wobei purge-user-events-54321 die Vorgangs-ID ist:

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

In diesem Beispiel wird der Vorgangsstatus angefordert:

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"

Beispiel für Vorgangsstatus:

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

Wenn Sie das Feld force auf true setzen, wird der Löschvorgang erzwungen.

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

Filter für Nutzerereignisse verwenden

Sie können Nutzerereignisse filtern, die gelöscht werden sollen.

Der Filter ist ein String, der eine oder mehrere der folgenden Einschränkungen enthält:

  • eventTime

    Stellt einen Zeitstempel zur Begrenzung der zu löschenden Ereignisse bereit. Dieser Filter kann einmal oder zweimal mit einem Symbol größer als (>) oder kleiner als (<) angegeben werden. Die angegebene Zeit muss ein einzelner zusammenhängender Block sein.

  • eventType

    Beschränkt die zu löschenden Ereignisse auf einen einzelnen Ereignistyp.

  • visitorID

    Beschränkt die zu löschenden Ereignisse auf eine einzelne Besucher-ID.

  • userID

    Beschränken Sie die zu löschenden Ereignisse auf eine einzelne Nutzer-ID.

Nur Nutzerereignisse, die alle Einschränkungen erfüllen, werden gelöscht.

Um alle Nutzerereignisse vom Typ add-to-cart zu löschen, die am oder nach dem 1. Februar 2019 protokolliert wurden, geben Sie den folgenden Filterstring an:

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