Downloading Reports - jimper/googleads-dotnet-lib GitHub Wiki

AdWords API: Downloading reports

You can download AdWords API report using the ReportUtilities class. The typical usage is shown below:

Downloading report to memory

ReportUtilities utilities = new ReportUtilities(user,
    "v201506", definition);
using (ReportResponse reportResponse = utilities.GetResponse()) {
  byte[] reportBytes = reportResponse.Download();
  string reportText = Encoding.UTF8.GetString(reportBytes);
}

If you were downloading in gzip format, this would look like:

ReportUtilities utilities = new ReportUtilities(user,
    "v201506", definition);
using (ReportResponse reportResponse = utilities.GetResponse()) {
  byte[] reportBytes = reportResponse.Download();
  string deflatedReportText = Encoding.UTF8.GetString(
      MediaUtilities.DeflateGZipData(reportResponse.Contents));
}

Downloading report to disk

ReportUtilities utilities = new ReportUtilities(user,
    "v201506", definition);
using (ReportResponse reportResponse = utilities.GetResponse()) {
  reportResponse.Save(filePath);
}

Streaming a report

ReportUtilities utilities = new ReportUtilities(user,
    "v201506", definition);
using (ReportResponse response = utilities.GetResponse()) {
  using (StreamReader reader = new StreamReader(response.Stream)) {
    // Process your report here.
  }
}

Downloading report asynchronously

ReportUtilities utilities = new ReportUtilities(user,
    "v201506", definition);
ReportResponse reportResponse = utilities.GetResponse();
reportResponse.OnSuccess += delegate() {
  // Process the file.
};
reportResponse.SaveAsync(filePath);

DFP API: Downloading reports

You can download DFP API report using the ReportUtilities class. The typical usage is shown below:

Run the report and set the download options

reportJob = reportService.runReportJob(reportJob);

ReportUtilities reportUtilities = new ReportUtilities(reportService, reportJob.id);
// Set download options.
ReportDownloadOptions options = new ReportDownloadOptions();
options.exportFormat = ExportFormat.CSV_DUMP;
options.useGzipCompression = true;
reportUtilities.reportDownloadOptions = options;

Downloading report to disk

using (ReportResponse reportResponse = reportUtilities.GetResponse()) {
  reportResponse.Save(filePath);
}

Streaming a report

using (ReportResponse response = reportUtilities.GetResponse()) {
  using (StreamReader reader = new StreamReader(response.Stream)) {
    // Process your report here.
  }
}

Downloading report asynchronously

ReportResponse reportResponse = reportUtilities.GetResponse();
reportResponse.OnSuccess += delegate() {
  // Process the file.
};
reportResponse.SaveAsync(filePath);