Textvorschläge generieren

Die Text Suggestions API nutzt die Tools für generative KI der Product Studio API, um Produkttitel und ‑beschreibungen zu generieren und zu optimieren. Sie können damit die Kundeninteraktion und die Conversion-Rate verbessern und die Verwaltung und Aktualisierung von Produktinformationen optimieren. Die Funktionen der Product Studio API können Ihnen helfen, Ihre Einzelhandelsleistung zu optimieren.

Was kann mit der API generiert werden?

Mit der Text Suggestions API haben Sie folgende Möglichkeiten:

  • Vorgeschlagene Produkttitel und ‑beschreibungen basierend auf Ihrem Produktbild und/oder Ihren Produktattributen.
  • SEO-optimierte Titel für Ihre Produkte
  • Benutzerdefinierte formatierte Titel für Ihre Produkte
  • Produktbeschreibungen aus Ihrem Produktfeed

Sie können auch den Stil für die Beschreibungen festlegen und so für Konsistenz in allen Ihren Produkteinträgen sorgen.

Kurzanleitung

Mit der Methode GenerateProductTextSuggestions können Produkttitel und ‑beschreibungen anhand Ihrer Produktinformationen generiert oder optimiert werden.

Die API akzeptiert:

  • Produktattribute (JSON-Wörterbuch): Ein JSON-Objekt mit Produktattributen (z. B. {"title": "White Tee", "brand": "MyBrand", "size": "XL"})
  • Produktbild:Ein URI, der auf das Produktbild verweist (z. B. {"uri": "https://my-store.com/img/1.png"})
  • Optionen für die Titelformatierung: Parameter zum Anpassen der Titelgenerierung, darunter:
    • attribute_separator: Gibt das Trennzeichen zwischen Attributen an.
    • target_language: Legt die Ausgabesprache fest.
    • attribute_order: Definiert die Reihenfolge der Attribute im generierten Titel.
  • Beispiele für die Datenkennzeichnung: Hier finden Sie ein Beispiel dafür, wie Sie einen Titel aus einer Beschreibung generieren.
  • Workflow-ID (output_spec.workflow_id): Das Feld workflow_id im Objekt output_spec bestimmt den Typ der Textgenerierung:
    • title: Generiert oder optimiert den Produkttitel.
    • description: Generiert oder optimiert die Produktbeschreibung.
    • tide: Generiert oder optimiert sowohl den Produkttitel als auch die Beschreibung.

Beispiele

Im Folgenden finden Sie Beispiele für die Verwendung der API zum Generieren oder Optimieren eines Titels oder einer Beschreibung oder beider Elemente aus verschiedenen Produktdateneingaben. Außerdem werden häufige Fehler und Probleme und ihre Lösungen vorgestellt.

Optimierte Titelerstellung

Das Beispiel zeigt, wie ein optimaler Titel generiert wird.

Anfrage

Der Anfragetext enthält die Produktinformationen, die für die Titeloptimierung verwendet werden sollen. Hier ein Beispiel für die Struktur der Anfrage:

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_attributes": {
         "title": "Nike Mens shoes",
         "description": "Give strength to your step with the Nike Air Zoom Pegasus 38 shoe for Men with shoe size 12. Ensuring the fit is loved by the runners. This shoes comes in Blue color.",
         "brand": "Nike"
      }
   },
   "output_spec": {
      "workflow_id": "title"
   }
}

Antwort

Sie können eine Antwort wie

{
  "title": {
    "text": "Nike Mens shoes Air Zoom Pegasus 38 Running Shoes, Blue, Size 12"
  },
  "metadata": {
    "metadata": {
      "attributes": {
        "color": "Blue",
        "size": "12",
        "product": "Running shoes",
        "model": "Air Zoom Pegasus 38"
      },
    }
  }
}

Titel nur aus einem Bild generieren

Im Beispiel wird gezeigt, wie Sie ein Produktbild bereitstellen und einen optimalen Titel generieren.

Anfrage

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_image":{
         "uri": "https://cdn.shopify.com/s/files/1/0653/5879/0892/products/1672082339438_550x825.jpg?v=1672082415"
      }
   },
   "output_spec": {
      "workflow_id": "title",
      "attribute_separator": "-"
   }
}

Antwort

{
  "title": {
    "text": "Rustic Ceramic & Leather Leaves Necklace"
  },
  "metadata": {
    "metadata": {
      "attributes": {
        "material": "Rustic Ceramic & Leather",
        "pattern": "Leaves",
        "product": "Necklace"
      },
    }
  }
}

Titel aus einer Beschreibung generieren

Im Beispiel wird gezeigt, wie Sie eine Produktbeschreibung angeben und einen optimalen Titel generieren.

Anfrage

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_attributes": {
         "description": "selling size 12 nike dunks. oh they are red by the way!"
      }
   },
   "output_spec": {
      "workflow_id": "title",
   }
}

Antwort

{
  "title": {
    "text": "Nike Dunks Red Size 12"
  },
  "metadata": {
    "metadata": {
      "attributes": {
        "brand": "Nike",
        "color": "Red",
        "size": "12",
        "product": "Dunks"
      },
    }
  }
}

Titel anhand eines Titels und einer Beschreibung optimieren (mit benutzerdefiniertem Beispiel)

In diesem Beispiel kennzeichnen wir explizit die Produktattribute, die die KI identifizieren soll, und die Reihenfolge der Attribute in der Ausgabe.

Anfrage

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_attributes": {
         "title": "Volumizing & Lengthening Mascara - Dark Brown",
         "description": "This high-impact mascara delivers both voluptuous volume and dramatic length without clumping or smudging.",
         "brand": "Luxe Beauty"
      }
   },
   "output_spec": {
      "workflow_id": "title"
   }
   "title_examples": [
    {
      "product_info": {
        "title": "Lash Paradise Volumizing & Lengthening Mascara - Waterproof - Blackest Black",
        "colour": "Black"
      },
      "title_format": "product",
      "category": "mascara",
      "final_product_info": {
        "product": "Mascara",
        "brand": "Lash Paradise",
        "mascara_type": "Volumizing & Lengthening",
        "colour": "Blackest Black",
        "waterproof": "Waterproof",
      }
    },
    {
      "product_info": {
        "title": "Hypnose Drama Instant Full Body Volume Mascara - Black",
        "colour": "Black"
      },
      "title_format": "product",
      "category": "mascara",
      "final_product_info": {
        "product": "Mascara",
        "brand": "Hypnose",
        "sub_brand": "Drama",
        "mascara_type": "Full Body Volume",
        "colour": "Black",
        "eye_lash_type": "All lash types"
      }
    }
  ]
}

Antwort

{
  "title": {
    "text": "Luxe Beauty Dark Brown Volumizing & Lengthening Mascara"
  },
  "metadata": {
    "metadata": {
      "attributes": {
        "brand": "Luxe Beauty",
        "colour": "Dark Brown",
        "mascara_type": "Volumizing & Lengthening",
        "product": "Mascara"
      },
    }
  }
}

Beschreibung aus einem Titel generieren

Das Beispiel zeigt, wie Sie einen Produkttitel angeben und die API bitten, eine entsprechende Produktbeschreibung zu generieren.

Anfrage

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_attributes": {
         "title": "Rustic Ceramic & Leather Leaves Necklace",
      }
   },
   "output_spec": {
      "workflow_id": "description"
   }
}

Antwort

{
  "description": {
    "text": "Rustic Ceramic & Leather Leaves Necklace is a beautiful necklace made from high-quality ceramic and leather. It features a unique design that is sure to turn heads.
"
  },
}

Titel und Beschreibung aus Produktattributen wie Marke und Farbe generieren

In diesem Beispiel wird gezeigt, wie Sie Produktattribute angeben, um einen optimalen Produkttitel und eine optimale Produktbeschreibung zu generieren.

Anfrage

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_attributes": {
         "brand": "Mr. Beast",
         "color": "purple",
      },
      "product_image":{
         "uri": "https://mrbeast.store/cdn/shop/files/0015dlv_0000_327.jpg?v=1702754475&width=500"
       }
   },
   "output_spec": {
      "workflow_id": "description"
   }
}

Antwort

{
  "title": {
    "text": "Pajamas - Mr. Beast | Purple"
  },
  "description": {
    "text": "Slip into the ultimate comfort and style with these Mr. Beast pajamas in a vibrant shade of purple. Crafted from the softest materials, these pajamas will envelop you in a cozy embrace, ensuring a restful night's sleep. The shorts feature a relaxed fit, allowing for easy movement, while the top boasts a classic design with a comfortable neckline. Whether you're lounging at home or drifting off to dreamland, these Mr. Beast pajamas are the perfect choice for a peaceful and stylish slumber."
  },
}

Unterstützung von Zielsprachen

In diesem Feld wird die Sprache des Beschreibungstexts angegeben, der in der API-Antwort generiert wird. Sie können target_language als Teil der output_spec-Parameter hinzufügen:

{
    "output_spec": {
        "target_language": "language"
    }
}

Beispielwerte:

"korean" (Korean)
"english" (English)
"spanish" (Spanish)
"french" (French)

Beispielanfrage

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_attributes": {
         "title": "Granos de café negro",
         "description": "Los granos de café negro en California",
         "brand": "Parfums de Paris",
         "scent": "Floral",
      },
      "product_image":{
         "uri": "https://mrbeast.store/cdn/shop/files/0015dlv_0000_327.jpg?v=1702754475&width=500"
       }
   },
   "output_spec": {
      "workflow_id": "description",
      "target_language": "japanese",
      "attribute_order": ["scent", "product"],
      "tone": "playful",
   }
}

Antwort

{
  "description": {
    "text": "カリフォルニアの黒いコーヒー豆は、あなたの鼻をくすぐる、甘く、フローラルな香りです。この香りは、コーヒー豆の豊かな香りと、ジャスミンとバラの繊細な花の香りをブレンドしたものです。カリフォルニアの黒いコーヒー豆は、あなたの家を居心地の良いカフェに変え、あなたをリラックスした気分にさせてくれるでしょう。この香りは、コーヒー好きにも、フローラルな香り好きにも最適です。カリフォルニアの黒いコーヒー豆で、あなたの家を幸せな香りで満たしましょう!."
  },
}

Personalisierung des Formulierungsstils für die Beschreibungserstellung

Um Ihre Marke zu etablieren und Ihren Onlineshop von anderen abzuheben, können Sie den Ton der generierten Beschreibungen personalisieren. Die Text API bietet zwei Optionen:

  • Vordefinierte Tonauswahl:Sie können aus einer Liste von Tönen auswählen, um neue Beschreibungen zu generieren. Die Liste enthält die folgenden Stilrichtungen:
    • Standard:Schlicht, klar und elegant.
    • Verspielt:Heiter, mit positiver Sprache, Humor (Witze, Wortspiele) und Übertreibung (keine Ironie, kein Sarkasmus, keine Emojis).
    • Formal:Standard-Englisch, korrekte Grammatik, vollständige Sätze, kein Slang oder Kontraktionen.
    • Überzeugend:Logisch, prägnant und argumentativ, um den Leser zu überzeugen.
    • Dialogorientiert:Freundliche, leicht verständliche Alltagssprache.
  • Markenspezifischer Ton:Sie können vorhandene Beschreibungen oder andere Text-Assets im Ton Ihrer Marke bereitstellen. Das generative KI-Modell analysiert den Ton des Texts und generiert anhand der folgenden Aspekte einen „Schreibstil-Deskriptor“:
    • Förmlichkeit (z. B. formell, informell)
    • Ausführlichkeit (z. B. kurz, sehr ausführlich)
    • Ton (z. B. professionell, informativ, positiv, überzeugend)
    • Satzstruktur (z. B. „einfacher Satz mit wenigen Konjunktionen“)
    • Häufig verwendete Wörter und Wortgruppen

Clientbibliotheken

Wir empfehlen, Clientbibliotheken zum Senden von Anfragen zu verwenden. Wir stellen Ihnen die Clientbibliotheken zur Verfügung, die Sie in Ihrem Maven-Projekt installieren können.

Codebeispiele

Wählen Sie Ihre Authentifizierungsmethode aus und richten Sie die Codebeispiele anhand dieser Anleitung ein. Hier ist ein Beispiel, das Sie zum Generieren von Textvorschlägen verwenden können.

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.productstudio.v1alpha.GenerateProductTextSuggestionsRequest;
import com.google.shopping.merchant.productstudio.v1alpha.GenerateProductTextSuggestionsResponse;
import com.google.shopping.merchant.productstudio.v1alpha.OutputSpec;
import com.google.shopping.merchant.productstudio.v1alpha.ProductInfo;
import com.google.shopping.merchant.productstudio.v1alpha.TextSuggestionsServiceClient;
import com.google.shopping.merchant.productstudio.v1alpha.TextSuggestionsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to generate product text suggestions. */
public class GenerateProductTextSuggestionsSample {

  private static String getName(String accountId) {
    return String.format("accounts/%s", accountId);
  }

  public static void generateProductTextSuggestions(Config config) throws Exception {
    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    TextSuggestionsServiceSettings textSuggestionsServiceSettings =
        TextSuggestionsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    String name = getName(config.getAccountId().toString());

    // Calls the API and catches and prints any network failures/errors.
    try (TextSuggestionsServiceClient textSuggestionsServiceClient =
        TextSuggestionsServiceClient.create(textSuggestionsServiceSettings)) {

      ProductInfo productInfo =
          ProductInfo.newBuilder()
              .putProductAttributes("title", "Mens shirt")
              .putProductAttributes("description", "A blue shirt for men in size S")
              .build();

      OutputSpec outputSpec = OutputSpec.newBuilder().setWorkflowId("title").build();

      GenerateProductTextSuggestionsRequest request =
          GenerateProductTextSuggestionsRequest.newBuilder()
              .setName(name)
              .setProductInfo(productInfo)
              .setOutputSpec(outputSpec)
              .build();

      System.out.println("Sending GenerateProductTextSuggestions request: " + name);
      GenerateProductTextSuggestionsResponse response =
          textSuggestionsServiceClient.generateProductTextSuggestions(request);
      System.out.println("Generated product text suggestions response below:");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println("An error has occured: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    generateProductTextSuggestions(config);
  }
}

Häufige Fehler und Probleme

Im Folgenden finden Sie einige häufige Fehler und ihre Lösungen.

Produktinformationen sind erforderlich, um Textvorschläge zu generieren

Sollten Sie die folgende Fehlermeldung erhalten:

Error message:
"error": {
    "code": 400,
    "message": "[product_info] Product info is required to generate text suggestions.",
    "status": "INVALID_ARGUMENT",
 ...
}

Fügen Sie product_info in den Anfragetext ein und geben Sie mindestens einen der Werte product_attributes oder product_image korrekt an.

Wenn Sie beispielsweise Folgendes posten, wird ein Fehler ausgegeben.

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "output_spec": {
      "workflow_id": "title"
   }
}

Mindestens ein Feld von „product_info“ ist erforderlich, um Textvorschläge zu generieren.

Dieser Fehler

{
  "error": {
    "code": 400,
    "message": "[product_info.product_attributes] At least one field of product_info is required to generate text suggestions.",
    "status": "INVALID_ARGUMENT",
 ...
}

weist darauf hin, dass Sie mindestens ein product_info-Feld in den Anfragetext einfügen müssen.

Wenn Sie beispielsweise Folgendes posten, wird ein Fehler ausgegeben.

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
   },
   "output_spec": {
      "workflow_id": "title"
   }
}

Verwenden Sie stattdessen etwas wie

   "product_info": {
        "product_attributes": {
         "description": "Selling size 12 Nike dunks. Oh they are red by the way!"
      }
   }

oder

"product_info": {
    "product_image":{
        "uri": "https://cdn.shopify.com/s/files/1/0653/5879/0892/products/1672082339438_550x825.jpg?v=1672082415"
    }
}

(Etwas) ist in jedem „title_example“ erforderlich

Fehler wie in den folgenden vier Beispielen

{
  "error": {
    "code": 400,
    "message": "[title_examples.product_info] At least one field of product_info is required in each title_example.",
    "status": "INVALID_ARGUMENT",
 ...
}

oder

{
  ...
    "message": "[title_examples.category] Category is required in each title_example.",
  ...
}

oder

{
  ...
    "message": "[title_examples.title_format] Title format is required in each title_example.",
  ...
}

oder

{
  ...
    "message": "[title_examples.final_product_info] At least one field of final_product_info is required in each title_example.",
  ...
}

Sie haben ein erforderliches Unterfeld nicht ausgefüllt.

Die folgende Anfrage würde beispielsweise einen Fehler generieren.

POST
https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
    "product_info": {
        "product_attributes": {
            "description": "selling size 12 nike dunks. oh they are red by the way!"
        }
    },
    "output_spec": {
        "workflow_id": "title"
    },
    "title_examples": []
}

Füllen Sie dazu für jedes in der Anfrage angegebene „title_example“ alle folgenden Unterfelder aus:

  • product_info
  • category
  • title_format
  • final_product_info

Beispiel:

{
   "product_info": {
      "product_attributes": {
         "title": "Volumizing & Lengthening Mascara - Dark Brown",
         "description": "This high-impact mascara delivers both voluptuous volume and dramatic length without clumping or smudging.",
      }
   },
   "output_spec": {
      "workflow_id": "title"
   },
   "title_examples": [
    {
      "product_info": {
        "title": "Lash Paradise Volumizing & Lengthening Mascara - Waterproof - Blackest Black",
        "colour": "Black"
      },
      "title_format": "product",
      "category": "mascara",
      "final_product_info": {
        "product": "Mascara",
        "brand": "Lash Paradise",
        "mascara_type": "Volumizing & Lengthening",
        "colour": "Blackest Black",
        "waterproof": "Waterproof",
      }
    }
  ]
}

Nicht unterstützte workflow_id

Diese Art von Fehler

{
  "error": {
    "code": 400,
    "message": "[\u003ceye3 title='/ProductStudioTextGenerationService.GenerateProductText, INVALID_ARGUMENT'/\u003e APPLICATION_ERROR; ... ;Unsupported workflow_id: attributes. Supported workflows are: [\"title\", \"description\", \"tide\"];AppErrorCode=3;StartTimeMs=1740696804045;unknown;ResFormat=uncompressed;ServerTimeSec=0.005976589;LogBytes=256;Non-FailFast;EffSecLevel=none;ReqFormat=uncompressed;ReqID=4d1786f59faa3ea7;GlobalID=0;Server=[2002:a05:6e16:618:b0:2c2:7cfc:bebd]:14001] Invalid value",
    "status": "INVALID_ARGUMENT",
 ...
}

würde aus einer Anfrage wie

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_attributes": {
         "title": "Volumizing & Lengthening Mascara - Dark Brown",
         "description": "This high-impact mascara delivers both voluptuous volume and dramatic length without clumping or smudging.",
   },
   "output_spec": {
      "workflow_id": "attributes"
   }
}

In der Anfrage wird workflow_id auf „attributes“ festgelegt, aber dieses Feld unterstützt nur einen der folgenden Werte:

  • title: Generiert oder optimiert den Produkttitel.
  • description: Generiert oder optimiert die Produktbeschreibung.
  • tide: Generiert oder optimiert sowohl den Produkttitel als auch die Produktbeschreibung.

Nicht unterstützter Ton

Ein Fehler vom Typ „Nicht unterstützter Stil“ wie

{
  "error": {
    "code": 400,
    "message": "[\u003ceye3 title='/ProductStudioTextGenerationService.GenerateProductText, INVALID_ARGUMENT'/\u003e APPLICATION_ERROR; ... ; Unsupported tone: 'asdf'. Supported tones are: [\"default\", \"playful\", \"formal\", \"persuasive\", \"conversational\"];AppErrorCode=3;StartTimeMs=1740697325058;unknown;ResFormat=uncompressed;ServerTimeSec=7.45346E-4;LogBytes=256;Non-FailFast;EffSecLevel=none;ReqFormat=uncompressed;ReqID=f7d9bbbc73a1d342;GlobalID=0;Server=[2002:a05:6918:3486:b0:2bc:ccd4:79e6]:14001] Invalid value",
    "status": "INVALID_ARGUMENT",
 ...
}

würde aus einer Anfrage wie

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}:generateProductTextSuggestions

{
   "product_info": {
      "product_attributes": {
         "title": "Volumizing & Lengthening Mascara - Dark Brown",
         "description": "This high-impact mascara delivers both voluptuous volume and dramatic length without clumping or smudging.",
   },
   "output_spec": {
      "workflow_id": "description"
      "tone": "cheerful"
   }
}

tone wird auf „cheerful“ gesetzt, aber dieses Feld unterstützt nur einen der folgenden Werte:

  • Standard: Schlicht, klar und elegant.
  • spielerisch: Unbeschwert, mit positiver Sprache, Humor (Witze, Wortspiele) und Übertreibung (keine Ironie, kein Sarkasmus, keine Emojis).
  • Formal: Standard-Englisch, korrekte Grammatik, vollständige Sätze, kein Slang oder keine Abkürzungen.
  • Überzeugend: Logisch, prägnant und argumentativ, um den Leser zu überzeugen.
  • Konversationell: Freundliche, leicht verständliche Alltagssprache.