API の制限と割り当て

Google Ads API では、1 回の mutate リクエストで送信できるオペレーションの数など、API オペレーションの数に制限があります。次の表に、注意すべき重要な上限と割り当てをまとめます。

リクエストの種類、制限、エラーコード
Explorer アクセスレベルのオペレーション 本番環境アカウントに対する 1 日あたり 2,880 件の API オペレーション
テスト アカウントに対する 1 日あたり 15,000 件の API オペレーション
RESOURCE_EXHAUSTED
ベーシック アクセスレベルのオペレーション テスト アカウントと本番環境アカウントの両方に対して 1 日あたり 15,000 件の API オペレーション RESOURCE_EXHAUSTED
mutate リクエスト リクエストあたり 10,000 オペレーション TOO_MANY_MUTATE_OPERATIONS
プランニング サービス リクエスト 1 QPS RESOURCE_EXHAUSTED
コンバージョン アップロード サービス リクエスト 2,000 コンバージョン/リクエスト TOO_MANY_CONVERSIONS_IN_REQUEST
お支払い情報とアカウント予算に関するサービス リクエスト 1 オペレーション/mutate リクエスト TOO_MANY_MUTATE_OPERATIONS

1 日あたりの API オペレーション制限

1 日あたりの API 使用制限は、開発者トークンごとに行われた API オペレーションの数に基づいています。API オペレーション数は、get リクエスト数と mutate オペレーション数の合計です。1 日あたりの API オペレーション制限は、開発者トークンのアクセスレベルによって異なります。アクセスレベルと使用許諾ガイドには、アクセスレベルごとの API オペレーションの制限が記載されています。

これらの制限に違反するリクエストは、RESOURCE_EXHAUSTED というエラーで拒否されます。

gRPC の制限

すべての Google Ads API クライアント ライブラリは、リクエストとレスポンスを生成するために gRPC を使用します。デフォルトでは、gRPC のメッセージ サイズは 4 MB ですが、効率を高めるために、クライアント ライブラリでは最大メッセージ サイズが 64 MB に設定されています。

回答はこの上限を超えてはなりません。たとえば、多数のフィールドを含む検索リクエストは、サイズが 64 MB を超えるレスポンスを生成することがあります。この制限を回避するには、選択したフィールドの数を減らすか、ストリーミングを使用します。mutate の場合は、リクエストごとに送信するオペレーションを少なくします。

この制限に違反するリクエストは GoogleAdsError を生成しませんが、429 Resource Exhausted gRPC エラーを生成します。gRPC エラーコードとメッセージのリストをご覧ください。

mutate リクエスト

mutate リクエストは、1 日あたりのオペレーション割り当てに対してカウントするだけでなく、1 リクエストあたり 10,000 を超えるオペレーションを含むことはできません。

この制限に違反するリクエストは、TOO_MANY_MUTATE_OPERATIONS というエラーで拒否されます。

特定のサービスとリクエスト タイプに関する追加の上限と考慮事項については、以下をご覧ください。

リクエストを検索

Search リクエストまたは SearchStream リクエストは、ユーザーの 1 日あたりのオペレーション割り当てに対して 1 つのオペレーションとしてカウントされます。バッチの数に関係なく、1 つの SearchStream リクエストは 1 つの API オペレーションとしてカウントされます。

ページ分けリクエスト

ページ分けリクエスト(有効な next_page_token を含むリクエストなど)は、ユーザーの 1 日あたりのオペレーション割り当てにカウントされません。ただし、期限切れや無効なページトークンを含む pagination リクエストは例外を生成し、1 日あたりのオペレーション割り当てにカウントされます。

pagination について詳しくは、結果のページングをご覧ください。

その他のタイプのリクエスト

GetMutateSearchSearchStream リクエスト以外のリクエストは、ユーザーの 1 日のオペレーション割り当てに対して 1 つのオペレーションとしてカウントされます。

このようなリクエストの例をいくつか示します。

API 例外を返すリクエスト

GoogleAdsFailure で拒否されたリクエストは、ユーザーの 1 日あたりのオペレーション割り当てにカウントされます。

失敗しても GoogleAdsFailure を返さないリクエスト(ネットワーク レベルでのエラーなど)は、サービスに到達しないため、ユーザーの 1 日あたりのオペレーション割り当てにはカウントされません。たとえば、ネットワーク接続の障害などです。

キーワード プランニング サービス

以下のキーワード プランニング サービス メソッドは複雑で費用がかさむため、他のタイプのリクエストとは別の制限を受けます。

キーワード プランを作成する際は、これらの上限に留意してください。

キーワード プラン オブジェクト 最大数
KeywordPlan / アカウント 10,000
KeywordPlan あたり KeywordPlanAdGroup 200
KeywordPlan あたり KeywordPlanAdGroupKeyword 10,000
KeywordPlanCampaignKeyword(除外キーワード) 1,000
KeywordPlan あたり KeywordPlanCampaign 1

オーディエンス分析サービス

AudienceInsightsService 内の次のメソッドには、特定の割り当て上限が適用されます。

コンバージョン アップロード サービス

コンバージョンの調整アップロード サービス

コンバージョン値のルール

  • アカウントごとに設定できるコンバージョン値のルールは 100,000 個までです。

    この上限に違反するリクエストは、エラー ResourceCountLimitExceededError.ACCOUNT_LIMIT で拒否されます。

アカウントに attachment_typeCUSTOMERConversionValueRuleSet がすでに存在する場合は、新しいコンバージョン値のルールをそのセットに追加して有効にする必要があります。そのようなコンバージョン値のルールセットが存在しない場合は、ルールセットを作成するの説明に沿って、ルールセットを作成し、コンバージョン値のルールを追加する必要があります。

お支払いとアカウント予算サービス

  • mutate リクエストは、毎月の請求書発行が設定されたアカウントに対してのみ行うことができます。

    この制限に違反するリクエストは、MUTATE_NOT_ALLOWED というエラーで拒否されます。

  • mutate リクエストに対して許可されるオペレーションは 1 回だけです。

    この制限に違反するリクエストは、TOO_MANY_MUTATE_OPERATIONS というエラーで拒否されます。

  • 同じアカウントに対する予算オーダーの変更は、最低 12 時間待ってから行う必要があります。12 時間が経過する前に変更を加えると、Google 広告のアカウント担当者しか解決できない回復不能なエラーが発生する可能性があります。

お客様のアカウントへの招待

新規ユーザーは、CustomerUserAccessService を使用して既存のクライアント アカウントに招待できます。この機能は他のユーザーに招待メールを送信するため、悪用される可能性があります。そのため、動作には次のような制限があります。

ユーザーデータ

ユーザーデータは UserDataServiceOfflineUserDataJobService で管理されます。

create オペレーションまたは remove オペレーションの各 UserData オブジェクトは、1 人のエンドユーザーに関連付けられています。単一の UserData オブジェクト内の user_identifiers フィールドは、最大 20 個の識別子に制限されます。1 つの UserData オブジェクトでこの上限を超えると、OfflineUserDataJobError.TOO_MANY_USER_IDENTIFIERS エラーまたは UserDataError.TOO_MANY_USER_IDENTIFIERS エラーが発生します。

20 個を超える識別子を持つユーザーを処理する

アップロードする必要がある識別子を 1 人のエンドユーザーが 20 個以上所有している場合は、これらの識別子を複数の UserData オブジェクトに分散する必要があります。Google がこれらの識別子をすべて同じエンドユーザーに関連付けられるようにするには、そのユーザーの各 UserData オブジェクトに、同じ hashed_emailhashed_phone_numberthird_party_user_id などの共通の user_identifier を 1 つ以上含める必要があります。Google は、これらの共有識別子を使用して、個別の UserData オペレーションの情報を正しいエンドユーザー プロファイルにリンクして統合します。

ハッシュ化されたメールアドレスや電話番号などの PII を使用する場合は、リンクの失敗を防ぐため、Google Ads API の要件(SHA-256、小文字、空白なし)に従って正規化およびハッシュ化されていることを確認してください。

たとえば、ユーザーが 30 個のメールアドレスを持っている場合、2 つの UserData オブジェクトを送信できます。

  • UserData 1: {third_party_user_id: "user123", hashed_email: "email1@...", ... hashed_email: "email19@..."}
  • UserData 2: {third_party_user_id: "user123", hashed_email: "email20@...", ... hashed_email: "email30@..."}

単一の OfflineUserDataJob 内のすべてのオペレーションにおける user_identifiers の合計上限は 100,000 のままです。

その他の種類の制限

リクエストに含まれるアイテムが多すぎる繰り返しフィールド(例: オペレーションのリスト)では、REQUEST_SIZE_LIMIT_EXCEEDED エラーが発生する可能性があります。このエラー メッセージは、他の問題が原因で表示されることもあります。

繰り返しフィールドを使用するリクエストを行って、この制限に達成した場合、mutate リクエストにオペレーションのリストを配置することによって繰り返しフィールドのアイテム数を減らしてみるとよいでしょう。

GAQL クエリを行う場合、IN 句内のアイテムの最大数は 20,000 個です。この上限を超えると、FILTER_HAS_TOO_MANY_VALUES エラーが返されます。