<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="doubleclicksearch_v2.html">DoubleClick Search API</a> . <a href="doubleclicksearch_v2.reports.html">reports</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#generate">generate(body)</a></code></p>
<p class="firstline">Generates and returns a report immediately.</p>
<p class="toc_element">
  <code><a href="#get">get(reportId)</a></code></p>
<p class="firstline">Polls for the status of a report request.</p>
<p class="toc_element">
  <code><a href="#getFile">getFile(reportId, reportFragment)</a></code></p>
<p class="firstline">Downloads a report file encoded in UTF-8.</p>
<p class="toc_element">
  <code><a href="#getFile_media">getFile_media(reportId, reportFragment)</a></code></p>
<p class="firstline">Downloads a report file encoded in UTF-8.</p>
<p class="toc_element">
  <code><a href="#request">request(body)</a></code></p>
<p class="firstline">Inserts a report request into the reporting system.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="generate">generate(body)</code>
  <pre>Generates and returns a report immediately.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # A request object used to create a DoubleClick Search report.
    "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
        # The maximum number of orderings per request is 300.
      {
        "column": { # A request object used to create a DoubleClick Search report. # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
          "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
          "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
              # - "sold": returns metrics only for products that were sold
              # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
          "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
          "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
          "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
              # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
          "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
          "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
          "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
          "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
          "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
        },
        "sortOrder": "A String", # The sort direction, which is either ascending or descending.
      },
    ],
    "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
      "adGroupId": "A String", # DS ad group ID.
      "agencyId": "A String", # DS agency ID.
      "engineAccountId": "A String", # DS engine account ID.
      "campaignId": "A String", # DS campaign ID.
      "advertiserId": "A String", # DS advertiser ID.
      "keywordId": "A String", # DS keyword ID.
      "adId": "A String", # DS ad ID.
    },
    "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
    "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
    "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
      "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
      "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
      "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
      "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
    },
    "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
    "rowCount": 10000, # Synchronous report only. The maximum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
    "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
    "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
    "filters": [ # A list of filters to be applied to the report.
        # The maximum number of filters per request is 300.
      {
        "column": { # A request object used to create a DoubleClick Search report. # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
          "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
          "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
              # - "sold": returns metrics only for products that were sold
              # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
          "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
          "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
          "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
              # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
          "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
          "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
          "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
          "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
          "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
        },
        "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
        "values": [ # A list of values to filter the column value against.
            # The maximum number of filter values per request is 300.
          "",
        ],
      },
    ],
    "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
    "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
    "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
        # The maximum number of columns per request is 300.
      { # A request object used to create a DoubleClick Search report.
        "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
        "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
            # - "sold": returns metrics only for products that were sold
            # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
        "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
        "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
        "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
            # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
        "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
        "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
        "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
        "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
        "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
      },
    ],
    "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
  }


Returns:
  An object of the form:

    { # A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.
    "files": [ # Asynchronous report only. Contains a list of generated report files once the report has succesfully completed.
      {
        "url": "A String", # Use this url to download the report file.
        "byteCount": "A String", # The size of this report file in bytes.
      },
    ],
    "kind": "doubleclicksearch#report", # Identifies this as a Report resource. Value: the fixed string doubleclicksearch#report.
    "rows": [ # Synchronous report only. Generated report rows.
      { # A row in a DoubleClick Search report.
        "a_key": "", # Indicates the columns that are represented in this row. That is, each key corresponds to a column with a non-empty cell in this row.
      },
    ],
    "request": { # A request object used to create a DoubleClick Search report. # The request that created the report. Optional fields not specified in the original request are filled with default values.
        "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
            # The maximum number of orderings per request is 300.
          {
            "column": { # A request object used to create a DoubleClick Search report. # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
              "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
              "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                  # - "sold": returns metrics only for products that were sold
                  # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
              "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
              "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
              "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                  # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
              "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
              "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
              "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
              "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
            },
            "sortOrder": "A String", # The sort direction, which is either ascending or descending.
          },
        ],
        "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
          "adGroupId": "A String", # DS ad group ID.
          "agencyId": "A String", # DS agency ID.
          "engineAccountId": "A String", # DS engine account ID.
          "campaignId": "A String", # DS campaign ID.
          "advertiserId": "A String", # DS advertiser ID.
          "keywordId": "A String", # DS keyword ID.
          "adId": "A String", # DS ad ID.
        },
        "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
        "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
        "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
          "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
          "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
          "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
          "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
        },
        "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
        "rowCount": 10000, # Synchronous report only. The maximum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
        "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
        "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
        "filters": [ # A list of filters to be applied to the report.
            # The maximum number of filters per request is 300.
          {
            "column": { # A request object used to create a DoubleClick Search report. # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
              "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
              "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                  # - "sold": returns metrics only for products that were sold
                  # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
              "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
              "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
              "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                  # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
              "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
              "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
              "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
              "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
            },
            "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
            "values": [ # A list of values to filter the column value against.
                # The maximum number of filter values per request is 300.
              "",
            ],
          },
        ],
        "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
        "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
        "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
            # The maximum number of columns per request is 300.
          { # A request object used to create a DoubleClick Search report.
            "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
            "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                # - "sold": returns metrics only for products that were sold
                # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
            "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
            "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
            "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
            "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
            "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
            "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
            "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
            "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
          },
        ],
        "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
      },
    "isReportReady": True or False, # Asynchronous report only. True if and only if the report has completed successfully and the report files are ready to be downloaded.
    "rowCount": 42, # The number of report rows generated by the report, not including headers.
    "statisticsTimeZone": "A String", # If all statistics of the report are sourced from the same time zone, this would be it. Otherwise the field is unset.
    "statisticsCurrencyCode": "A String", # The currency code of all monetary values produced in the report, including values that are set by users (e.g., keyword bid settings) and metrics (e.g., cost and revenue). The currency code of a report is determined by the statisticsCurrency field of the report request.
    "id": "A String", # Asynchronous report only. Id of the report.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(reportId)</code>
  <pre>Polls for the status of a report request.

Args:
  reportId: string, ID of the report request being polled. (required)

Returns:
  An object of the form:

    { # A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.
    "files": [ # Asynchronous report only. Contains a list of generated report files once the report has succesfully completed.
      {
        "url": "A String", # Use this url to download the report file.
        "byteCount": "A String", # The size of this report file in bytes.
      },
    ],
    "kind": "doubleclicksearch#report", # Identifies this as a Report resource. Value: the fixed string doubleclicksearch#report.
    "rows": [ # Synchronous report only. Generated report rows.
      { # A row in a DoubleClick Search report.
        "a_key": "", # Indicates the columns that are represented in this row. That is, each key corresponds to a column with a non-empty cell in this row.
      },
    ],
    "request": { # A request object used to create a DoubleClick Search report. # The request that created the report. Optional fields not specified in the original request are filled with default values.
        "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
            # The maximum number of orderings per request is 300.
          {
            "column": { # A request object used to create a DoubleClick Search report. # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
              "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
              "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                  # - "sold": returns metrics only for products that were sold
                  # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
              "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
              "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
              "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                  # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
              "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
              "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
              "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
              "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
            },
            "sortOrder": "A String", # The sort direction, which is either ascending or descending.
          },
        ],
        "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
          "adGroupId": "A String", # DS ad group ID.
          "agencyId": "A String", # DS agency ID.
          "engineAccountId": "A String", # DS engine account ID.
          "campaignId": "A String", # DS campaign ID.
          "advertiserId": "A String", # DS advertiser ID.
          "keywordId": "A String", # DS keyword ID.
          "adId": "A String", # DS ad ID.
        },
        "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
        "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
        "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
          "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
          "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
          "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
          "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
        },
        "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
        "rowCount": 10000, # Synchronous report only. The maximum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
        "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
        "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
        "filters": [ # A list of filters to be applied to the report.
            # The maximum number of filters per request is 300.
          {
            "column": { # A request object used to create a DoubleClick Search report. # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
              "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
              "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                  # - "sold": returns metrics only for products that were sold
                  # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
              "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
              "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
              "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                  # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
              "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
              "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
              "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
              "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
            },
            "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
            "values": [ # A list of values to filter the column value against.
                # The maximum number of filter values per request is 300.
              "",
            ],
          },
        ],
        "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
        "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
        "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
            # The maximum number of columns per request is 300.
          { # A request object used to create a DoubleClick Search report.
            "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
            "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                # - "sold": returns metrics only for products that were sold
                # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
            "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
            "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
            "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
            "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
            "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
            "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
            "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
            "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
          },
        ],
        "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
      },
    "isReportReady": True or False, # Asynchronous report only. True if and only if the report has completed successfully and the report files are ready to be downloaded.
    "rowCount": 42, # The number of report rows generated by the report, not including headers.
    "statisticsTimeZone": "A String", # If all statistics of the report are sourced from the same time zone, this would be it. Otherwise the field is unset.
    "statisticsCurrencyCode": "A String", # The currency code of all monetary values produced in the report, including values that are set by users (e.g., keyword bid settings) and metrics (e.g., cost and revenue). The currency code of a report is determined by the statisticsCurrency field of the report request.
    "id": "A String", # Asynchronous report only. Id of the report.
  }</pre>
</div>

<div class="method">
    <code class="details" id="getFile">getFile(reportId, reportFragment)</code>
  <pre>Downloads a report file encoded in UTF-8.

Args:
  reportId: string, ID of the report. (required)
  reportFragment: integer, The index of the report fragment to download. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="getFile_media">getFile_media(reportId, reportFragment)</code>
  <pre>Downloads a report file encoded in UTF-8.

Args:
  reportId: string, ID of the report. (required)
  reportFragment: integer, The index of the report fragment to download. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="request">request(body)</code>
  <pre>Inserts a report request into the reporting system.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # A request object used to create a DoubleClick Search report.
    "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
        # The maximum number of orderings per request is 300.
      {
        "column": { # A request object used to create a DoubleClick Search report. # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
          "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
          "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
              # - "sold": returns metrics only for products that were sold
              # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
          "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
          "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
          "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
              # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
          "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
          "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
          "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
          "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
          "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
        },
        "sortOrder": "A String", # The sort direction, which is either ascending or descending.
      },
    ],
    "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
      "adGroupId": "A String", # DS ad group ID.
      "agencyId": "A String", # DS agency ID.
      "engineAccountId": "A String", # DS engine account ID.
      "campaignId": "A String", # DS campaign ID.
      "advertiserId": "A String", # DS advertiser ID.
      "keywordId": "A String", # DS keyword ID.
      "adId": "A String", # DS ad ID.
    },
    "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
    "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
    "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
      "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
      "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
      "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
      "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
    },
    "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
    "rowCount": 10000, # Synchronous report only. The maximum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
    "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
    "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
    "filters": [ # A list of filters to be applied to the report.
        # The maximum number of filters per request is 300.
      {
        "column": { # A request object used to create a DoubleClick Search report. # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
          "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
          "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
              # - "sold": returns metrics only for products that were sold
              # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
          "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
          "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
          "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
              # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
          "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
          "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
          "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
          "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
          "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
        },
        "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
        "values": [ # A list of values to filter the column value against.
            # The maximum number of filter values per request is 300.
          "",
        ],
      },
    ],
    "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
    "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
    "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
        # The maximum number of columns per request is 300.
      { # A request object used to create a DoubleClick Search report.
        "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
        "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
            # - "sold": returns metrics only for products that were sold
            # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
        "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
        "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
        "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
            # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
        "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
        "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
        "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
        "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
        "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
      },
    ],
    "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
  }


Returns:
  An object of the form:

    { # A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.
    "files": [ # Asynchronous report only. Contains a list of generated report files once the report has succesfully completed.
      {
        "url": "A String", # Use this url to download the report file.
        "byteCount": "A String", # The size of this report file in bytes.
      },
    ],
    "kind": "doubleclicksearch#report", # Identifies this as a Report resource. Value: the fixed string doubleclicksearch#report.
    "rows": [ # Synchronous report only. Generated report rows.
      { # A row in a DoubleClick Search report.
        "a_key": "", # Indicates the columns that are represented in this row. That is, each key corresponds to a column with a non-empty cell in this row.
      },
    ],
    "request": { # A request object used to create a DoubleClick Search report. # The request that created the report. Optional fields not specified in the original request are filled with default values.
        "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
            # The maximum number of orderings per request is 300.
          {
            "column": { # A request object used to create a DoubleClick Search report. # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
              "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
              "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                  # - "sold": returns metrics only for products that were sold
                  # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
              "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
              "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
              "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                  # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
              "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
              "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
              "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
              "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
            },
            "sortOrder": "A String", # The sort direction, which is either ascending or descending.
          },
        ],
        "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
          "adGroupId": "A String", # DS ad group ID.
          "agencyId": "A String", # DS agency ID.
          "engineAccountId": "A String", # DS engine account ID.
          "campaignId": "A String", # DS campaign ID.
          "advertiserId": "A String", # DS advertiser ID.
          "keywordId": "A String", # DS keyword ID.
          "adId": "A String", # DS ad ID.
        },
        "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
        "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
        "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
          "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
          "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
          "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
          "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
        },
        "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
        "rowCount": 10000, # Synchronous report only. The maximum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
        "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
        "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
        "filters": [ # A list of filters to be applied to the report.
            # The maximum number of filters per request is 300.
          {
            "column": { # A request object used to create a DoubleClick Search report. # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
              "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
              "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                  # - "sold": returns metrics only for products that were sold
                  # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
              "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
              "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
              "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                  # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
              "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
              "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
              "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
              "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
            },
            "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
            "values": [ # A list of values to filter the column value against.
                # The maximum number of filter values per request is 300.
              "",
            ],
          },
        ],
        "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
        "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
        "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
            # The maximum number of columns per request is 300.
          { # A request object used to create a DoubleClick Search report.
            "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
            "productReportPerspective": "A String", # Returns metrics only for a specific type of product activity. Accepted values are:
                # - "sold": returns metrics only for products that were sold
                # - "advertised": returns metrics only for products that were advertised in a Shopping campaign, and that might or might not have been sold
            "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
            "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
            "customDimensionName": "A String", # Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.
                # If used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report.
            "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
            "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
            "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
            "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "floodlight".
            "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
          },
        ],
        "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
      },
    "isReportReady": True or False, # Asynchronous report only. True if and only if the report has completed successfully and the report files are ready to be downloaded.
    "rowCount": 42, # The number of report rows generated by the report, not including headers.
    "statisticsTimeZone": "A String", # If all statistics of the report are sourced from the same time zone, this would be it. Otherwise the field is unset.
    "statisticsCurrencyCode": "A String", # The currency code of all monetary values produced in the report, including values that are set by users (e.g., keyword bid settings) and metrics (e.g., cost and revenue). The currency code of a report is determined by the statisticsCurrency field of the report request.
    "id": "A String", # Asynchronous report only. Id of the report.
  }</pre>
</div>

</body></html>