<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="doubleclickbidmanager_v1.html">DoubleClick Bid Manager API</a> . <a href="doubleclickbidmanager_v1.queries.html">queries</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#createquery">createquery(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a query.</p>
<p class="toc_element">
  <code><a href="#deletequery">deletequery(queryId, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a stored query as well as the associated stored reports.</p>
<p class="toc_element">
  <code><a href="#getquery">getquery(queryId, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a stored query.</p>
<p class="toc_element">
  <code><a href="#listqueries">listqueries(x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves stored queries.</p>
<p class="toc_element">
  <code><a href="#runquery">runquery(queryId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Runs a stored query to generate a report.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="createquery">createquery(body=None, x__xgafv=None)</code>
  <pre>Creates a query.

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

{ # Represents a query.
  &quot;reportDataStartTimeMs&quot;: &quot;A String&quot;, # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
  &quot;schedule&quot;: { # Information on how frequently and when to run a query. # Information on how often and when to run a query.
    &quot;nextRunMinuteOfDay&quot;: 42, # Deprecated. This field has no effect.
    &quot;endTimeMs&quot;: &quot;A String&quot;, # Datetime to periodically run the query until.
    &quot;nextRunTimezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report generation time. Defaults to America/New_York.
    &quot;frequency&quot;: &quot;A String&quot;, # How often the query is run.
  },
  &quot;reportDataEndTimeMs&quot;: &quot;A String&quot;, # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
  &quot;timezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report data time. Defaults to America/New_York.
  &quot;params&quot;: { # Parameters of a query or report. # Query parameters.
    &quot;type&quot;: &quot;A String&quot;, # Report type.
    &quot;filters&quot;: [ # Filters used to match traffic data in your report.
      { # Filter used to match traffic data in your report.
        &quot;type&quot;: &quot;A String&quot;, # Filter type.
        &quot;value&quot;: &quot;A String&quot;, # Filter value.
      },
    ],
    &quot;metrics&quot;: [ # Metrics to include as columns in your report.
      &quot;A String&quot;,
    ],
    &quot;includeInviteData&quot;: True or False, # Deprecated. This field is no longer in use.
    &quot;groupBys&quot;: [ # Data is grouped by the filters listed in this field.
      &quot;A String&quot;,
    ],
  },
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;doubleclickbidmanager#query&quot;.
  &quot;metadata&quot;: { # Query metadata. # Query metadata.
    &quot;format&quot;: &quot;A String&quot;, # Format of the generated report.
    &quot;title&quot;: &quot;A String&quot;, # Query title. It is used to name the reports generated from this query.
    &quot;locale&quot;: &quot;A String&quot;, # Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE An locale string not in the list above will generate reports in English.
    &quot;running&quot;: True or False, # Whether the latest report is currently running.
    &quot;reportCount&quot;: 42, # Number of reports that have been generated for the query.
    &quot;latestReportRunTimeMs&quot;: &quot;A String&quot;, # The time when the latest report started to run.
    &quot;shareEmailAddress&quot;: [ # List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.
      &quot;A String&quot;,
    ],
    &quot;dataRange&quot;: &quot;A String&quot;, # Range of report data.
    &quot;googleDrivePathForLatestReport&quot;: &quot;A String&quot;, # The path in Google Drive for the latest report.
    &quot;googleCloudStoragePathForLatestReport&quot;: &quot;A String&quot;, # The path to the location in Google Cloud Storage where the latest report is stored.
    &quot;sendNotification&quot;: True or False, # Whether to send an email notification when a report is ready. Default to false.
  },
  &quot;queryId&quot;: &quot;A String&quot;, # Query ID.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a query.
    &quot;reportDataStartTimeMs&quot;: &quot;A String&quot;, # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
    &quot;schedule&quot;: { # Information on how frequently and when to run a query. # Information on how often and when to run a query.
      &quot;nextRunMinuteOfDay&quot;: 42, # Deprecated. This field has no effect.
      &quot;endTimeMs&quot;: &quot;A String&quot;, # Datetime to periodically run the query until.
      &quot;nextRunTimezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report generation time. Defaults to America/New_York.
      &quot;frequency&quot;: &quot;A String&quot;, # How often the query is run.
    },
    &quot;reportDataEndTimeMs&quot;: &quot;A String&quot;, # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
    &quot;timezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report data time. Defaults to America/New_York.
    &quot;params&quot;: { # Parameters of a query or report. # Query parameters.
      &quot;type&quot;: &quot;A String&quot;, # Report type.
      &quot;filters&quot;: [ # Filters used to match traffic data in your report.
        { # Filter used to match traffic data in your report.
          &quot;type&quot;: &quot;A String&quot;, # Filter type.
          &quot;value&quot;: &quot;A String&quot;, # Filter value.
        },
      ],
      &quot;metrics&quot;: [ # Metrics to include as columns in your report.
        &quot;A String&quot;,
      ],
      &quot;includeInviteData&quot;: True or False, # Deprecated. This field is no longer in use.
      &quot;groupBys&quot;: [ # Data is grouped by the filters listed in this field.
        &quot;A String&quot;,
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;doubleclickbidmanager#query&quot;.
    &quot;metadata&quot;: { # Query metadata. # Query metadata.
      &quot;format&quot;: &quot;A String&quot;, # Format of the generated report.
      &quot;title&quot;: &quot;A String&quot;, # Query title. It is used to name the reports generated from this query.
      &quot;locale&quot;: &quot;A String&quot;, # Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE An locale string not in the list above will generate reports in English.
      &quot;running&quot;: True or False, # Whether the latest report is currently running.
      &quot;reportCount&quot;: 42, # Number of reports that have been generated for the query.
      &quot;latestReportRunTimeMs&quot;: &quot;A String&quot;, # The time when the latest report started to run.
      &quot;shareEmailAddress&quot;: [ # List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.
        &quot;A String&quot;,
      ],
      &quot;dataRange&quot;: &quot;A String&quot;, # Range of report data.
      &quot;googleDrivePathForLatestReport&quot;: &quot;A String&quot;, # The path in Google Drive for the latest report.
      &quot;googleCloudStoragePathForLatestReport&quot;: &quot;A String&quot;, # The path to the location in Google Cloud Storage where the latest report is stored.
      &quot;sendNotification&quot;: True or False, # Whether to send an email notification when a report is ready. Default to false.
    },
    &quot;queryId&quot;: &quot;A String&quot;, # Query ID.
  }</pre>
</div>

<div class="method">
    <code class="details" id="deletequery">deletequery(queryId, x__xgafv=None)</code>
  <pre>Deletes a stored query as well as the associated stored reports.

Args:
  queryId: string, Query ID to delete. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="getquery">getquery(queryId, x__xgafv=None)</code>
  <pre>Retrieves a stored query.

Args:
  queryId: string, Query ID to retrieve. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a query.
    &quot;reportDataStartTimeMs&quot;: &quot;A String&quot;, # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
    &quot;schedule&quot;: { # Information on how frequently and when to run a query. # Information on how often and when to run a query.
      &quot;nextRunMinuteOfDay&quot;: 42, # Deprecated. This field has no effect.
      &quot;endTimeMs&quot;: &quot;A String&quot;, # Datetime to periodically run the query until.
      &quot;nextRunTimezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report generation time. Defaults to America/New_York.
      &quot;frequency&quot;: &quot;A String&quot;, # How often the query is run.
    },
    &quot;reportDataEndTimeMs&quot;: &quot;A String&quot;, # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
    &quot;timezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report data time. Defaults to America/New_York.
    &quot;params&quot;: { # Parameters of a query or report. # Query parameters.
      &quot;type&quot;: &quot;A String&quot;, # Report type.
      &quot;filters&quot;: [ # Filters used to match traffic data in your report.
        { # Filter used to match traffic data in your report.
          &quot;type&quot;: &quot;A String&quot;, # Filter type.
          &quot;value&quot;: &quot;A String&quot;, # Filter value.
        },
      ],
      &quot;metrics&quot;: [ # Metrics to include as columns in your report.
        &quot;A String&quot;,
      ],
      &quot;includeInviteData&quot;: True or False, # Deprecated. This field is no longer in use.
      &quot;groupBys&quot;: [ # Data is grouped by the filters listed in this field.
        &quot;A String&quot;,
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;doubleclickbidmanager#query&quot;.
    &quot;metadata&quot;: { # Query metadata. # Query metadata.
      &quot;format&quot;: &quot;A String&quot;, # Format of the generated report.
      &quot;title&quot;: &quot;A String&quot;, # Query title. It is used to name the reports generated from this query.
      &quot;locale&quot;: &quot;A String&quot;, # Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE An locale string not in the list above will generate reports in English.
      &quot;running&quot;: True or False, # Whether the latest report is currently running.
      &quot;reportCount&quot;: 42, # Number of reports that have been generated for the query.
      &quot;latestReportRunTimeMs&quot;: &quot;A String&quot;, # The time when the latest report started to run.
      &quot;shareEmailAddress&quot;: [ # List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.
        &quot;A String&quot;,
      ],
      &quot;dataRange&quot;: &quot;A String&quot;, # Range of report data.
      &quot;googleDrivePathForLatestReport&quot;: &quot;A String&quot;, # The path in Google Drive for the latest report.
      &quot;googleCloudStoragePathForLatestReport&quot;: &quot;A String&quot;, # The path to the location in Google Cloud Storage where the latest report is stored.
      &quot;sendNotification&quot;: True or False, # Whether to send an email notification when a report is ready. Default to false.
    },
    &quot;queryId&quot;: &quot;A String&quot;, # Query ID.
  }</pre>
</div>

<div class="method">
    <code class="details" id="listqueries">listqueries(x__xgafv=None)</code>
  <pre>Retrieves stored queries.

Args:
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # List queries response.
    &quot;queries&quot;: [ # Retrieved queries.
      { # Represents a query.
        &quot;reportDataStartTimeMs&quot;: &quot;A String&quot;, # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
        &quot;schedule&quot;: { # Information on how frequently and when to run a query. # Information on how often and when to run a query.
          &quot;nextRunMinuteOfDay&quot;: 42, # Deprecated. This field has no effect.
          &quot;endTimeMs&quot;: &quot;A String&quot;, # Datetime to periodically run the query until.
          &quot;nextRunTimezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report generation time. Defaults to America/New_York.
          &quot;frequency&quot;: &quot;A String&quot;, # How often the query is run.
        },
        &quot;reportDataEndTimeMs&quot;: &quot;A String&quot;, # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
        &quot;timezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report data time. Defaults to America/New_York.
        &quot;params&quot;: { # Parameters of a query or report. # Query parameters.
          &quot;type&quot;: &quot;A String&quot;, # Report type.
          &quot;filters&quot;: [ # Filters used to match traffic data in your report.
            { # Filter used to match traffic data in your report.
              &quot;type&quot;: &quot;A String&quot;, # Filter type.
              &quot;value&quot;: &quot;A String&quot;, # Filter value.
            },
          ],
          &quot;metrics&quot;: [ # Metrics to include as columns in your report.
            &quot;A String&quot;,
          ],
          &quot;includeInviteData&quot;: True or False, # Deprecated. This field is no longer in use.
          &quot;groupBys&quot;: [ # Data is grouped by the filters listed in this field.
            &quot;A String&quot;,
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;doubleclickbidmanager#query&quot;.
        &quot;metadata&quot;: { # Query metadata. # Query metadata.
          &quot;format&quot;: &quot;A String&quot;, # Format of the generated report.
          &quot;title&quot;: &quot;A String&quot;, # Query title. It is used to name the reports generated from this query.
          &quot;locale&quot;: &quot;A String&quot;, # Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE An locale string not in the list above will generate reports in English.
          &quot;running&quot;: True or False, # Whether the latest report is currently running.
          &quot;reportCount&quot;: 42, # Number of reports that have been generated for the query.
          &quot;latestReportRunTimeMs&quot;: &quot;A String&quot;, # The time when the latest report started to run.
          &quot;shareEmailAddress&quot;: [ # List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.
            &quot;A String&quot;,
          ],
          &quot;dataRange&quot;: &quot;A String&quot;, # Range of report data.
          &quot;googleDrivePathForLatestReport&quot;: &quot;A String&quot;, # The path in Google Drive for the latest report.
          &quot;googleCloudStoragePathForLatestReport&quot;: &quot;A String&quot;, # The path to the location in Google Cloud Storage where the latest report is stored.
          &quot;sendNotification&quot;: True or False, # Whether to send an email notification when a report is ready. Default to false.
        },
        &quot;queryId&quot;: &quot;A String&quot;, # Query ID.
      },
    ],
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;doubleclickbidmanager#listQueriesResponse&quot;.
  }</pre>
</div>

<div class="method">
    <code class="details" id="runquery">runquery(queryId, body=None, x__xgafv=None)</code>
  <pre>Runs a stored query to generate a report.

Args:
  queryId: string, Query ID to run. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request to run a stored query to generate a report.
    &quot;timezoneCode&quot;: &quot;A String&quot;, # Canonical timezone code for report data time. Defaults to America/New_York.
    &quot;dataRange&quot;: &quot;A String&quot;, # Report data range used to generate the report.
    &quot;reportDataStartTimeMs&quot;: &quot;A String&quot;, # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if dataRange is CUSTOM_DATES and ignored otherwise.
    &quot;reportDataEndTimeMs&quot;: &quot;A String&quot;, # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if dataRange is CUSTOM_DATES and ignored otherwise.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

</body></html>