Merchant Center では、API 呼び出しの割り当て以外にも、リソースに対して他の上限が適用されます。これらは API 割り当てと混同されることがよくありますが、Merchant Center の上限の一部です。詳しくは、Google Merchant Center 内の各種割り当てについてをご覧ください。
商品の制限
プロダクトの上限を確認するには、accounts.limits.get メソッドと accounts.limits.list メソッドを使用します。
特定の商品の上限を取得するには(アカウントの広告の EEA 割り当てを取得するなど)、accounts.limits.get の呼び出しでアカウント ID と上限 ID を指定する必要があります。上限 ID は、上限タイプとスコープの組み合わせです。たとえば、EEA で広告をターゲットに設定している商品には products~ADS_EEA、EEA 以外で広告をターゲットに設定している商品には products~ADS_NON_EEA を使用します。
特定のアカウントの products~ADS_EEA 上限を取得するリクエストの例を次に示します。
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/limits/products~ADS_EEA
次のサンプルは、特定のアカウントの上限を取得する方法を示しています。
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");
}
}
アカウントで使用可能な上限 ID を確認するには、type="products" のフィルタを使用して accounts.limits.list を使用します。
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/limits?filter=type%3D%22products%22
次のサンプルは、アカウントの制限を一覧表示する方法を示しています。
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());
}
}
リソース表現の上限
次の上限は、Merchant API で使用されるリソース表現内の特定の文字列値と配列フィールドに関する重要な制限事項を示しています。これらの上限は、Merchant API と Merchant Center の対応する機能に共通しています。
| リソース | フィールド | 上限 |
|---|---|---|
shippingsettings |
国あたりの配送サービス数( 配送サービスあたりの配送グループ数( 配送グループあたりのラベル数( 配送グループあたりのサブテーブル数( 1 つの料金表内の行数または列数。 送料ラベルの長さ。 |
20 20 30 100 150 100 |
料金表の行数または列数は、次の配列フィールドに影響します。
rowHeadersまたはcolumnHeaders内の配列フィールド:prices[]weights[]numberOfItems[]postalCodeGroupNames[]locations[]rows[]cells[]