よくある間違い

このページでは、一般的なエラーを一覧表示し、エラーの防止と処理に関するヒントを紹介します。エラーの完全なリストについては、エラー リファレンス、API エラーについて、またはエラータイプをご覧ください。さらにサポートが必要な場合は、Google Ads API サポートにお問い合わせください。

google.rpc.ErrorInfo

ACCESS_TOKEN_SCOPE_INSUFFICIENT
概要OAuth 2.0 アクセス トークンに必要なスコープがない。
一般的な原因 提供されたアクセス トークンに Google Ads API の OAuth 2.0 スコープが含まれていないため、リクエストが拒否されました。
対応方法 アクセス トークンに必要なスコープがあることを確認します。このエラーの一般的な原因は、別の OAuth スコープのセットを使用して生成された既存のアクセス トークンを再利用していることです。必要なスコープで新しいアクセス トークンを生成する方法の例については、OAuth 認可パラメータをご覧ください。
対策のヒント アクセス トークンに必要なスコープがあることを確認します。必要なスコープでユーザーを再認証して、必要なスコープでアクセス権を取得します。アプリケーションで複数の OAuth スコープを使用している場合は、きめ細かい OAuth 権限を実装する必要がある場合があります。

google.auth.exceptions.RefreshError

invalid_grant
概要トークンが期限切れまたは失効しています。
一般的な原因 外部ユーザータイプと Testing の公開ステータス用に構成された OAuth 同意画面を含む Google Cloud Platform プロジェクトには、7 日で期限切れになる更新トークンが発行されます。
対応方法 Google プロジェクトの公開ステータスが Testing であるため、更新トークンは 7 日ごとに期限切れになり、invalid_grant エラーが発生します。Google API Console に移動し、[OAuth 同意画面] に移動します。次に、公開ステータスを In production に変更して、更新トークンが 7 日後に期限切れにならないようにします。
対策のヒント 未確認アプリをご覧ください。

AdError

CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR
概要この演算子は、Ad のサブクラスには使用できません。
一般的な原因 広告の status 以外の属性を変更しようとしています。
対応方法 なし
対策のヒント 一度作成した広告は変更できません。広告を変更する場合は、新しい広告を作成してから古い広告を削除する必要があります。ただし、広告の status は MutateAdGroupAds を使用して変更できます。
INVALID_INPUT
概要広告のいずれかのフィールドに無効な文字が含まれています。
一般的な原因 URL に特殊文字を使用している。
対応方法 なし
対策のヒント API リクエストを行う前に、アプリ内の URL を検証します。
LINE_TOO_WIDE
概要広告のいずれかのフィールドが、文字数の上限を超えています。詳しくは、テキスト広告についてをご覧ください。
一般的な原因 テキスト行が長すぎる。
対応方法 なし
対策のヒント API リクエストを行う前に、行の長さを検証します。

AdGroupAdError

AD_GROUP_AD_LABEL_ALREADY_EXISTS
概要このラベルは、一部の広告にすでに関連付けられています。
一般的な原因 すでに関連付けられている広告にラベルを関連付けようとしています。
対応方法 なし
対策のヒント 追加するラベルがすでに広告に関連付けられているかどうかをまず確認します。
CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
概要削除した広告を更新しようとしました。
一般的な原因 一度削除した広告は、ステータスの変更を含め、更新できなくなります。
対応方法 なし
対策のヒント 削除された広告を更新しようとしていないことを確認してください。

AdGroupCriterionError

INVALID_KEYWORD_TEXT
概要キーワード テキストに無効な文字が含まれています。キーワードを追加するをご覧ください。
一般的な原因 キーワード テキストに無効な文字が含まれています。
対応方法 なし
対策のヒント API にリクエストを送信する前に、アプリでキーワード テキストを検証します。

AdGroupError

DUPLICATE_ADGROUP_NAME
概要広告グループの追加または名前変更を行おうとしていますが、名前が他の広告グループですでに使用されています。
一般的な原因 既存の有効な広告グループまたは一時停止中の広告グループの名前を使用して、新しい広告グループを作成する。
対応方法 エラーをログに記録し、エラー メッセージをユーザーに表示します。必要に応じて、一意の広告グループ名を提案するか、使用中の名前のリストを表示します。
対策のヒント なし

AssetError

DUPLICATE_ASSET
概要1 つのリクエスト内の 2 つのオペレーションに、同じバイナリデータを持つアセットの作成オペレーションが含まれています。
一般的な原因 同じバイナリデータを含む重複した作成オペレーションを含む変更リクエスト。
対応方法 別個のリクエストでアセットを作成し、後続のリクエストでそのアセットにリンクします。または、同じリクエスト内で一時 ID を使用します。
対策のヒント なし
PARTNER_PROMOTION_ID_TYPE_INCOMPATIBLE
概要パートナー プロモーション ID で、アカウントのプロモーション統合で受け入れられない oneof バリアント(int_value または string_value)が使用されています。
一般的な原因 お客様の利用統合で string_value バリアントが必要な場合に promotion_asset.external_redeem_info.partner_promotion_id.int_value フィールドを設定するか、統合で int_value バリアントが必要な場合に string_value フィールドを設定します。
対応方法 アカウントのプロモーション統合で承認される ExternalPartnerId バリアント(int_value または string_value)が入力されるように、作成リクエストを更新してください。詳しくは、外部プロモーションの利用をトラッキングするをご覧ください。
対策のヒント external_redeem_info フィールドを含む PromotionAsset メッセージを作成する前に、POS のクーポン利用統合で使用されているプロモーション ID の形式(int_value または string_value)を確認してください。

AuthenticationError

CLIENT_CUSTOMER_ID_INVALID
概要クライアントのお客様 ID が数字ではありません。
一般的な原因 不適切なクライアントのお客様 ID を使用している。
対応方法 なし
対策のヒント 123-456-7890 は 1234567890 にする必要があります。詳しくはスタートガイドをご覧ください。
CLIENT_CUSTOMER_ID_IS_REQUIRED
概要クライアントのお客様 ID が HTTP ヘッダーに指定されていませんでした。
一般的な原因 HTTP ヘッダーでクライアントのお客様 ID を指定していない。
対応方法 なし
対策のヒント クライアントのお客様 ID はすべての呼び出しで必要になるため、HTTP ヘッダーで指定されていることを確認してください。この処理はクライアント ライブラリで行われるため、クライアント ライブラリの使用を検討してください。
CUSTOMER_NOT_FOUND
概要ヘッダーに指定されたお客様 ID に該当するアカウントが見つかりません。
一般的な原因 バックエンドでアカウントが確立される前に、作成されたばかりのアカウントにアクセスしようとしている。
対応方法 最初に 5 分間待ってから、30 秒ごとに再試行します。
対策のヒント アカウントを作成してから数分待ってから、リクエストを発行します。
概要リクエスト ヘッダーのアクセス トークンが無効か有効期限が切れています。
一般的な原因 アクセス トークンが無効になりました。
対応方法 新しいトークンをリクエストします。いずれかのクライアント ライブラリを使用している場合は、トークンを更新する方法について、そのドキュメントをご覧ください。
対策のヒント アクセス トークンを保存し、有効期限が切れるまで再利用します。
NOT_ADS_USER
概要アクセス トークンの生成に使用された Google アカウントが、どの Google 広告アカウントにも関連付けられていない。
一般的な原因 ご提供いただいたログイン情報は、Google 広告が有効になっていない Google アカウントに対応しています。
対応方法 OAuth フローでは、有効な Google 広告アカウント(通常はマネージャー アカウント)でログインしてください。また、MCC アカウントにログインし、該当するクライアント アカウントまたは MCC アカウントを選択して、Tools and Settings > Access and security に移動し、Google アカウントのメールアドレスを追加することで、既存の Google 広告アカウントへのアクセス権を Google アカウントに付与することもできます。
対策のヒント なし
OAUTH_TOKEN_INVALID
概要ヘッダーの OAuth アクセス トークンが無効です。
一般的な原因 HTTP ヘッダーで渡されたアクセス トークンが正しくありません。
対応方法 なし
対策のヒント アカウントに関連付けられた正しいアクセス トークンを渡すようにします。更新トークンや認証コードと混同されることがありますので、ご注意ください。MCC アカウントのすべてのクライアント アカウントにアクセスできる認証情報を取得する場合は、MCC アカウントの更新トークンを取得してください。ユーザー認証ガイドをご覧ください。

AuthorizationError

CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION
概要Google Cloud プロジェクトにはテストアクセス権のみがあり、本番環境アカウントへのアクセスには使用できません。
一般的な原因 テスト アクセスレベルの Google Cloud プロジェクトを使用して、テスト用ではない(本番環境の)Google 広告アカウントに対してリクエストが行われました。(API バージョン v24 以前では、この条件は AuthorizationError.ACTION_NOT_PERMITTED を返します)。
対応方法 テストを行う場合は、リクエストのターゲットがテスト アカウントになっていることを確認してください。本番環境の Google 広告アカウントにアクセスする場合は、Google Ads API の概要ページで Google Cloud プロジェクトのアクセスレベルを確認し、プロジェクトのアクセスレベルをアップグレードして、エクスプローラ、ベーシック、または標準のアクセス権を取得してください。
対策のヒント なし
CUSTOMER_NOT_ENABLED
概要お客様のアカウントは有効な状態ではないため、アクセスできません。
一般的な原因 これは、お客様のアカウントの登録が完了していないか、アカウントが無効になっている場合に発生します。
対応方法 Google 広告の管理画面にログインし、このアカウントの登録プロセスが完了していることを確認します。無効になったアカウントについては、利用を停止した Google 広告アカウントを再開するをご覧ください。
対策のヒント お客様のアカウントが無効になっているかどうかは、ステータスが CANCELLED になっているかどうかで確認できます。
USER_PERMISSION_DENIED
概要承認された顧客はオペレーティング カスタマへのアクセス権がありません。
一般的な原因 マネージャー アカウントへのアクセス権を持つユーザーとして認証しているが、リクエストで login-customer-id を指定していない。
対応方法 なし
対策のヒント login-customer-id には、ハイフンなしの MCC アカウント ID(-)を指定します。クライアント ライブラリには、この機能の組み込みサポートが用意されています。

BiddingError

BID_TOO_MANY_FRACTIONAL_DIGITS
概要入札単価が、アカウントの通貨の最小単位の整数倍ではありません。たとえば、US$ 0.015(マイクロ単位で 15000)は有効な入札単価ではありません。
一般的な原因 なし
対応方法 なし
対策のヒント 入札単価が、アカウントの通貨の最小単位の倍数であることを確認します。
BID_TOO_BIG
概要入札単価がキャンペーン予算内であっても、このエラーは返されます。
一般的な原因 なし
対応方法 なし
対策のヒント アカウントが Google Ad Grants に参加しているかどうかを確認します。その場合は、クリック単価をプログラムで規定されている上限に制限します。

CampaignBudgetError

MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC
概要予算額が少なすぎます。
一般的な原因 なし
対応方法 なし
対策のヒント 予算額がアカウントの通貨の最小単位以上であることを確認してください。
NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT
概要予算額をマイクロ単位の金額からアカウントの通貨の金額に換算する際に、小数点以下の有効桁数が多すぎます。
一般的な原因 なし
対応方法 なし
対策のヒント 予算額がアカウントの通貨の最小単位で割り切れることを確認してください。

CampaignError

DUPLICATE_CAMPAIGN_NAME
概要キャンペーンの追加または名前変更を行おうとしていますが、名前が他のキャンペーンですでに使用されています。
一般的な原因 既存の有効なキャンペーンまたは一時停止中のキャンペーンの名前を使用して、新しいキャンペーンを作成する。
対応方法 エラーをログに記録し、エラー メッセージをユーザーに表示します。必要に応じて、一意のキャンペーン名を提案するか、使用中の名前のリストを表示します。
対策のヒント なし
CANNOT_SET_CAMPAIGN_KEYWORD_MATCH_TYPE
概要AI 最大化設定が有効になっているキャンペーンで、キャンペーン単位のキーワードのマッチタイプ設定を変更しようとしています。
一般的な原因 AI 最大化設定を有効にすると、すべてのキーワードがデフォルトでインテント マッチとして扱われるため、キャンペーン単位のインテント マッチの設定はサポートが終了します。このフィールドを設定または変更しようとすると、エラーが発生します。
対応方法 キャンペーン単位でインテント マッチを設定する代わりに、広告グループ単位の `disable_search_term_matching` パラメータを使用するようお客様に伝えます。
対策のヒント `ai_max_setting.enable_ai_max` が `true` に設定されている場合は、キャンペーンで `keyword_match_type` を `BROAD`(またはその他の値)に設定しないでください。`disable_search_term_matching` を使用して、広告グループ単位で検索語句とのマッチングを切り替えます。

CriterionError

KEYWORD_HAS_INVALID_CHARS
概要無効な文字を含むキーワードを追加または編集している。
一般的な原因 キーワードに ! @ % * などの特殊文字を使用します。
対応方法 なし
対策のヒント 許可されていない文字をキーワードに使わないようにします。キーワードを追加するをご覧ください。

DemandGenCampaignError

CANNOT_ACTIVATE_MIGRATED_CAMPAIGN
概要移行したデマンド ジェネレーション キャンペーンは、元のキャンペーンが削除される前、または同じ元のキャンペーンの別の移行したキャンペーンがすでに有効になっている間は、有効にできません。
一般的な原因 移行元のソース キャンペーンが削除されていないか、同じ移行元ソース キャンペーンから移行された別のデマンド ジェネレーション キャンペーンがすでに ENABLED になっている場合に、移行されたデマンド ジェネレーション キャンペーンの status を ENABLED に更新します。API バージョン v25 以前では、この条件は RequestError.UNKNOWN を返します。
対応方法 移行したデマンド ジェネレーション キャンペーンを有効にする前に、CampaignOperation.remove を使用して元のソース キャンペーンを削除し(事前に、または同じ変更リクエスト内で)、同じ元のキャンペーンから移行された他のデマンド ジェネレーション キャンペーンが有効になっていないことを確認します。詳しくは、移行したキャンペーンを有効にするをご覧ください。
対策のヒント 元のソース キャンペーンとその移行されたデマンド ジェネレーション キャンペーンの ID を追跡する場合は、移行されたキャンペーンで status を ENABLED に設定する前に campaign.status をクエリするか、同じ変更リクエストに元のキャンペーンの CampaignOperation.remove を含めます。

DistinctError

DUPLICATE_ELEMENT
概要リクエストに含まれている 2 つのパラメータが重複しています。
一般的な原因 なし
対応方法 なし
対策のヒント リクエストを行う前に、重複(オペレーション、パラメータ、リスト要素)を削除してください。DistinctElements 制約があるフィールドを探します。

InternalError

DEADLINE_EXCEEDED
概要リクエストがタイムアウトし、レスポンスを返すのに十分な速さで完了できませんでした。
一般的な原因 生成されたレスポンスが大きすぎる検索リクエストが行われたか、変更リクエストが大きすぎて処理できませんでした。
対応方法 約 30 秒待ってから、リクエストを再試行します。エラーが解消されない場合は、リクエストを複数の小さなリクエストに分割して、より迅速に完了できるようにしてください。
対策のヒント セグメンテーションを確認して、レスポンスのサイズにどのように影響するかを理解します。gRPC トランスポート層の制限事項に注意してください。
INTERNAL_ERROR
概要リクエストの処理中に予期しないエラーが発生しました。
一般的な原因 バグが原因で API が正常に機能していません。
対応方法 このエラーで失敗したリクエストを再試行します。再試行には指数バックオフ スケジュールを使用します。
対策のヒント なし
TRANSIENT_ERROR
概要一時的な内部エラーが発生しました。再試行する必要があります。
一般的な原因 このエラーは、API で一時的な問題が内部的に発生した場合に発生します。
対応方法 このエラーで失敗したリクエストを再試行します。再試行には指数バックオフ スケジュールを使用します。
対策のヒント なし

InvalidGrantError

invalid_grant (malformed auth code)
概要OAuth トークンと交換された認証コードの形式が正しくありません。
一般的な原因 これは、リクエスト元のアプリケーションへのアクセス権がすでに付与されているユーザーの更新トークンを生成しようとしたときに発生します。たとえば、同じ OAuth クライアント認証情報と承認ユーザーに対して、ユーザー認証情報の生成の例を複数回実行した場合に、このエラーが発生することがあります。
対応方法 承認ユーザーと OAuth クライアント認証情報の特定の組み合わせに対して更新トークンを再生成するには、既存の更新トークンを取り消します。トークンを取り消すと、Google Ads API へのアクセスに使用できなくなり、更新トークンを使用して生成されたアクセス トークンが無効になります。
対策のヒント 再生成する必要がないように、更新トークンは安全な場所に保管してください。

MutateError

RESOURCE_NOT_FOUND
概要リクエストで参照されたリソースが見つかりませんでした。
一般的な原因 リクエストは、存在しないか削除されたリソースを変更または参照しようとしました。または、リソースに指定されたリソース名が不正な形式です。
対応方法 変更リクエストを送信する前に、検索リクエストを使用して既存のリソースのリソース名を取得します。クライアント ライブラリのガイドをご覧ください。このガイドには、サポートされているすべての言語で有効なリソース名を作成する方法に関するドキュメントが含まれています。
対策のヒント リソース名を手動で作成しないでください。クライアント ライブラリが提供するヘルパー メソッドのいずれかを使用します。

NotEmptyError

EMPTY_LIST
概要必須のリストが空です。
一般的な原因 mutate メソッドに空のオペレーション リストを渡す。
対応方法 なし
対策のヒント なし

QuotaError

RESOURCE_EXHAUSTED
概要システムのリクエスト送信頻度の上限を超えました。
一般的な原因 なし
対応方法 なし
対策のヒント リクエスト間の遅延を短く設定するか、より多くのオペレーションをより少ないリクエストにまとめます。

RangeError

TOO_LOW
概要値が許可されている下限を下回りました。
一般的な原因 ID の指定を忘れたため、0 の値が渡される。
対応方法 なし
対策のヒント API リファレンスに記載されている範囲制限に注意してください。

RequestError

INVALID_INPUT
概要リクエストの形式が正しくありません。
一般的な原因 リクエストの URL またはコンテンツの形式が正しくありません。
対応方法 なし
対策のヒント なし
REQUIRED_FIELD_MISSING
概要リクエストに必須情報がありません。
一般的な原因 エンティティを追加しようとしたときに、必須フィールドが指定されていません。
対応方法 エラーをログに記録し、ユーザーにエラー メッセージを表示します。エラーの fieldPath 属性は、どのフィールドが欠落しているかを示します。
対策のヒント 必須フィールドについては、API リファレンスをご覧ください。

ResourceCountLimitExceededError

RESOURCE_LIMIT
概要リクエストは、リソースの合計数が指定された上限を超えるようなリソースを作成しようとしています。
一般的な原因 特定のコンテキストに存在できるリソースの数には複数の上限があります。
対応方法 システム上限を確認して、発生している上限を特定します。既存のリソースを再利用するか、リソースを削除して新しいリソース用のスペースを作成します。
対策のヒント 検索クエリを使用して、制限のあるリソースの数をモニタリングします。

StringLengthError

TOO_LONG
概要指定されたフィールドに割り当てられた文字列が上限を超えています。
一般的な原因 広告の見出しまたは説明文のテキストが長すぎます。
対応方法 発生している上限を特定し、それに応じて文字列を変更して、リクエストを再送信します。
対策のヒント 文字列の長さの上限に注意してください。