Limites Merchant Center

En plus des quotas d'appels d'API, Merchant Center applique d'autres limites aux ressources. Elles sont souvent confondues avec les quotas d'API, mais elles font partie des limites de Merchant Center. Pour en savoir plus, consultez Comprendre les quotas dans Google Merchant Center.

Limites liées aux produits

Pour vérifier les limites des produits, vous utilisez les méthodes accounts.limits.get et accounts.limits.list.

Pour récupérer une limite de produit spécifique (par exemple, le quota Ads pour l'EEE d'un compte), vous devez spécifier l'ID du compte et l'ID de la limite dans votre appel à accounts.limits.get. L'ID de limite est une combinaison du type et du champ d'application de la limite. Par exemple, products~ADS_EEA pour les produits ciblant les annonces dans l'EEE et products~ADS_NON_EEA pour les produits ciblant les annonces en dehors de l'EEE.

Voici un exemple de requête permettant d'obtenir la limite products~ADS_EEA pour un compte donné :

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

L'exemple suivant montre comment récupérer une limite de compte spécifique :

Java

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

Pour en savoir plus sur les ID de limites disponibles pour votre compte, utilisez accounts.limits.list avec un filtre pour type="products" :

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

L'exemple suivant montre comment lister les limites de compte :

Java

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

Limites concernant les représentations de ressources

Les limites suivantes décrivent les restrictions importantes appliquées à certains champs de tableau et valeurs de chaîne dans les représentations de ressources utilisées dans Merchant API. Ces limites sont les mêmes pour Merchant API et les fonctionnalités correspondantes dans Merchant Center.

Ressource Champ Limite
shippingsettings

Nombre de services de livraison par pays (services)

Nombre de groupes de livraison par service de livraison (rateGroups)

Nombre d'étiquettes par groupe de livraison (applicableShippingLabels)

Nombre de sous-tableaux par groupe de livraison (subtables)

Nombre de lignes ou de colonnes dans un seul tableau de tarifs.

Longueur des étiquettes de livraison

20

20

30

100

150

100

Le nombre de lignes ou de colonnes dans un tableau de tarifs affecte les champs de tableau suivants :

  • Champs de tableau inclus dans rowHeaders ou columnHeaders :
    • prices[]
    • weights[]
    • numberOfItems[]
    • postalCodeGroupNames[]
    • locations[]
    • rows[]
    • cells[]