私はBing Adsのドキュメントから基本的なreport download exampleを実行しようとしていて、get<REPORT_TYPE>ReportRequest()
メソッドを変更していくつかの他のレポートタイプをダウンロードするサンプルコードを変更することができました。Bing Ads Java API BudgetSummaryReportRequest example code
私が苦労しているレポートタイプは、予算概要レポートです。
私はこのような報告書の要求の作成:
private static ReportRequest getBudgetSummaryReportRequest(){
BudgetSummaryReportRequest report = new BudgetSummaryReportRequest();
report.setFormat(ReportFormat.CSV);
report.setReportName("My Budget Summary Report");
report.setReturnOnlyCompleteData(false);
ArrayOflong accountIds = new ArrayOflong();
accountIds.getLongs().add(authorizationData.getAccountId());
report.setScope(new AccountThroughCampaignReportScope());
report.getScope().setAccountIds(accountIds);
ArrayOfCampaignReportScope c = new ArrayOfCampaignReportScope();
CampaignReportScope cc = new CampaignReportScope();
cc.setAccountId(authorizationData.getAccountId());
cc.setCampaignId(<MY_CAMPAIGN_ID>);
c.getCampaignReportScopes().add(cc);
report.getScope().setCampaigns(c);
report.setTime(new BudgetSummaryReportTime());
report.getTime().setPredefinedTime(BudgetSummaryReportTimePeriod.TODAY);
ArrayOfBudgetSummaryReportColumn budgetSummaryReportColumns = new ArrayOfBudgetSummaryReportColumn();
budgetSummaryReportColumns.getBudgetSummaryReportColumns().add(BudgetSummaryReportColumn.ACCOUNT_ID);
budgetSummaryReportColumns.getBudgetSummaryReportColumns().add(BudgetSummaryReportColumn.CAMPAIGN_ID);
budgetSummaryReportColumns.getBudgetSummaryReportColumns().add(BudgetSummaryReportColumn.DATE);
budgetSummaryReportColumns.getBudgetSummaryReportColumns().add(BudgetSummaryReportColumn.CURRENCY_CODE);
budgetSummaryReportColumns.getBudgetSummaryReportColumns().add(BudgetSummaryReportColumn.MONTHLY_BUDGET);
budgetSummaryReportColumns.getBudgetSummaryReportColumns().add(BudgetSummaryReportColumn.MONTH_TO_DATE_SPEND);
budgetSummaryReportColumns.getBudgetSummaryReportColumns().add(BudgetSummaryReportColumn.DAILY_SPEND);
return report;
}
し、メインメソッドでReportRequest
オブジェクトを使用する(例ではreportRequest
フィールドを参照してください)。しかし、私はそれを実行しようとすると、私はいつも次のエラーを取得私は何をすべきかに関係なく、:他のレポートタイプで
java.util.concurrent.ExecutionException: com.microsoft.bingads.reporting.CouldNotSubmitReportingDownloadException: java.util.concurrent.ExecutionException: com.microsoft.bingads.reporting.ApiFaultDetail_Exception: Invalid client data. Check the SOAP fault details for more information
at com.microsoft.bingads.internal.ResultFuture.get(ResultFuture.java:96)
at ads.ReportRequests.backgroundCompletion(ReportRequests.java:172)
at ads.ReportRequests.main(ReportRequests.java:90)
Caused by: com.microsoft.bingads.reporting.CouldNotSubmitReportingDownloadException: java.util.concurrent.ExecutionException: com.microsoft.bingads.reporting.ApiFaultDetail_Exception: Invalid client data. Check the SOAP fault details for more information
at com.microsoft.bingads.reporting.ReportingServiceManager$3.handleResponse(ReportingServiceManager.java:216)
at org.apache.cxf.jaxws.JaxwsClientCallback.handleException(JaxwsClientCallback.java:87)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:821)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1638)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1145)
at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
at java.lang.Thread.run(Unknown Source)
Caused by: java.util.concurrent.ExecutionException: com.microsoft.bingads.reporting.ApiFaultDetail_Exception: Invalid client data. Check the SOAP fault details for more information
at org.apache.cxf.jaxws.JaxwsClientCallback$2.get(JaxwsClientCallback.java:99)
at com.microsoft.bingads.reporting.ReportingServiceManager$3.handleResponse(ReportingServiceManager.java:202)
... 9 more
Caused by: com.microsoft.bingads.reporting.ApiFaultDetail_Exception: Invalid client data. Check the SOAP fault details for more information
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.cxf.interceptor.ClientFaultConverter.processFaultDetail(ClientFaultConverter.java:182)
at org.apache.cxf.interceptor.ClientFaultConverter.handleMessage(ClientFaultConverter.java:82)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
at org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:140)
at org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:71)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:780)
... 7 more
このエラーは通常、私はいくつかの必須パラメータ(例えばスコープ)を設定するのを忘れたことを意味しました。ここで私はちょうど知らない。この問題をデバッグするにはどうすればよいですか(エラーメッセージに記載されているこの「SOAPデータ」を調べるなど)?
予算サマリーレポートのダウンロードにはどのような例がありますか?
EDIT:以下、エリックアーバンの回答が私の問題を解決しました。すべてのレポート要求タイプには、手動で指定してReportRequestオブジェクトに追加する必要のある列があります。
ありがとう、私は必要な列を手動で含める必要があることを認識しませんでした。それにもかかわらず、列を追加しても問題は解決されず、同じエラーが発生します。私はSOAPトラフィックをキャプチャしようとしますが、私は実際にそのことから何を期待するべきかわかりません... – grepe
私は、間違った配列の列を追加していました。質問のビット感情の定式化。 – grepe
問題が解決したらうれしいです!これは素晴らしいフィードバックであり、SDKを使いやすくする方法とトラブルシューティングガイドをより発見しやすくする方法をもう一度見ていきます。フォローアップの質問がある場合はお気軽にお問い合わせください。 –