محدودیت‌های Merchant Center

علاوه‌بر سهمیه‌های فراخوانی API،‏ Merchant Center محدودیت‌های دیگری را برای منابع اعمال می‌کند. این‌ها اغلب با سهمیه‌های API اشتباه گرفته می‌شوند، اما بخشی از محدودیت‌های Merchant Center هستند. برای اطلاعات بیشتر، درک سهمیه در Google Merchant Center را ببینید.

محدودیت‌های محصول

برای بررسی محدودیت‌های محصول، از روش‌های accounts.limits.get و accounts.limits.list استفاده می‌کنید.

برای بازیابی حد محصول خاص، برای مثال، برای دریافت سهمیه «منطقه اقتصادی اروپا» در Ads یک حساب، باید شناسه حساب و شناسه حد را در فراخوان خود به accounts.limits.get مشخص کنید. شناسه محدودیت ترکیبی از نوع و محدوده محدودیت است. برای مثال، products~ADS_EEA برای محصولاتی که آگهی‌هایشان منطقه اقتصادی اروپا را هدف‌یابی می‌کند، و products~ADS_NON_EEA برای محصولاتی که آگهی‌هایشان خارج از منطقه اقتصادی اروپا را هدف‌یابی می‌کند.

در اینجا یک درخواست نمونه برای دریافت حد products~ADS_EEA برای یک حساب معین آورده شده است:

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/limits/products~ADS_EEA

نمونه زیر نشان می‌دهد که چگونه می‌توان محدودیت حساب خاصی را بازیابی کرد:

جاوا

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.quota.v1.AccountLimit;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceClient;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceSettings;
import com.google.shopping.merchant.quota.v1.GetAccountLimitRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to get a single account limit for a given Merchant Center account.
 */
public class GetAccountLimitSample {

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

    AccountLimitsServiceSettings accountLimitsServiceSettings =
        AccountLimitsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    try (AccountLimitsServiceClient accountLimitsServiceClient =
        AccountLimitsServiceClient.create(accountLimitsServiceSettings)) {

      GetAccountLimitRequest request =
          GetAccountLimitRequest.newBuilder()
              .setName(String.format("accounts/%s/limits/%s", accountId, limitId))
              .build();

      System.out.println("Sending get account limit request:");
      AccountLimit response = accountLimitsServiceClient.getAccountLimit(request);

      System.out.println("Retrieved account limit below");
      System.out.println(response);

    } catch (Exception e) {
      System.out.println("Failed to get account limit.");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // The limit ID is a combination of the limit type and the scope, for example:
    // `products~ADS_NON_EEA`
    getAccountLimit(config.getAccountId().toString(), "products~ADS_EEA");
  }
}

برای آشنایی با شناسه‌های حد موجود برای حسابتان، از accounts.limits.list با فیلتری برای type="products" استفاده کنید:

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/limits?filter=type%3D%22products%22

نمونه زیر نحوه فهرست کردن محدودیت‌های حساب را نشان می‌دهد:

جاوا

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.quota.v1.AccountLimit;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceClient;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceClient.ListAccountLimitsPagedResponse;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceSettings;
import com.google.shopping.merchant.quota.v1.ListAccountLimitsRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to list account limits for a given Merchant Center account. */
public class ListAccountLimitsSample {

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

    AccountLimitsServiceSettings accountLimitsServiceSettings =
        AccountLimitsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    try (AccountLimitsServiceClient accountLimitsServiceClient =
        AccountLimitsServiceClient.create(accountLimitsServiceSettings)) {

      ListAccountLimitsRequest request =
          ListAccountLimitsRequest.newBuilder()
              .setParent(String.format("accounts/%s", accountId))
              .setFilter("type = \"products\"")
              .build();

      System.out.println("Sending list account limits request:");
      ListAccountLimitsPagedResponse response =
          accountLimitsServiceClient.listAccountLimits(request);

      int count = 0;

      // Iterates over all rows in all pages and prints the account limit in each row.
      // Automatically uses the `nextPageToken` if returned to fetch all pages of data.
      for (AccountLimit accountLimit : response.iterateAll()) {
        System.out.println(accountLimit);
        count++;
      }
      System.out.print("The following count of account limits were returned: ");
      System.out.println(count);

    } catch (Exception e) {
      System.out.println("Failed to list account limits.");
      System.out.println(e);
    }
  }

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

محدودیت‌های نمایش منبع

محدودیت‌های زیر محدودیت‌های قابل‌توجهی را برای مقادیر رشته‌ای خاص و فیلدهای آرایه‌ای در نمایش‌های منبع مورداستفاده در Merchant API توصیف می‌کنند. این محدودیت‌ها برای هر دو «میانای برنامه‌سازی کاربردی Merchant» و ویژگی مربوطه در Merchant Center یکسان است.

منبع فیلد حد
shippingsettings

سرویس‌های ارسال کالا براساس کشور (services).

گروه‌های ارسال براساس سرویس ارسال (rateGroups).

برچسب برای هر گروه ارسال کالا (applicableShippingLabels).

جدول‌های فرعی برای هر گروه ارسال (subtables).

تعداد ردیف‌ها یا ستون‌ها در یک جدول نرخ.

طول برچسب‌های ارسال کالا.

20

20

30

100

۱۵۰

100

تعداد ردیف‌ها یا ستون‌ها در جدول نرخ بر فیلدهای آرایه زیر تأثیر می‌گذارد:

  • فیلدهای آرایه در rowHeaders یا columnHeaders:
    • prices[]
    • weights[]
    • numberOfItems[]
    • postalCodeGroupNames[]
    • locations[]
    • rows[]
    • cells[]