Revisar productos con la API de Merchant Center

Las reseñas de productos son una parte importante de la experiencia de compra de los clientes. Estas calificaciones y opiniones ayudan a los clientes a investigar los productos y a tomar decisiones de compra. Las opiniones positivas sobre productos pueden atraer a más clientes calificados a las páginas de productos de un vendedor. Entre las fuentes, se incluyen vendedores, agregadores de opiniones, sitios de opiniones y usuarios de Google.

En esta página, se explica cómo puedes administrar las opiniones de productos con la API de Merchant Center.

Requisitos previos

Google necesita que proporciones información específica. Debes tener lo siguiente:

  • Un feed de opiniones sobre productos activo en Google Merchant Center
  • Tu cuenta debe estar inscrita en el programa Calificaciones de productos. Si no estás seguro de si ya te inscribiste, consulta Merchant Center. Si no estás inscrito, obtén más información para inscribirte en el programa de calificaciones de productos.
  • Para revisar productos con la API de Merchant Center, envía una solicitud mediante este formulario.

Cómo crear una fuente de datos

Usa la API de datasource.create para crear un feed de opiniones de productos. Si hay un feed de opiniones de productos existente disponible, usa accounts.dataSources.get para recuperar el accounts.dataSources.name. El formato de la solicitud es el siguiente:

POST https://merchantapi.googleapis.com/datasources/v1beta/accounts/{account}/dataSources/{datasource}

Ejemplo

En el ejemplo, se muestra una solicitud y una respuesta típicas.

Solicitud

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

Respuesta

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

Para obtener más información, consulta la descripción general de la API de Merchant Data Sources.

Crea una opinión sobre el producto

Puedes usar el método accounts.productreviews.insert para crear o actualizar una opinión sobre un producto. El método accounts.productreviews.insert toma un recurso productreview y un nombre de fuente de datos como entrada. Muestra el productreview nuevo o actualizado, si se ejecuta correctamente. Para crear una opinión sobre un producto, debes tener un datasource.name.

El formato de la solicitud:

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

En la siguiente solicitud de ejemplo, se muestra cómo puedes crear una opinión sobre un producto.

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

  productReviewId = 'my_product_review'
  attributes {
    aggregatorName = 'aggregator_name'
    subclientName = 'subclient_name'
    publisherName = 'publisher_name'
    publisherFavicon = 'https://www.google.com/favicon.ico'
    reviewerId = 'reviewer_id'
    reviewerIsAnonymous = false
    reviewerUsername = 'reviewer_username'
    reviewLanguage = 'en'
    reviewCountry = 'US'
    reviewTime = '2024-04-01T00:00:00Z'
    title = 'Incredible product'
    content = 'This is an incredible product.'
    pros = ['pro1', 'pro2']
    cons = ['con1', 'con2']
    reviewLink = {
      type = 'SINGLETON'
      link = 'https://www.google.com'
    }
    reviewerImageLink = 'https://www.google.com/reviewer.png'
    minRating = 1
    maxRating = 10
    rating = 8.5
    productName = 'product_name'
    productLink = 'https://www.google.com/product'
    asins = ['asin1', 'asin2']
    gtins = ['gtin1', 'gtin2']
    mpns = ['mpn1', 'mpn2']
    skus = ['sku1', 'sku2']
    brands = ['brand1', 'brand2']
    isSpam = false
    collectionMethod = 'POST_FULFILLMENT'
    transactionId = 'transaction_id'
  }

Después de crear la opinión sobre el producto, esta puede tardar unos minutos en propagarse.

Este es un ejemplo que puedes usar para insertar varias opiniones de productos de forma asíncrona:

Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.reviews.v1beta.ListProductReviewsRequest;
import com.google.shopping.merchant.reviews.v1beta.ProductReview;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient.ListProductReviewsPagedResponse;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to list all the product reviews in a given account. */
public class ListProductReviewsSample {

  public static void listProductReviews(String accountId) throws Exception {
    GoogleCredentials credential = new Authenticator().authenticate();

    ProductReviewsServiceSettings productReviewsServiceSettings =
        ProductReviewsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    try (ProductReviewsServiceClient productReviewsServiceClient =
        ProductReviewsServiceClient.create(productReviewsServiceSettings)) {

      ListProductReviewsRequest request =
          ListProductReviewsRequest.newBuilder()
              .setParent(String.format("accounts/%s", accountId))
              .build();

      System.out.println("Sending list product reviews request:");
      ListProductReviewsPagedResponse response =
          productReviewsServiceClient.listProductReviews(request);

      int count = 0;

      // Iterates over all rows in all pages and prints all product reviews.
      for (ProductReview element : response.iterateAll()) {
        System.out.println(element);
        count++;
      }
      System.out.print("The following count of elements were returned: ");
      System.out.println(count);
    } catch (Exception e) {
      System.out.println(e);
    }
  }

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

Cómo recuperar una opinión sobre un producto

Para ver una opinión sobre un producto, usa accounts.productreviews.get. Esta opción es de solo lectura. Requiere tu accountId y el ID de la opinión sobre el producto como parte del campo de nombre. El método GET muestra el recurso de opinión sobre el producto correspondiente.

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

Este es un ejemplo que puedes usar para recuperar una opinión sobre un producto:

Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.reviews.v1beta.GetProductReviewRequest;
import com.google.shopping.merchant.reviews.v1beta.ProductReview;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to get a product review. */
public class GetProductReviewSample {

  public static void getProductReview(String accountId, String productReviewId) throws Exception {
    GoogleCredentials credential = new Authenticator().authenticate();

    ProductReviewsServiceSettings productReviewsServiceSettings =
        ProductReviewsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    try (ProductReviewsServiceClient productReviewsServiceClient =
        ProductReviewsServiceClient.create(productReviewsServiceSettings)) {

      GetProductReviewRequest request =
          GetProductReviewRequest.newBuilder()
              .setName(String.format("accounts/%s/productReviews/%s", accountId, productReviewId))
              .build();

      System.out.println("Sending get product review request:");
      ProductReview response = productReviewsServiceClient.getProductReview(request);
      System.out.println("Product review retrieved successfully:");
      System.out.println(response.getName());
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    String productReviewId = "YOUR_PRODUCT_REVIEW_ID";
    getProductReview(config.getAccountId().toString(), productReviewId);
  }
}

Cómo mostrar opiniones sobre productos

Puedes usar el método productreviews.list para ver todas las opiniones de productos creadas.

GET https://merchantapi.googleapis.com/reviews/v1beta/{parent=accounts/{ACCOUNT_ID}}/productReviews

Este es un ejemplo que puedes usar para mostrar todas las opiniones de un producto:

Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.reviews.v1beta.ListProductReviewsRequest;
import com.google.shopping.merchant.reviews.v1beta.ProductReview;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient.ListProductReviewsPagedResponse;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to list all the product reviews in a given account. */
public class ListProductReviewsSample {

  public static void listProductReviews(String accountId) throws Exception {
    GoogleCredentials credential = new Authenticator().authenticate();

    ProductReviewsServiceSettings productReviewsServiceSettings =
        ProductReviewsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    try (ProductReviewsServiceClient productReviewsServiceClient =
        ProductReviewsServiceClient.create(productReviewsServiceSettings)) {

      ListProductReviewsRequest request =
          ListProductReviewsRequest.newBuilder()
              .setParent(String.format("accounts/%s", accountId))
              .build();

      System.out.println("Sending list product reviews request:");
      ListProductReviewsPagedResponse response =
          productReviewsServiceClient.listProductReviews(request);

      int count = 0;

      // Iterates over all rows in all pages and prints all product reviews.
      for (ProductReview element : response.iterateAll()) {
        System.out.println(element);
        count++;
      }
      System.out.print("The following count of elements were returned: ");
      System.out.println(count);
    } catch (Exception e) {
      System.out.println(e);
    }
  }

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

Cómo borrar opiniones sobre productos

Para borrar una opinión sobre un producto, usa accounts.productreviews.delete. Al igual que el método GET, este método requiere que se devuelva el campo de nombre de la opinión sobre el producto durante la creación.

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

Este es un ejemplo que puedes usar para borrar una opinión sobre un producto:

Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.reviews.v1beta.DeleteProductReviewRequest;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceClient;
import com.google.shopping.merchant.reviews.v1beta.ProductReviewsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to delete a product review. */
public class DeleteProductReviewSample {

  public static void deleteProductReview(String accountId, String productReviewId)
      throws Exception {
    GoogleCredentials credential = new Authenticator().authenticate();

    ProductReviewsServiceSettings productReviewsServiceSettings =
        ProductReviewsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    try (ProductReviewsServiceClient productReviewsServiceClient =
        ProductReviewsServiceClient.create(productReviewsServiceSettings)) {

      DeleteProductReviewRequest request =
          DeleteProductReviewRequest.newBuilder()
              .setName(String.format("accounts/%s/productReviews/%s", accountId, productReviewId))
              .build();

      System.out.println("Sending delete product review request:");
      productReviewsServiceClient.deleteProductReview(request);
      System.out.println("Product review deleted successfully");
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    String productReviewId = "YOUR_PRODUCT_REVIEW_ID";
    deleteProductReview(config.getAccountId().toString(), productReviewId);
  }
}

Estado de las opiniones sobre el producto

El recurso de opiniones sobre productos contiene un estado similar al de otras APIs, que es una parte integral del recurso y sigue la misma estructura de problemas y destinos.