Dies ist die Dokumentation für Recommendations AI, Retail Search und die neue Retail Console. Wenn Sie Retail Search in der eingeschränkten GA-Phase nutzen möchten, wenden Sie sich an den Cloud-Vertrieb.

Wenn Sie Recommendations AI nur verwenden, bleiben Sie in der Recommendations-Konsole und sehen Sie sich die Dokumentation zu Recommendations AI an.

Kataloginformationen verwalten

Auf dieser Seite wird beschrieben, wie Sie Ihre Produktinformationen verwalten, nachdem Sie einen Katalog in die Retail API importiert haben. Sie können Produkte in Ihrem Katalog lesen, schreiben und löschen.

Wenn Sie Ihren Katalog bei Änderungen der Produktinformationen auf dem neuesten Stand halten möchten, importieren Sie den Katalog genauso wie beim ersten Mal. Informationen zum Importieren Ihres Katalogs finden Sie unter Kataloginformationen importieren.

Produkt hochladen

curl

Erstellen Sie ein einzelnes Produktelement mithilfe der REST-Methode products.create.

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data '{
      "title": "PRODUCT_TITLE",
      "categories": "Shoes & Accessories > Shoes"
    }' \
    "https://retail.googleapis.com/v2/projects/[PROJECT_NUMBER]/locations/global/catalogs/default_catalog/branches/0/products?productID=PRODUCT_ID"

Wenn die Anfrage erfolgreich ist, wird das Produktobjekt zurückgegeben, wie im folgenden Beispiel zu sehen ist.

{
  "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID",
  "id": "PRODUCT_ID",
  "primaryProductId": "PRODUCT_ID",
  "type": "PRIMARY",
  "categories": [
    "Shoes & Accessories \u003e Shoes"
  ],
  "title": "product title",
  "availability": "IN_STOCK"
}

Java

public static Product createProduct(Product productToCreate, String productId)
    throws IOException {
  return getProductServiceClient().createProduct(
      DEFAULT_BRANCH_NAME, productToCreate, productId
  );
}

Produktinformationen aktualisieren

Wenn sich Ihr Produktkatalog ändert, können Sie Ihren Katalog aktualisieren, indem Sie Produktänderungen wie neue Produkte, Preise und Lagerstatus in Echtzeit hochladen. Sie können nur Produkte hochladen, die hinzugefügt oder geändert wurden. Es ist nicht erforderlich, dass Sie den gesamten Katalog neu laden.

curl

Produktinformationen mit der Methode products.patch aktualisieren.

Im folgenden Beispiel wird der Titel für ein bestimmtes Produkt aktualisiert:

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
       "title": "new-title-value"
    }" \
    "https://retail.googleapis.com/v2/projects/[PROJECT_NUMBER]/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID?updateMask=title"

Wenn die Anfrage erfolgreich ist, wird das Produktobjekt zurückgegeben, wie im folgenden Beispiel zu sehen ist.

{
  "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID",
  "id": "PRODUCT_ID",
  "primaryProductId": "PRODUCT_ID",
  "type": "PRIMARY",
  "categories": [
    "Shoes & Accessories > Shoes"
  ],
  "title": "new product title",
  "availability": "IN_STOCK"
}

Java

public static Product updateProduct(Product productToUpdate) throws IOException {
  return getProductServiceClient().updateProduct(productToUpdate, FieldMask.getDefaultInstance());
}

Produktinformationen löschen

Die Retail API bietet die Möglichkeit, Produkte aus Ihrem Katalog zu löschen. Wenn Sie jedoch ein Nutzerereignis erfassen, das sich auf einen gelöschten Produktartikel bezieht, kann die Retail API das Nutzerereignis nicht verarbeiten und es könnte gelöscht werden. Darüber hinaus verbessert die Einbindung von Katalogdaten die Qualität Ihres Modells und ist für gute Empfehlungen und Suchergebnisse von entscheidender Bedeutung.

Sie sollten die availability von veralteten Produkten auf OUT_OF_STOCK setzen, anstatt sie zu löschen.

curl

Löschen Sie ein Produkt mit der Methode delete. Ersetzen Sie PRODUCT_ID dabei durch die ID des zu löschenden Produkts.

curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://retail.googleapis.com/v2/projects/[PROJECT_NUMBER]/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"

Java

public static void deleteProduct(String productName) throws IOException {
  getProductServiceClient().deleteProduct(productName);
}

Produktelement abrufen

curl

Zum Abrufen eines Produktelements senden Sie eine GET-Anfrage an den Endpunkt products und ersetzen PRODUCT_ID durch die ID des abzurufenden Produkts.

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"  \
    "https://retail.googleapis.com/v2/projects/[PROJECT_NUMBER]/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"

Die Ausgabe sollte in etwa so aussehen:

{
    "name": "projects/[PROJECT_NUMBER]/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"
    "id": "PRODUCT_ID",
    "primaryProductId": "PRODUCT_ID",
    "type": "PRIMARY",
    "categories": [
      "Shoes & Accessories \u003e Shoes"
    ],
    "title": "product title",
    "availability": "IN_STOCK"
}

Java

public static Product getProduct(String productName) throws IOException {
  return getProductServiceClient().getProduct(productName);
}

Zusammengefasste Informationen zu Ihrem Katalog ansehen

Auf dem Tab "Katalog" auf der Seite Retail-Daten können Sie aggregierte Informationen zu Ihrem Katalog und eine Vorschau der hochgeladenen Produktelemente aufrufen.

Katalogereignisse wieder hinzufügen

Sie können die Katalogereignisse wieder zusammenführen, indem Sie eine POST-Anfrage an den Endpunkt userEvents:rejoin stellen.

Sie benötigen die IAM-Rolle Retail AI Admin.

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

Produkttypen ändern

Beim Importieren eines Produkts können Sie angeben, ob der Typ des Produkts "primary", "variant“ oder "collection" ist. Wenn sich der Typ eines Produkts ändert oder falsch angegeben wurde, müssen Sie das Produkt löschen und mit dem aktualisierten Typ erstellen.

Der Typ eines Produkts kann auf TYPE_UNSPECIFIED, PRIMARY, VARIANT oder COLLECTION festgelegt werden. Weitere Informationen finden Sie in der Referenzdokumentation unter [product.Type][product-type].

Konfiguration der Produktebene ändern

Beim Importieren eines Katalogs über das Merchant Center müssen Sie angeben, ob es sich bei den Produkten um "primaries" oder "variants" handelt. Wenn sich diese Produktebenen ändern oder falsch angegeben wurden, korrigieren Sie die Konfiguration mit dem folgenden Verfahren. Sie benötigen die IAM-Rolle Retail-Administrator.

  1. Achten Sie darauf, dass keine Importe stattfinden, während Sie die Produktebenen neu konfigurieren. Dadurch werden Daten nicht auf der falschen Ebene hochgeladen.

  2. Löschen Sie alle Produktelemente. Weitere Informationen finden Sie unter products.delete. Der Katalog muss vollständig leer sein, bevor Sie mit dem nächsten Schritt fortfahren können.

  3. Importieren Sie die Daten noch einmal, um die Konfiguration auf Produktebene zu ändern.

    Dieses Verfahren hängt vom Importverfahren ab. Folgen Sie der entsprechenden Anleitung unter Kataloginformationen importieren, um die Produktebenen auf ihre neue Konfiguration festzulegen.

  4. Schließen Sie den Import des neuen Katalogs mit der geänderten Ebenenkonfiguration ab. Gehen Sie dabei wie unter Kataloginformationen importieren beschrieben vor.

  5. Alle vorhandenen Modelle optimieren

    Rufen Sie zum Optimieren eines Modells die Seite "Modelle" auf, klicken Sie auf den Namen des Modells, um die zugehörige Detailseite aufzurufen, und klicken Sie dann in der Schaltflächenleiste auf Manuelle Optimierung.

    Zur Seite "Retail-Modelle"

    Weitere Informationen zur Feinabstimmung der Kosten finden Sie unter Preise.