Java Code Examples for com.google.api.ads.adwords.lib.utils.v201809.ReportDownloaderInterface#downloadReport()
The following examples show how to use
com.google.api.ads.adwords.lib.utils.v201809.ReportDownloaderInterface#downloadReport() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CallableAwqlReportDownloader.java From adwords-alerting with Apache License 2.0 | 6 votes |
/** * Downloads report from API (with retry logic) and transforms the result into a * {@link ReportData} object. */ @Override public ReportData call() throws AlertProcessingException { ReportDownloaderInterface reportDownloader = AdWordsServicesUtil.getUtility(session, ReportDownloaderInterface.class); ReportDownloadResponse reportDownloadResponse = null; try { reportDownloadResponse = reportDownloader.downloadReport(reportQuery.generateAWQL(), DownloadFormat.GZIPPED_CSV); } catch (ReportException | ReportDownloadResponseException e) { String msg = "Failed to download report account " + session.getClientCustomerId() + "."; LOGGER.error(msg, e); throw new AlertProcessingException(msg, e); } InputStream inputStream = reportDownloadResponse.getInputStream(); return handleReportStreamResult(inputStream); }
Example 2
Source File: StreamingRunnableProcessor.java From aw-reporting with Apache License 2.0 | 6 votes |
/** * Downloads the file from the API into an InputStream. * * @return the InputStream from the online report, null if httpStatus is not {@code HTTP_OK}. */ private InputStream getReportInputStream() { ReportDownloaderInterface reportDownloader = AdWordsServicesUtil.getUtility(session, ReportDownloaderInterface.class); InputStream result = null; try { ReportDownloadResponse reportDownloadResponse = reportDownloader.downloadReport(reportDefinition); result = reportDownloadResponse.getInputStream(); } catch (ReportException | ReportDownloadResponseException e) { logger.error( "Failed to download report stream for {} with account {}.", reportDefinition.getReportType(), session.getClientCustomerId(), e); } return result; }
Example 3
Source File: CallableReportDownloader.java From aw-reporting with Apache License 2.0 | 6 votes |
/** * Gets the report download response from the API and retries on failure. */ @VisibleForTesting ReportDownloadResponse getReportDownloadResponse() throws ReportProcessingException { ReportDownloaderInterface reportDownloader = AdWordsServicesUtil.getUtility(session, ReportDownloaderInterface.class); ReportDownloadResponse result = null; try { result = reportDownloader.downloadReport(reportDefinition); } catch (ReportException | ReportDownloadResponseException e) { String msg = "Failed to download report file for " + reportDefinition.getReportType() + " with account " + session.getClientCustomerId() + "."; logger.error(msg, e); throw new ReportProcessingException(msg, e); } return result; }
Example 4
Source File: DownloadCriteriaReportWithAwql.java From googleads-java-lib with Apache License 2.0 | 4 votes |
/** * Runs the example. * * @param adWordsServices the services factory. * @param session the session. * @param reportFile the output file for the report contents. * @throws DetailedReportDownloadResponseException if the report request failed with a detailed * error from the reporting service. * @throws ReportDownloadResponseException if the report request failed with a general error from * the reporting service. * @throws ReportException if the report request failed due to a transport layer error. * @throws IOException if the report's contents could not be written to {@code reportFile}. */ public static void runExample( AdWordsServicesInterface adWordsServices, AdWordsSession session, String reportFile) throws ReportDownloadResponseException, ReportException, IOException { // Create query. ReportQuery query = new ReportQuery.Builder() .fields( "CampaignId", "AdGroupId", "Id", "Criteria", "CriteriaType", "Impressions", "Clicks", "Cost") .from(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT) .where("Status").in("ENABLED", "PAUSED") .during(ReportDefinitionDateRangeType.LAST_7_DAYS) .build(); // Optional: Set the reporting configuration of the session to suppress header, column name, or // summary rows in the report output. You can also configure this via your ads.properties // configuration file. See AdWordsSession.Builder.from(Configuration) for details. // In addition, you can set whether you want to explicitly include or exclude zero impression // rows. ReportingConfiguration reportingConfiguration = new ReportingConfiguration.Builder() .skipReportHeader(false) .skipColumnHeader(false) .skipReportSummary(false) // Set to false to exclude rows with zero impressions. .includeZeroImpressions(true) .build(); session.setReportingConfiguration(reportingConfiguration); ReportDownloaderInterface reportDownloader = adWordsServices.getUtility(session, ReportDownloaderInterface.class); // Set the property api.adwords.reportDownloadTimeout or call // ReportDownloader.setReportDownloadTimeout to set a timeout (in milliseconds) // for CONNECT and READ in report downloads. ReportDownloadResponse response = reportDownloader.downloadReport(query.toString(), DownloadFormat.CSV); response.saveToFile(reportFile); System.out.printf("Report successfully downloaded to: %s%n", reportFile); }
Example 5
Source File: DownloadCriteriaReportWithSelector.java From googleads-java-lib with Apache License 2.0 | 4 votes |
/** * Runs the example. * * @param adWordsServices the services factory. * @param session the session. * @param reportFile the output file for the report contents. * @throws DetailedReportDownloadResponseException if the report request failed with a detailed * error from the reporting service. * @throws ReportDownloadResponseException if the report request failed with a general error from * the reporting service. * @throws ReportException if the report request failed due to a transport layer error. * @throws IOException if the report's contents could not be written to {@code reportFile}. */ public static void runExample( AdWordsServicesInterface adWordsServices, AdWordsSession session, String reportFile) throws ReportDownloadResponseException, ReportException, IOException { // Create selector. Selector selector = new Selector(); selector.getFields().addAll(Arrays.asList("CampaignId", "AdGroupId", "Id", "CriteriaType", "Criteria", "FinalUrls", "Impressions", "Clicks", "Cost")); // Create report definition. ReportDefinition reportDefinition = new ReportDefinition(); reportDefinition.setReportName("Criteria performance report #" + System.currentTimeMillis()); reportDefinition.setDateRangeType(ReportDefinitionDateRangeType.YESTERDAY); reportDefinition.setReportType(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT); reportDefinition.setDownloadFormat(DownloadFormat.CSV); // Optional: Set the reporting configuration of the session to suppress header, column name, or // summary rows in the report output. You can also configure this via your ads.properties // configuration file. See AdWordsSession.Builder.from(Configuration) for details. // In addition, you can set whether you want to explicitly include or exclude zero impression // rows. ReportingConfiguration reportingConfiguration = new ReportingConfiguration.Builder() .skipReportHeader(false) .skipColumnHeader(false) .skipReportSummary(false) // Enable to allow rows with zero impressions to show. .includeZeroImpressions(false) .build(); session.setReportingConfiguration(reportingConfiguration); reportDefinition.setSelector(selector); ReportDownloaderInterface reportDownloader = adWordsServices.getUtility(session, ReportDownloaderInterface.class); // Set the property api.adwords.reportDownloadTimeout or call // ReportDownloader.setReportDownloadTimeout to set a timeout (in milliseconds) // for CONNECT and READ in report downloads. ReportDownloadResponse response = reportDownloader.downloadReport(reportDefinition); response.saveToFile(reportFile); System.out.printf("Report successfully downloaded to: %s%n", reportFile); }