次の方法で共有


サービス エラーと例外の処理

この記事では、アプリケーションのエラー処理とトラブルシューティングの詳細について説明します。

ヒント

SOAP 要求メッセージを作成するときは、Web サービス記述言語 (WSDL) で定義されているのと同じ順序で要素が存在することを確認します。 必要な要素が順不同の場合、呼び出しは失敗します。 省略可能な要素が順不同の場合、呼び出しが失敗するか、要素が無視される可能性があります。 詳細については、「 SOAP XML 要素の順序」を参照してください。

一般的な API エラー

発生する可能性がある一般的なサービス エラーを処理するためのヒントを次に示します。 Bing Ads API エラー コードの包括的な一覧については、「 操作エラー コード」を参照してください。

コード 105

通常は、ターゲット環境の不正なアクセス トークン (AuthenticationToken ヘッダー要素) または開発者トークンの使用を示します。 たとえば、資格情報は運用環境で有効な場合があります。ただし、サンドボックスをターゲットにすると、コード 105 が表示されます。

コード 106

通常、資格情報はターゲット環境に対して正しいものの、ユーザーは要求で指定されたエンティティのいずれかにアクセスしないことを示します。 たとえば、ユーザーが指定されたアカウントに対するアクセス許可を持っていない場合、 SubmitGenerateReportRequest を呼び出すこのエラーが発生します。

コード 117

サービス呼び出しの制限を超えると、次のエラーが表示されます。

  • 数値エラー コード: 117
  • シンボリック エラー コード: CallRateExceeded
  • メッセージ: 1 分で実行できる呼び出しの数を超えました。1 分あたりの通話数を減らしてください。

このエラーが発生した場合は、60 秒待ってから制限の下で要求を再送信できます。

内部エラー

場合によっては、次のように内部エラーが返されることがあります。

<OperationError>
  <Code>0</Code>
  <Details i:nil="true"/>
  <ErrorCode>InternalError</ErrorCode>
  <Message>An internal error has occurred.</Message>
</OperationError>

考えられる内部エラー シナリオを次に示します。

  • これは一時的なシステムの問題であり、実行可能なものはありません。 以前に同じ呼び出しが機能していた場合は、問題サーバー側が解決された場合に備えて、後でもう一度お試しください。
  • 操作がアクション可能なエラー コードに適切にマップされませんでした。 クライアントが問題を解決するために何かできることがある場合、Bing Ads API は実用的なエラー コードを返す必要があります。 内部エラーが一貫して観察されている場合は、 詳細をサポートにお問い合わせください

HTTP 500

すべてのBing Ads API サービス操作は、HTTP 500 コードでエラーが返される Simple Object Access Protocol (SOAP) 1.1 仕様に準拠しています。 たとえば、次を参照してください。

HTTP/1.1 500 Internal Server Error

これはアクション可能なコードを表すものではありません。特定のエラーの詳細については、エラーの詳細を調べる必要があります。

抽象クラスを作成できません

Ad などの基底クラスのインスタンスを作成することはできません。 派生クラス ( ExpandedTextAd など) のいずれかをインスタンス化する必要があります。

Reporting API 呼び出しから空の URL を取得する理由

レポートの状態が [成功 ] に設定されている場合でも、送信されたレポート パラメーターに使用できるデータがない場合は、 ReportDownloadUrl 要素を nil にすることができます。 同じ日付範囲とフィルター条件のパフォーマンス データが Microsoft Advertising Web アプリケーションに表示される場合は、 詳細をサポートにお問い合わせください

一般的な OAuth エラー

発生する可能性がある一般的な承認エラーを処理するためのヒントを次に示します。

AADSTS エラー

AADSTS エラー コードとメッセージは変更される可能性があります。 最新の情報については、ページを https://login.microsoftonline.com/error 参照して、AADSTS エラーの説明、修正、および推奨される回避策を確認してください。

返されたエラー コードの数値部分を検索します。 たとえば、エラー コード "AADSTS650052" を受け取った場合は、"650052" を検索 https://login.microsoftonline.com/error します。 エラー コード番号を URL に追加することで、特定のエラーに直接リンクすることもできます。 https://login.microsoftonline.com/error?code=650052

AADSTS50011、AADSTS650052、AADSTS700016など、最も一般的な AADSTS エラーのいくつかを以下に詳しく説明します。

AADSTS50011

Microsoft ID プラットフォーム エンドポイントを使用してアクセス トークンを要求すると、AADSTS50011 エラーが JSON 文字列内で返される可能性があります。

{"error":"invalid_client","error_description":"AADSTS50011: The reply url specified in the request
does not match the reply urls configured for the application: 'foo'.\r\nTrace ID:
x\r\nCorrelation ID: x\r\nTimestamp: 2019-05-10
17:18:23Z","error_codes":[50011],"timestamp":"2019-05-10
17:18:23Z","trace_id":"x","correlation_id":"x"}

無効なリダイレクト URI エラーは、次のようにユーザーの同意を要求するときに、ブラウザー ウィンドウでテキストとして返される可能性もあります。

invalid_request: 入力パラメーター 'redirect_uri' に指定された値が無効です。 予期される値は、このクライアント アプリケーションに登録されているリダイレクト URI と一致する URI です。

このエラーが発生した場合は、リダイレクト URI が正しく 登録されていないか、アプリケーションで登録済みのリダイレクト URI が使用されていません。

AADSTS650052

650052エラー コードは、"アプリはサービスにアクセスする必要があります ("https://ads.microsoft.com")organization "{organization}" がサブスクライブまたは有効になっていないことを示します。

このエラーが発生した場合は、Azure AAD テナントの管理者ユーザーの少なくとも 1 人が Microsoft Advertising Web アプリケーション職場アカウントに対して追加され、有効になっていることを確認してください。 詳細については 、サポートにお問い合わせください

AADSTS700016

700016 エラー コードは、"識別子 '{appIdentifier}' を持つアプリケーションがディレクトリ '{tenantName}' に見つかりませんでした" というメッセージで返されます。

16 進数の値 (0000000012345A67 など) として書式設定された古いアプリケーション ID (別名クライアント ID) がある場合は、新しいアプリケーションを 登録 する必要があります。 Microsoft ID プラットフォームで使用する有効なアプリケーション ID は、ダッシュ (例: 00001111-aaaa-2222-bbbb-3333cccc4444) で GUID として書式設定されます。 Azure portal - アプリの登録に既存のアプリが表示されない場合は、新しいアプリに置き換える必要があることを示しています。

リダイレクト URI が無効です

次のように、Live Connect エンドポイントでアクセス トークンを要求するときに、JSON 文字列内で無効なリダイレクト URI エラーが返される可能性があります。

{"error":"invalid_grant","error_description":"The provided value for the 'redirect_uri' is not
valid. The value must exactly match the redirect URI used to obtain the authorization code."}

無効なリダイレクト URI エラーは、次のようにユーザーの同意を要求するときに、ブラウザー ウィンドウでテキストとして返される可能性もあります。

invalid_request: 入力パラメーター 'redirect_uri' に指定された値が無効です。 予期される値は、このクライアント アプリケーションに登録されているリダイレクト URI と一致する URI です。

このエラーが発生した場合は、リダイレクト URI が正しく 登録されていないか、アプリケーションで登録済みのリダイレクト URI が使用されていません。

無効な許可

ユーザーが同意しないスコープを使用してトークンを更新しようとすると、 invalid_grant エラーが返される可能性があります。

{
    "error":"invalid_grant",
    "error_description":"AADSTS70000: The request was denied because one or more scopes requested are unauthorized or expired. The user must first sign in and grant the client application access to the requested scope."
}

リダイレクト URI が無効な場合、更新トークンの有効期限が切れている場合、ユーザーがパスワードを変更した場合、またはトークンが取り消された場合は、invalid_grant エラーが返される可能性もあります。

{"error":"invalid_grant","error_description":"The user could not be authenticated or the grant is expired. The user must first sign in and if needed grant the client application access to the requested scope."}

Microsoft は、事前の警告なしにいつでも、ユーザーの同意を再び付与する必要があると判断する場合があります。ただし、一部のシナリオは制御の範囲内にあります。 Microsoft Azure などのリージョンやデバイスにまたがるサービスでアプリを実行しているクライアントは、Web アプリケーションをクライアント シークレットに 登録 する必要があります。 同じクライアント ID とクライアント シークレットがある限り、あるデバイスで更新トークンを取得し、別のデバイスで更新できます。 クライアント シークレットなしでパブリック アプリケーションを登録した場合、デバイス間で更新トークンを使用することはできません。 機密トークンはクライアント シークレットにバインドされます。 クライアント シークレットのないパブリック クライアント アプリケーション ID を使用して米国で更新トークンを取得した後、後で EU リージョンでトークンを更新しようとすると、invalid_grant エラーが発生します。

アプリケーションが見つからないか、未承認のクライアント

"unauthorized_client: クライアントが存在しません" や "識別子 'foo' を持つアプリケーションがディレクトリ 'bar' に見つかりませんでした" などのエラーが発生した場合は、アプリケーションが正しいターゲット環境 (運用環境やサンドボックス) にまだ存在することを確認してください。

短い 16 進形式の Live SDK アプリケーション ID (例: 0000000012345A67) を使用して、Microsoft ID プラットフォーム エンドポイントを呼び出している場合、アプリケーションが見つかりませんエラーが返される可能性があります。 その場合は、新しいアプリケーションを 登録 する必要があります。 有効なMicrosoft ID プラットフォームアプリケーション ID は、ダッシュ (例: 000011111-aaaa-2222-bbbb-3333cccc4444) で GUID として書式設定されます。 

アプリをAzure portalに登録した場合は、[サポートされているアカウントの種類] セクションで、任意の組織のディレクトリと個人用の Microsoft アカウントで [アカウント] を選択していることを確認します。 (アプリケーションの登録に関するページを参照してください)初期セットアップ中にこのオプションを選択しなかった場合は、Azure portalで新しいアプリケーションを登録する必要がある場合があります。

マルチテナント アプリケーションとして構成されていないアプリケーション

登録されているアプリケーションが特定のテナントに制限されている場合は、次のエラーが発生する可能性があります。

Application 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx' is not configured as a multi-tenant application. Usage of the /common endpoint is not supported for such applications created after '10/15/2018'. Use a tenant-specific endpoint or configure the application to be multi-tenant.

アプリをAzure portalに登録した場合は、[サポートされているアカウントの種類] セクションで、任意の組織のディレクトリと個人用の Microsoft アカウントで [アカウント] を選択していることを確認します。 (アプリケーションの登録に関するページを参照してください)初期セットアップ中にこのオプションを選択しなかった場合は、Azure portalで新しいアプリケーションを登録する必要がある場合があります。

サポートへのお問い合わせ

Microsoft Q&A フォーラムは、開発者コミュニティがBing Ads API と Microsoft Advertising Scripts に関する質問と回答を行うために利用できます。 Microsoft はフォーラムを監視し、コミュニティがまだ回答していない質問に回答します。

重要

ご質問が表示されていることを確認するには、"advertising-api" でタグを付けておきます。

調査に機密性の高いアカウントまたは個人情報が含まれる場合、または Microsoft Q&A 経由で問題を解決するために必要な情報が見つからない場合は、 Microsoft Advertising サポートにお問い合わせください。

ヒント

調査を迅速化するには、開発環境、エラー頻度、エラーを再現する手順などの詳細をサポートしてください。

Bing Ads API サービスの呼び出しに関するヘルプについては、このチェックリストをステップ実行し、結果を サポート チームに提供してください。

  • ユーザーがサービスを呼び出そうとしているユーザー (ログインメール アドレスは何ですか?
  • ユーザーがアクセスしようとしているアカウント ID またはアカウント番号は何ですか?
  • エラーを再現するために必要な手順は何ですか? プライベート資格情報 (アクセス トークンなど) を除き、完全な要求、応答、タイムスタンプを含めます。
  • 運用環境またはサンドボックス環境をターゲットにしていますか? 運用環境とサンドボックスに対して正しいアプリ登録と承認エンドポイントを使用していることを確認します。 同様に、同じ環境に対して正しい Web サービス アドレス を使用してください。
  • 過去に同じ要求が機能したかどうかを示す (履歴パフォーマンスなど)。
  • 毎回、または断続的に問題を再現できるかどうかを示します。
  • 一括またはレポート サービスに関連する問題については、要求と状態のポーリング操作の両方のトレースを含めてください。
  • エラー コード 105 または 106 に関連する認証の問題については、Microsoft Advertising ユーザーのログイン資格情報のシステム識別子も含めてください。 現在のユーザーのユーザー識別子を取得するには、 クイック スタート ガイドを参照してください。

OAuth による認証のアクセストークンと更新トークンの取得に関するヘルプについては、このチェックリストをステップ実行し、結果をサポート チームに提供してください。

  • ユーザーが認証しようとしているのは誰ですか。たとえば、ログインメール アドレスは何ですか?
  • ユーザーがアクセスしようとしているアカウント ID またはアカウント番号は何ですか?
  • エラーを再現するために必要な手順は何ですか? プライベート資格情報 (アクセス トークンやクライアント シークレットなど) を除き、完全な要求、応答、タイムスタンプを含めます。
  • 運用環境またはサンドボックス環境をターゲットにしていますか? 運用環境とサンドボックスに対して正しいアプリ登録と承認エンドポイントを使用していることを確認します。 同様に、同じ環境に対して正しい Web サービス アドレス を使用してください。
  • ネイティブ または Web アプリケーションを 登録しました か? Microsoft Azure などのリージョンやデバイスにまたがるサービスでアプリを実行しているクライアントは、Web アプリケーションをクライアント シークレットに登録する必要があります。
  • 登録されているアプリケーション ID (client_id) は何ですか? また、アプリケーション シークレット (client_secret) がある場合は、承認エンドポイントからアクセス トークンを要求するときに設定していることを確認してください。ただし、誰とも共有しないでください。
  • OAuth 診断正常性チェックを実行します。 アクセス トークンを正常に取得し、運用環境またはサンドボックスの クイック スタート ガイドを完了できますか? そうでない場合、認証はどこで失敗し、エラーは何ですか?

障害モデルの概要

Bing Ads API サービス操作が失敗すると、Customer Management サービスが ApiFault を返すなど、サービス エラーが返されます。 エラー例外には、1 つ以上のエラー オブジェクトが含まれます。 エラー オブジェクトには、サービス操作が失敗した理由の詳細と、エラーを一意に識別するコードが含まれています。 エラー コードの一覧については、「 Bing Ads API 操作エラー コード」を参照してください。

使用可能な障害オブジェクトとデータ オブジェクトは、サービスごとに異なります。 次の表では、エラー モデルと、各サービスのエラー データ オブジェクトへのリンクについて説明します。

サービス 説明
Ad Insight すべての広告分析情報操作で 、AdApiFaultDetailApiFaultDetail がスローされる場合があります。
バルク すべての一括操作では、 AdApiFaultDetailApiFaultDetail がスローされる場合があります。
キャンペーン管理 すべてのキャンペーン管理操作で AdApiFaultDetail がスローされる場合があります。

キャンペーン管理操作によっては、 ApiFaultDetail または EditorialApiFaultDetail がスローされる場合もあります。

詳細については、「 キャンペーン管理データ オブジェクト」を参照してください。
顧客の請求 すべての顧客の課金操作で 、AdApiFaultDetailApiFault がスローされる場合があります。

顧客の課金操作によっては 、ApiBatchFault がスローされる場合もあります。
顧客管理 すべての顧客管理操作で 、AdApiFaultDetailApiFault がスローされる場合があります。
Reporting すべてのレポート操作で 、AdApiFaultDetailApiFaultDetail がスローされる場合があります。

注:

すべての障害オブジェクトは ApplicationFault オブジェクトから派生します。 ApplicationFault オブジェクトは TrackingId 要素を定義します。これは、API 呼び出しの詳細を含むログ エントリを一意に識別します。 サポートに問い合わせる必要がある場合は、サービス操作を呼び出した日時を追跡 ID に入力してください。

部分的な成功

部分的な成功とは、エンティティを 1 つ以上のバッチで追加、更新、または削除するときに、一部の操作が成功し、バッチの一部で失敗する可能性があることを意味します。

一括サービスでの部分的な成功

一括ファイルにレコードをアップロードすると、一部のレコードのアップロードが成功し、バッチ内の他のレコードに対して失敗する可能性があります。 GetBulkUploadUrl を呼び出すときに、アップロード結果ファイルでエラーを受信するかどうかを選択できます。

注:

Microsoft Advertising では、"すべてまたは何も" エラー処理の動作はサポートされていません。 クライアント側でこれを処理する必要があります。

キャンペーン管理サービスでの部分的な成功

ほとんどのエンティティでは、 キャンペーン管理 サービス操作を呼び出すときに部分的な成功がサポートされます。 エンティティが追加されなかったリスト インデックスごとに、対応する要素は null になります。 PartialErrors 要素は、正常に追加、更新、または削除されなかったエンティティの詳細を含む BatchError オブジェクトの配列を表します。 リストには、失敗した試行に対する BatchError のみが含まれており、正常に追加された各エンティティのインデックスに null 要素は含まれません。 同様に、一部の操作では、BatchErrorCollection の一覧または 2 次元 BatchError として NestedPartialErrorsが返されます

注:

ApplyProductPartitionActions 操作には、応答に PartialErrors が含まれています。ただし、部分的な成功はサポートされていません。 要求されたアクションのセット全体が成功し、 AdGroupCriterionIds 応答リストが完全に設定されているか、すべて失敗し 、PartialErrors 応答リストが完全に設定されます。

.NET 例外

Bing Ads .NET SDK を使用する場合は、アプリケーションが API サービス レベルの例外WCF 例外、および以下で説明する .NET SDK 例外Bing Ads Bing Ads 処理するように準備する必要があります。

.NET アプリケーションのトラブルシューティングについては、「 .NET SDK のトラブルシューティング」を参照してください。

WCF 例外

Bing Ads API に固有ではない汎用 SOAP エラーもスローされる可能性があり、アプリケーションによってキャッチする必要があります。 たとえば、.NET アプリケーションでは、例外、TimeoutException、CommunicationException などの Windows Communication Foundation (WCF) 例外がスローされる場合があります。 WCF から予期される例外の詳細については、「 予期される例外」を参照してください。

サービス オブジェクトを解放するには、finally ブロックで Close メソッドを呼び出さないでください。 オブジェクトは、 Close メソッドが例外をスローできることです。 Close で例外がスローされた場合は、Abort メソッドを呼び出して、すべてのリソースが確実に解放されるようにする必要があります。そうしないと、サーバー上のリソースが漏洩する可能性があります。 推奨される方法は、try ブロック内で Close を呼び出し、キャッチされた例外から Abort を呼び出す方法です。

同じ理由で、 using ステートメントの使用はお勧めしません。 詳細については、「 Using ステートメントに関する問題の回避」を参照してください。

.NET SDK の例外

Bing Ads .NET SDK の例外では、サービス レベルの例外の一部が抽象化されます。 ほとんどの例外を回避するには、再試行し、複数回の再試行の後に問題が解決しない場合は、サポートにお問い合わせください。

Exception 名前空間 説明
CouldNotDownloadResultFileException Microsoft.BingAds この例外は、一括またはレポート結果ファイルのダウンロードが失敗した後に、内部 SDK HttpService によってスローされます。
CouldNotUploadFileException Microsoft.BingAds この例外は、一括ファイルのアップロードが失敗した後に、内部 SDK HttpService によってスローされます。
OAuthTokenRequestException Microsoft.BingAds この例外は、Microsft アカウント承認サーバーからエラーが返された場合にスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、無効なクライアント ID を指定した可能性があります。
BulkOperationCouldNotBeCompletedException Microsoft.BingAds.V13.Bulk この例外は、完了した一括結果ファイルのポーリングが試行され、一括サービスから失敗した状態が返された場合にスローされます。
BulkOperationInProgressException Microsoft.BingAds.V13.Bulk この例外は、まだ利用できない一括結果ファイルのダウンロードが試行された場合にスローされます。
CouldNotGetBulkOperationStatusException Microsoft.BingAds.V13.Bulk この例外は、BulkServiceManager が複数回の再試行の後にアップロードまたはダウンロード操作の状態を取得できなかった場合にスローされます。
CouldNotSubmitBulkDownloadException Microsoft.BingAds.V13.Bulk この例外は、呼び出した DownloadCampaignsByAccountIds サービス操作が有効な応答を返さない場合に BulkServiceManager によってスローされます。
CouldNotSubmitBulkUploadException Microsoft.BingAds.V13.Bulk この例外は、呼び出した GetBulkUploadUrl サービス操作が有効な応答を返さない場合に BulkServiceManager によってスローされます。
EntityReadException Microsoft.BingAds.V13.Bulk BulkFileReader を使用して一括ファイルからエンティティを読み取ろうとすると、この例外がスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、読み取ろうとしている一括ファイルのフィールドの 1 つに無効な値が含まれている可能性があります。
EntityWriteException Microsoft.BingAds.V13.Bulk BulkFileWriter を使用して一括ファイルにエンティティを書き込もうとすると、この例外がスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、アップロード エンティティの 1 つに無効な値を指定した可能性があります。
CouldNotGetReportingDownloadStatusException Microsoft.BingAds.V13.Reporting この例外は、ReportingServiceManager が複数回再試行した後にダウンロード操作の状態を取得できなかった場合にスローされます。
CouldNotSubmitReportingDownloadException Microsoft.BingAds.V13.Reporting この例外は、ReportingServiceManager が呼び出した SubmitGenerateReport サービス操作が有効な応答を返さない場合にスローされます。
ReportingOperationCouldNotBeCompletedException Microsoft.BingAds.V13.Reporting この例外は、完了したレポート結果ファイルのポーリングが試行され、レポート サービスから失敗した状態が返された場合にスローされます。
ReportingOperationInProgressException Microsoft.BingAds.V13.Reporting この例外は、まだ利用できないレポート結果ファイルのダウンロードが試行された場合にスローされます。

.NET SDK のトラブルシューティング

既知のサービスの問題がない限り、通常、呼び出しが失敗した場合は、SOAP 要素が無効であるか、順序が正しくないか、間違った資格情報を指定したためです。 両方のケースを確認するには、要求 SOAP エンベロープをキャプチャする必要があります。 サポートに問い合わせるか、キャプチャをサービス操作ごとに記載されている対応する SOAP の例と比較できます。

SDK トレース

.NET SDK TraceBehavior Bing Adsを使用して、SOAP 要求と応答をログに記録できます。

注:

TraceBehavior は、.NET SDK バージョン 12.13.5 以降Bing Ads使用できます。

using (StreamWriter streamWriter = new StreamWriter(@"tracelog.txt"))
{
    streamWriter.AutoFlush = true;

    // For console output instead of file output, use new TextWriterTraceListener(Console.Out).
    // If you only need debug output, you can remove the StreamWriter, TraceListener, and AddTraceSource.
    TraceListener traceListener = new TextWriterTraceListener(streamWriter.BaseStream);

    IServiceCollection serviceCollection = new ServiceCollection();
    serviceCollection.AddLogging(builder => builder
        .AddTraceSource(new SourceSwitch("ProgramSourceSwitch", "verbose"), traceListener)
        .AddDebug()
        .AddFilter(level => level >= LogLevel.Debug)
    );
    var iLoggerFactory = serviceCollection.BuildServiceProvider().GetService<ILoggerFactory>();
    TraceBehavior.Instance.AddMessageInspector(
        new LogMessageInspector(
            iLoggerFactory.CreateLogger<Program>(),
            LogLevel.Information)
    );

    Authentication authentication = AuthenticateWithOAuth();

    // This utiltiy operation sets the global authorization data instance 
    // to the first account that the current authenticated user can access. 

    SetAuthorizationDataAsync(authentication).Wait();

    // Run all of the examples that are included above.

    foreach (var example in _examples)
    {
        example.RunAsync(_authorizationData).Wait();
    }

    streamWriter.Flush();
    traceListener.Flush();
}

上記のスニペットを使用した完全なプログラムは、 Program.csにあります。

Fiddler オプション

Fiddler などのサード パーティ製ツールを使用して、.NET アプリケーションから SOAP エンベロープをキャプチャするには、次の手順に従います。

  • Fiddler をインストールしたら、ルート証明書ストアから Fiddler 証明書をエクスポートします。
  • [ ツール>] [Fiddler オプション] の順にクリックします
  • [HTTPS] タブを選択し、[HTTPS トラフィック チェックの暗号化解除] ボックスをクリックします。
  • [ OK] をクリックし、プロンプトに従って Fiddler 証明書をエクスポートします。

Java 例外

Bing Ads Java SDK を使用する場合は、API サービス レベルの例外 Bing Ads処理し、以下で説明する Java SDK の例外Bing Adsアプリケーションを準備する必要があります。

Java アプリケーションのトラブルシューティングについては、「 Java SDK のトラブルシューティング」を参照してください。

Java SDK の例外

Bing Ads Java SDK の例外では、サービス レベルの例外の一部が抽象化されます。 ほとんどの例外を回避するには、再試行し、複数回の再試行の後に問題が解決しない場合は、サポートにお問い合わせください。

Exception 名前空間 説明
CouldNotDownloadResultFileException com.microsoft.bingads この例外は、一括またはレポート結果ファイルのダウンロードが失敗した後に、内部 SDK HttpService によってスローされます。
CouldNotUploadFileException com.microsoft.bingads この例外は、一括ファイルのアップロードが失敗した後に、内部 SDK HttpService によってスローされます。
OAuthTokenRequestException com.microsoft.bingads この例外は、Microsft アカウント承認サーバーからエラーが返された場合にスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、無効なクライアント ID を指定した可能性があります。
BulkDownloadCouldNotBeCompletedException com.microsoft.bingads.V13.bulk この例外は、完了した一括ダウンロード結果ファイルのポーリングが試行され、一括サービスから失敗した状態が返された場合にスローされます。
BulkOperationInProgressException com.microsoft.bingads.V13.bulk この例外は、まだ利用できない一括結果ファイルのダウンロードが試行された場合にスローされます。
BulkUploadCouldNotBeCompletedException com.microsoft.bingads.V13.bulk この例外は、完了した一括アップロード結果ファイルのポーリングが試行され、一括サービスから失敗した状態が返された場合にスローされます。
CouldNotGetBulkOperationStatusException com.microsoft.bingads.V13.bulk この例外は、BulkServiceManager が複数回の再試行の後にアップロードまたはダウンロード操作の状態を取得できなかった場合にスローされます。
CouldNotSubmitBulkDownloadException com.microsoft.bingads.V13.bulk この例外は、呼び出した DownloadCampaignsByAccountIds サービス操作が有効な応答を返さない場合に BulkServiceManager によってスローされます。
CouldNotSubmitBulkUploadException com.microsoft.bingads.V13.bulk この例外は、呼び出した GetBulkUploadUrl サービス操作が有効な応答を返さない場合に BulkServiceManager によってスローされます。
EntityReadException com.microsoft.bingads.V13.bulk BulkFileReader を使用して一括ファイルからエンティティを読み取ろうとすると、この例外がスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、読み取ろうとしている一括ファイルのフィールドの 1 つに無効な値が含まれている可能性があります。
EntityWriteException com.microsoft.bingads.V13.bulk BulkFileWriter を使用して一括ファイルにエンティティを書き込もうとすると、この例外がスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、アップロード エンティティの 1 つに無効な値を指定した可能性があります。
CouldNotGetReportingDownloadStatusException com.microsoft.bingads.V13.reporting この例外は、ReportingServiceManager が複数回再試行した後にダウンロード操作の状態を取得できなかった場合にスローされます。
CouldNotSubmitReportingDownloadException com.microsoft.bingads.V13.reporting この例外は、ReportingServiceManager が呼び出した SubmitGenerateReport サービス操作が有効な応答を返さない場合にスローされます。
ReportingOperationCouldNotBeCompletedException com.microsoft.bingads.V13.reporting この例外は、完了したレポート結果ファイルのポーリングが試行され、レポート サービスから失敗した状態が返された場合にスローされます。
ReportingOperationInProgressException com.microsoft.bingads.V13.reporting この例外は、まだ利用できないレポート結果ファイルのダウンロードが試行された場合にスローされます。

Java SDK のトラブルシューティング

既知のサービスの問題がない限り、通常、呼び出しが失敗した場合は、SOAP 要素が無効であるか、順序が正しくないか、間違った資格情報を指定したためです。 いずれの場合も検証するには、要求 SOAP エンベロープをキャプチャする必要があります。 サポートに問い合わせるか、キャプチャをサービス操作ごとに記載されている対応する SOAP の例と比較できます。

要求メッセージと応答メッセージのプログラムによるログ記録を有効にするには、「 サービス呼び出しのログ記録」を参照してください。

Fiddler オプション

次の手順に従って、 Fiddler などのサード パーティ製ツールを使用して Java アプリケーションから SOAP エンベロープをキャプチャできます。

  1. Fiddler をインストールしたら、ルート証明書ストアから Fiddler 証明書をエクスポートします。 [ ツール>] [Fiddler オプション] の順にクリックします。 [HTTPS] タブを選択し、[HTTPS トラフィック チェックの暗号化解除] ボックスをクリックします。 [ OK] をクリックし、プロンプトに従って Fiddler 証明書をエクスポートします。

  2. 次のコマンドを使用して、Java で使用される cacert ストアに証明書をインポートします(たとえば、管理者として PowerShell から実行)。

    PS C:\Program Files\Java\jre1.8.0_201\bin> .\keytool.exe -importcert -v -alias "Fiddler cert" -trustcacerts -keystore "C:\Program Files\Java\jre1.8.0_201\lib\security\cacerts" -storepass changeit -file <PathToFiddlerRootGoesHere>\FiddlerRoot.cer
    
  3. Java アプリケーションに次の行を追加します。

    System.setProperty("https.proxyHost", "127.0.0.1");
    System.setProperty("https.proxyPort", "8888");
    

PHP 例外

Bing Ads PHP SDK を使用する場合は、アプリケーションで API サービス レベルの例外 Bing Ads処理し、以下で説明する PHP SDK の例外Bing Ads処理するように準備する必要があります。

PHP アプリケーションのトラブルシューティングについては、「 PHP SDK のトラブルシューティング」を参照してください。

PHP SDK のトラブルシューティング

既知のサービスの問題がない限り、通常、呼び出しが失敗した場合は、SOAP 要素が無効であるか、順序が正しくないか、間違った資格情報を指定したためです。 両方のケースを確認するには、要求 SOAP エンベロープをキャプチャする必要があります。 サポートに問い合わせるか、キャプチャをサービス操作ごとに記載されている対応する SOAP の例と比較できます。

SOAP を印刷する

PHP では、次のメソッドを使用して SOAP エンベロープを印刷できます。 各 PHP コード例には、コンソールにエラーを出力するためのこれらのステートメントが含まれています。

print $proxy->GetService()->__getLastRequest()."\n";
print $proxy->GetService()->__getLastResponse()."\n";

PHP SDK の例外

Bing Ads PHP SDK の例外では、サービス レベルの例外の一部が抽象化されています。 ほとんどの例外を回避するには、再試行し、複数回の再試行の後に問題が解決しない場合は、サポートにお問い合わせください。

また、Microsft アカウント承認サーバーからエラーが返された場合にスローされる OAuthTokenRequestException も処理する必要があります。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、無効なクライアント ID を指定した可能性があります。

Python 例外

Bing Ads Python SDK を使用する場合は、API サービス レベルの例外 Bing Ads処理し、以下で説明する Python SDK の例外Bing Adsアプリケーションを準備する必要があります。

Python アプリケーションのトラブルシューティングについては、「 Python SDK のトラブルシューティング」を参照してください。

Python SDK の例外

Bing Ads Python SDK の例外では、サービス レベルの例外の一部が抽象化されます。 ほとんどの例外を回避するには、再試行し、複数回の再試行の後に問題が解決しない場合は、サポートにお問い合わせください。

Exception 名前空間 説明
BulkException BingAds.V13.Bulk この例外は、完了した一括結果ファイルのポーリングが試行され、一括サービスから失敗した状態が返された場合にスローされます。
BulkDownloadException BingAds.V13.Bulk この例外は、一括ファイルのダウンロード中にタイムアウトが発生した場合にスローされます。
BulkUploadException BingAds.V13.Bulk この例外は、一括アップロード結果ファイルのダウンロード中にタイムアウトが発生した場合にスローされます。
EntityReadException BingAds.V13.Bulk BulkFileReader を使用して一括ファイルからエンティティを読み取ろうとすると、この例外がスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、読み取ろうとしている一括ファイルのフィールドの 1 つに無効な値が含まれている可能性があります。
EntityWriteException BingAds.V13.Bulk BulkFileWriter を使用して一括ファイルにエンティティを書き込もうとすると、この例外がスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、アップロード エンティティの 1 つに無効な値を指定した可能性があります。
FileDownloadException BingAds この例外は、一括アップロード結果ファイルのダウンロード中にタイムアウトが発生した場合にスローされます。
FileUploadException BingAds この例外は、一括ファイルのアップロード中にタイムアウトが発生した場合にスローされます。
OAuthTokenRequestException BingAds この例外は、Microsft アカウント承認サーバーからエラーが返された場合にスローされます。 この例外を解決するには、まずスタック トレースをチェックしてエラーの詳細を確認できます。問題を解決するために何らかのアクションを実行できる場合があります。 たとえば、無効なクライアント ID を指定した可能性があります。
ReportingException BingAds.V13.Reporting この例外は、完了したレポート結果ファイルのポーリングが試行され、レポート サービスから失敗した状態が返された場合にスローされます。
ReportingDownloadException BingAds.V13.Reporting レポート結果ファイルのダウンロード中にタイムアウトが発生すると、この例外がスローされます。
SdkException BingAds Bing Ads Python SDK の基本例外クラス。 この例外は発生しません。
TimeoutException BingAds タイムアウトが発生すると、この例外がスローされます。

Python SDK のトラブルシューティング

既知のサービスの問題がない限り、通常、呼び出しが失敗した場合は、SOAP 要素が無効であるか、順序が正しくないか、間違った資格情報を指定したためです。 両方のケースを確認するには、要求 SOAP エンベロープをキャプチャする必要があります。 サポートに問い合わせるか、キャプチャをサービス操作ごとに記載されている対応する SOAP の例と比較できます。

ログ記録

Bing Ads Python SDK を使用している場合は、SOAP 要求や応答など、出力トラフィックへのログ記録を含めることができます。 Python の各コード例には、すべての SOAP トラフィックをコンソールに出力するステートメントが含まれています。 トラフィックを表示する場合は、必ずコメントを解除してください。

import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
logging.getLogger('suds.transport.http').setLevel(logging.DEBUG) 

関連項目

BING ADS API 操作のエラー コード
Bing 広告 API Web サービス アドレス