Review sellers using Merchant API

Seller reviews help people find businesses that offer high-quality customer experiences, helping to build trust and enabling more informed purchasing decisions. As a result, shop ratings can help businesses improve the performance of ads and organic listings and drive more qualified customers to their landing pages.

This page explains how you can manage seller reviews using Merchant API.

Prerequisites

Google needs you to provide specific information. You must have the following:

  • An active merchant review data source in the Google Merchant Center.
  • Your account must be enrolled into the store ratings program. If you are unsure whether you are already enrolled, check the Merchant Center. If you aren't enrolled, submit the request form.

Create a data source

Use the accounts.dataSources.create method to create a merchant reviews feed. If an existing merchant reviews feed is available, use accounts.dataSources.get to fetch the dataSource.name field.

The form of the request is as follows:

POST https://merchantapi.googleapis.com/datasources/v1beta/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}

Example

The example shows a typical request and response.

Request

POST https://merchantapi.googleapis.com/datasources/v1beta/accounts/123/dataSources {"displayName": "test api feed", "merchantReviewDataSource":{} }

Response

{
  "name": "accounts/123/dataSources/1000000573361824",
  "dataSourceId": "1000000573361824",
  "displayName": "test api feed",
  "merchantReviewDataSource": {},
  "input": "API"
}

For more information, see Overview of Merchant Data sources API.

Create merchant review

You can use the accounts.merchantReviews.insert method to create or update a seller review. The accounts.merchantReviews.insert method takes a merchantreview resource and a data source name as input. It returns the new or updated merchant review, if successful. Creating a merchant review requires datasource.name.

The form of the request:

POST https://merchantapi.googleapis.com/reviews/v1beta/{parent=accounts/*/}merchantReviews:insert

Study the following sample merchant review for reference.

POST https://merchantapi.googleapis.com/reviews/v1beta/accounts/{ACCOUNT_ID}/merchantReviews:insert?dataSource=accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}

  merchantReviewId = 'my_own_review'
  attributes {
    merchantId = 'merchant_id'
    merchantDisplayName = 'merchant_display_name'
    merchantLink = 'publisher_name'
    merchantRatingLink = 'https://www.google.com'
    minRating = 1
    maxRating = 10
    rating = 7.9
    title = 'Amazing Merchant'
    content = 'This is an incredible merchant'
    reviewerId = 'reviewer_id'
    reviewerUsername = 'reviewer_username'
    isAnonymous = false
    collectionMethod = 'AFTER_FULFILLMENT'
    reviewTime = '2024-04-01T00:00:00Z'
    reviewLanguage = 'en'
    reviewCountry = 'US'
  }

After merchant review creation, it may take a few minutes for the review to propagate.

View merchant reviews

To view a merchant review, use accounts.merchantReviews.get. This is read-only. It requires your merchantId and the ID of the merchant review as part of the name field. The get method returns the corresponding merchant review resource.

For example:

GET https://merchantapi.googleapis.com/reviews/v1beta/{name=accounts/*/merchantReviews/*}

To retrieve a single product for a given Merchant Center account, you can use the google.shopping.merchant.accounts.v1beta.GetProductRequest method, as shown in the following sample.

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.products.v1beta.GetProductRequest;
import com.google.shopping.merchant.products.v1beta.Product;
import com.google.shopping.merchant.products.v1beta.ProductsServiceClient;
import com.google.shopping.merchant.products.v1beta.ProductsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to get a single product for a given Merchant Center account */
public class GetProductSample {

  public static void getProduct(Config config, String product) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    ProductsServiceSettings productsServiceSettings =
        ProductsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Calls the API and catches and prints any network failures/errors.
    try (ProductsServiceClient productsServiceClient =
        ProductsServiceClient.create(productsServiceSettings)) {

      // The name has the format: accounts/{account}/products/{productId}
      GetProductRequest request = GetProductRequest.newBuilder().setName(product).build();

      System.out.println("Sending get product request:");
      Product response = productsServiceClient.getProduct(request);

      System.out.println("Retrieved Product below");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // The name of the `product`, returned after a `Product.insert` request. We recommend
    // having stored this value in your database to use for all future requests.
    String product = "accounts/{datasource}/products/{productId}";

    getProduct(config, product);
  }
}

List merchant reviews

You can use the accounts.merchantReviews.list method to view all created merchant reviews.

GET https://merchantapi.googleapis.com/reviews/v1beta/accounts/{ACCOUNT_ID}/merchantReviews

Delete merchant reviews

To delete a merchant review, use accounts.merchantReviews.delete. Similar to the accounts.merchantReviews.get method, this method requires the name field of the merchant review returned during creation.

For example:

DELETE https://merchantapi.googleapis.com/reviews/v1beta/{name=accounts/*/merchantReviews/*}

Merchant review status

The merchant review resource contains the status similar to other APIs, which is the integral part of the resource and follows the same issue & destination structure.