よくある間違い

このページでは、一般的なエラーとその防止と処理に関するヒントを紹介します。エラーの一覧については、エラー リファレンス、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
概要トークンの有効期限が切れているか、取り消されています。
一般的な原因 外部ユーザータイプ用に OAuth 同意画面が構成され、公開ステータスが Testing の 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 を使用します。
対策のヒント なし

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 アカウントにログインし、該当するクライアント アカウントまたは 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 プロジェクトのアクセスレベルを確認し、プロジェクトのアクセスレベルをアップグレードして、Explorer、Basic、標準権限のいずれかのアクセス権を取得してください。
対策のヒント なし
CUSTOMER_NOT_ENABLED
概要お客様のアカウントは有効な状態ではないため、アクセスできません。
一般的な原因 これは、お客様のアカウントの登録が完了していないか、無効になっている場合に発生します。
対応方法 Google 広告の管理画面にログインし、このアカウントの登録プロセスが完了していることを確認します。無効化されたアカウントについては、利用を停止した Google 広告アカウントを再開するをご覧ください。
対策のヒント お客様のアカウントが利用停止になっているかどうかを事前に確認するには、ステータスが [CANCELLED] になっているかどうかを確認します。
USER_PERMISSION_DENIED
概要承認された顧客はオペレーティング カスタマへのアクセス権がありません。
一般的な原因 MCC アカウントへのアクセス権を持つユーザーとして認証するが、リクエストで login-customer-id を指定していない。
対応方法 なし
対策のヒント ハイフンなしの MCC アカウント ID(-)として login-customer-id を指定します。クライアント ライブラリには、この機能の組み込みサポートが用意されています。

BiddingError

BID_TOO_MANY_FRACTIONAL_DIGITS
概要入札単価が、アカウントの通貨の最小単位の整数倍ではありません。たとえば、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
概要無効な文字を含むキーワードを追加または編集する。
一般的な原因 キーワードに ! @ % * などの特殊文字を使用します。
対応方法 なし
対策のヒント 許可されていない文字をキーワードに使わないようにします。キーワードを追加するをご覧ください。

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