2016-04-07 12 views
0

私はAdWordsのAPI(v201603)を照会しようとしており、提供されているJavaの例を使用しています。Google Adwordsの日付範囲を指定する方法CLICK_PERFORMANCE_REPORT

問題は、CLICK_PERFORMANCE_REPORTレポートのレポートデータをダウンロードする特定の日付を指定できることです。このレポートは、一度に1日分のデータを返すことに限定されています(過去90日間)。

ReportDefinitionDateRangeType.TODAYとReportDefinitionDateRangeType.YESTERDAYという指定子を使用して今日と昨日のデータを取得できますが、本当に必要なのは、過去90日間の特定の日付を指定して、可能な限りデータ。

私は次のことを試してみました:カスタム日付指定子でとない場合の両方

DateRange dr = new DateRange(); 
    dr.setMin("20160401"); 
    dr.setMax("20160402"); 
    selector.setDateRange(dr); 

    reportDefinition.setDateRangeType(ReportDefinitionDateRangeType.CUSTOM_DATE); 
    reportDefinition.setReportType(ReportDefinitionReportType.CLICK_PERFORMANCE_REPORT); 
    reportDefinition.setDownloadFormat(DownloadFormat.CSV); 

- といずれかの次のエラー得られます、400:HTTPレスポンスコード:

レポートが原因にダウンロードされていなかったがトリガー:のDateRangeがreportTypeのために必要とされる一日:CLICK_PERFORMANCE_REPORT、種類:ReportDefinitionError.INVALID_DATE_RANGE_FOR_REPORT

感謝すべてのヘルプ、事前

で感謝
+0

同じ日付で試しましたか? – fabrigm

+0

シンプルだけど正しい。単純な解決策を見るために、これと他の多くのもので壁に頭を打つ。ありがとうございました。これはCUSTOM_DATEの日付範囲タイプで実行する必要があります。そうでない場合はエラーが発生します。 –

答えて

2

DURINGと同じ日付文字列を使用する必要があります。アドワーズ広告スクリプトの

... + 'DURING 20161004,20161004'; 
0

一日イテレータはCLICK_PERFORMANCE_REPORT:

var start = new Date("12/01/2016"); 
var end = new Date("12/18/2016"); 

while(start < end){ 

    var newDate = start.setDate(start.getDate() + 1); 
    start = new Date(newDate); 
    singleDay = start.toISOString().substring(0, 10).replace(/-/g,""); 
    console.log(singleDay); 

} 

Utilities.formatDate(start, timeZone, "yyyyMMdd");形式日付オブジェクトを8桁の整数として、そう:

singleDay = Utilities.formatDate(start, timeZone, "yyyyMMdd");

使用singleDay'DURING ' + singleDay + ',' + singleDay);

Working with Dates and Times #Reporting — AdWords Scripts

関連する問題