ReportQuery query = new ReportQuery.Builder()
.fields(
"Id")
.from(ReportDefinitionReportType.ADGROUP_PERFORMANCE_REPORT)
.where("Status").equalTo(ENABLED_STATUS)
.build();
ReportingConfiguration reportingConfiguration =
new ReportingConfiguration.Builder()
.skipColumnHeader(true)
.skipReportHeader(true)
.skipReportSummary(false)
.includeZeroImpressions(true)
.build();
session.setReportingConfiguration(reportingConfiguration);
ReportDownloaderInterface reportDownloader =
adWordsServices.getUtility(session, ReportDownloaderInterface.class);
BufferedReader reader = null;
AdGroupStoreIterator adGroupStoreIterator = new AdGroupStoreIterator(new ArrayList<>());
try {
// Set the property api.adwords.reportDownloadTimeout or call
// ReportDownloader.setReportDownloadTimeout to set a timeout (in milliseconds)
// for CONNECT and READ in report downloads.
final ReportDownloadResponse response =
reportDownloader.downloadReport(query.toString(), DownloadFormat.CSV);
// Read the response as a BufferedReader.
reader = new BufferedReader(new InputStreamReader(response.getInputStream(), UTF_8));