Merchant API kullanarak ürünleri inceleme

Ürün yorumları, müşteriler için alışveriş deneyiminin önemli bir parçasıdır. Bu puanlar ve yorumlar, müşterilere ürün araştırma ve satın alma kararlarında yardımcı olur. Olumlu ürün yorumları, satıcının ürün sayfalarına daha bilinçli müşteriler çekebilir. Kaynaklar arasında satıcılar, yorum toplayıcılar, yorum siteleri ve Google kullanıcıları yer alır.

Bu sayfada, Merchant API'yi kullanarak ürün yorumlarını nasıl yönetebileceğiniz açıklanmaktadır.

Ön koşullar

Google, belirli bilgileri sağlamanızı gerektirir. Aşağıdakilere sahip olmanız gerekir:

  • Google Merchant Center'da etkin bir ürün yorumları feed'i
  • Hesabınızın ürün puanları programına kayıtlı olması gerekir. Programa kayıtlı olup olmadığınızdan emin değilseniz Merchant Center'ı kontrol edin. Kayıtlı değilseniz ürün puanları programına kaydolma hakkında daha fazla bilgi edinin.
  • Merchant API'yi kullanarak ürünleri incelemek için bu formu kullanarak istek gönderin.

Veri kaynağı oluşturma

Ürün yorumu feed'i oluşturmak için datasource.create API'yi kullanın. Mevcut bir ürün yorumu feed'i varsa accounts.dataSources.get kullanarak accounts.dataSources.name getirin. İsteğin biçimi aşağıdaki gibidir:

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

Örnek

Örnekte, tipik bir istek ve yanıt gösterilmektedir.

İstek

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

Yanıt

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

Daha fazla bilgi için Ürün yorumu veri kaynağı oluşturma başlıklı makaleyi inceleyin.

Ürün incelemesi oluşturma

Ürün yorumu oluşturmak veya güncellemek için accounts.productreviews.insert yöntemini kullanabilirsiniz. accounts.productreviews.insert yöntemi, giriş olarak bir productreview kaynağı ve bir veri kaynağı adı alır. Başarılı olursa yeni veya güncellenmiş productreview değerini döndürür. Ürün yorumu oluşturmak için datasource.name sahibi olmanız gerekir.

Talebin şekli:

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

Aşağıdaki örnek istek, ürün yorumunu nasıl oluşturabileceğinizi gösterir.

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

  productReviewId = 'my_product_review'
  productReviewAttributes {
    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'
  }

Ürün incelemesi oluşturulduktan sonra incelemenin yayılması birkaç dakika sürebilir.

Birden fazla ürün yorumunu eşzamansız olarak eklemek için kullanabileceğiniz bir örnek aşağıda verilmiştir:

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

Ürün yorumu alma

Ürün yorumunu görüntülemek için accounts.productreviews.get simgesini kullanın. Bu alan salt okunurdur. Ad alanının bir parçası olarak accountId ve ürün yorumunun kimliğini gerektirir. GET yöntemi, ilgili ürün yorumu kaynağını döndürür.

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

Ürün yorumu almak için kullanabileceğiniz bir örnek aşağıda verilmiştir:

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

Ürün yorumlarını listeleme

Oluşturulan tüm ürün yorumlarını görüntülemek için productreviews.list yöntemini kullanabilirsiniz.

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

Bir ürünle ilgili tüm yorumları listelemek için kullanabileceğiniz örnek aşağıda verilmiştir:

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

Ürün yorumlarını silme

Ürün yorumunu silmek için accounts.productreviews.delete simgesini kullanın. GET yöntemine benzer şekilde, bu yöntemde de oluşturma sırasında döndürülen ürün yorumunun ad alanı gerekir.

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

Ürün yorumunu silmek için kullanabileceğiniz bir örnek aşağıda verilmiştir:

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

Ürün yorumu durumu

Ürün incelemesi kaynağı, diğer API'lere benzer bir durum içerir. Bu durum, kaynağın ayrılmaz bir parçasıdır ve aynı sorun ile hedef yapısını izler.