---
updatedAt: 2026-05-27T10:10:38.000Z
agentTools:
  projectIndex: https://developers.bazaarvoice.com/v1.0-MobileSDK/llms.txt
---

# Content Coach

This section outlines the purpose of the Content Coach feature and provides implementation guidance.

# What is Content Coach?

The Content Coach improves review quality by providing real-time, AI-powered topic suggestions for writing a review. Using product details such as the product name and description, Content Coach generates **five** relevant review topics that help consumers write more specific and useful feedback.

> ℹ️ Note:
>
> 1. The Content Coach can be implemented for  **English**, **Spanish**, **French**, and **German** locales.
> 2. This feature is a part of the [**Conversations API**](/v1.0-ConversationsAPI/docs/home).

The Content Coach includes the following tokens:

* **review-tokens**—Returns topic suggestions for a product within the submission form. This returns **five** single-word topics.
* **matched-tokens**—Returns topic suggestions that match the review text as consumers type. The review text must contain a minimum of five words for the endpoint to return results.

> ℹ️ Note:
>
> To learn more about how **Content Coach API&#x20;**&#x77;orks, refer to [Content Coach.](/v1.0-ConversationsAPI/docs/content-coach)

# Retrieve AI-generated topic suggestions

For **Android**, the token requests are built using their respective `Builder` classes and dispatched asynchronously through Bazaarvoice `client`. Responses are handled by `ConversationsDisplayCallback` function.

Use `ReviewTokensRequest` to fetch AI-generated topic suggestions for a product before the consumer starts writing a review.&#x20;

The code below demonstrates how to fetch topic suggestions for a product within the submission form:

```java
// 1. Build the request with the Target Product ID
ReviewTokensRequest reviewTokensRequest = new ReviewTokensRequest.Builder("test-product-123")
        .build();

// 2. Dispatch the request asynchronously
client.prepareCall(reviewTokensRequest).loadAsync(new ConversationsDisplayCallback<ReviewTokensResponse>() {
    @Override
    public void onSuccess(@NonNull ReviewTokensResponse response) {
        // Handle success: Extract tokens from the response and update the UI
    }

    @Override
    public void onFailure(@NonNull ConversationsException e) {
        // Handle failure: Log the error or hide the Content Coach UI
    }
});
```

# Retrieve matched topics

When the consumer has completed typing a minimum of 5 words in the Review text box, use `MatchedTokensRequest` to pass the live text and evaluate which text has been matched against the topic suggestions provided by the `ReviewTokensRequest` .

```java
// 1. Build the request with the Product ID and the user's current review text
MatchedTokensRequest matchedTokensRequest = new MatchedTokensRequest.Builder("test-product-456")
        .addReviewText("The fit is Fragrance, Projection")
        .build();

// 2. Dispatch the request asynchronously
client.prepareCall(matchedTokensRequest).loadAsync(new ConversationsDisplayCallback<MatchedTokensResponse>() {
    @Override
    public void onSuccess(@NonNull MatchedTokensResponse matchedTokensResponse) {
        // Handle success: Highlight the matched tokens in the UI
    }

    @Override
    public void onFailure(@NonNull ConversationsException e) {
        // Handle failure
    }
});

```

<br />