Diese Recommendations AI-Dokumentation verweist auf die Recommendations Console. Wir empfehlen, zur Retail Console zu wechseln und die Dokumentation für Einzelhändler zu verwenden. Darin werden Recommendations AI, die Retail Console und Retail Search dokumentiert.

Wenn Sie die v1beta-Version von Recommendations AI verwenden, migrieren Sie zur Retail API-Version.

Nutzerereignisse verwalten

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

Zusammengefasste Nutzerereignisinformationen ansehen

Sie können die Anzahl der aufgezeichneten Nutzerereignisse für Ihr Projekt im Tab "Ereignis" auf der Seite "Recommendations AI Data" finden. Die Messwerte werden etwa 24 Stunden nach dem ersten Hochladen von Ereignissen in Recommendations AI angezeigt.

Recommendations AI-Nutzerereignisstatistiken

Nutzerereignisse wiederverknü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.

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.v2main.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"

Nutzerereignisfilter 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