<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="realtimebidding_v1.html">Real-time Bidding API</a> . <a href="realtimebidding_v1.bidders.html">bidders</a> . <a href="realtimebidding_v1.bidders.creatives.html">creatives</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="#list">list(parent, filter=None, pageSize=None, pageToken=None, view=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists creatives.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#watch">watch(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Watches all creatives pertaining to a bidder. It is sufficient to invoke this endpoint once per bidder. A Pub/Sub topic will be created and notifications will be pushed to the topic when any of the bidder's creatives change status. All of the bidder's service accounts will have access to read from the topic. Subsequent invocations of this method will return the existing Pub/Sub configuration.</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="list">list(parent, filter=None, pageSize=None, pageToken=None, view=None, x__xgafv=None)</code>
  <pre>Lists creatives.

Args:
  parent: string, Required. Name of the parent buyer that owns the creatives. The pattern for this resource is either `buyers/{buyerAccountId}` or `bidders/{bidderAccountId}`. For `buyers/{buyerAccountId}`, the `buyerAccountId` can be one of the following: 1. The ID of the buyer that is accessing their own creatives. 2. The ID of the child seat buyer under a bidder account. So for listing creatives pertaining to the child seat buyer (`456`) under bidder account (`123`), you would use the pattern: `buyers/456`. 3. The ID of the bidder itself. So for listing creatives pertaining to bidder (`123`), you would use `buyers/123`. If you want to access all creatives pertaining to both the bidder and all of its child seat accounts, you would use `bidders/{bidderAccountId}`, e.g., for all creatives pertaining to bidder (`123`), use `bidders/123`. (required)
  filter: string, Query string to filter creatives. If no filter is specified, all active creatives will be returned. Example: &#x27;accountId=12345 AND (dealsStatus:DISAPPROVED AND disapprovalReason:UNACCEPTABLE_CONTENT) OR declaredAttributes:IS_COOKIE_TARGETED&#x27;
  pageSize: integer, Requested page size. The server may return fewer creatives than requested (due to timeout constraint) even if more are available via another call. If unspecified, server will pick an appropriate default. Acceptable values are 1 to 1000, inclusive.
  pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of ListCreativesResponse.nextPageToken returned from the previous call to the &#x27;ListCreatives&#x27; method. Page tokens for continued pages are valid for up to five hours, counting from the call to &#x27;ListCreatives&#x27; for the first page.
  view: string, Controls the amount of information included in the response. By default only creativeServingDecision is included. To retrieve the entire creative resource (including the declared fields and the creative content) specify the view as &quot;FULL&quot;.
    Allowed values
      CREATIVE_VIEW_UNSPECIFIED - Not specified, equivalent to SERVING_DECISION_ONLY.
      SERVING_DECISION_ONLY - Only creativeServingDecision is included in the response.
      FULL - The entire creative resource (including the declared fields and the creative content) is included in the response.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A response for listing creatives.
  &quot;creatives&quot;: [ # The list of creatives.
    { # A creative and its classification data.
      &quot;accountId&quot;: &quot;A String&quot;, # Output only. ID of the buyer account that this creative is owned by. Can be used to filter the response of the creatives.list method with equality and inequality check.
      &quot;adChoicesDestinationUrl&quot;: &quot;A String&quot;, # The link to AdChoices destination page. This is only supported for native ads.
      &quot;advertiserName&quot;: &quot;A String&quot;, # The name of the company being advertised in the creative. Can be used to filter the response of the creatives.list method.
      &quot;agencyId&quot;: &quot;A String&quot;, # The agency ID for this creative.
      &quot;apiUpdateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of the creative via API.
      &quot;creativeFormat&quot;: &quot;A String&quot;, # Output only. The format of this creative. Can be used to filter the response of the creatives.list method.
      &quot;creativeId&quot;: &quot;A String&quot;, # Buyer-specific creative ID that references this creative in bid responses. This field is Ignored in update operations. Can be used to filter the response of the creatives.list method. The maximum length of the creative ID is 128 bytes.
      &quot;creativeServingDecision&quot;: { # Top level status and detected attributes of a creative. # Output only. Top level status and detected attributes of a creative (for example domain, language, advertiser, product category, etc.) that affect whether (status) and where (context) a creative will be allowed to serve.
        &quot;adTechnologyProviders&quot;: { # The list of detected Ad Technology Providers for this creative. Bids placed for inventory that will serve to EEA or UK users are expected to comply with GDPR requirements. You must ensure that the creatives used in such bids should contain only user consented ad technology providers as indicated in the bid request. Google reserves the right to filter non-compliant bids. User consented ad technology providers can be found in the [Google Protocol](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) with the `BidRequest.adslot.consented_providers_settings` field, and can be found as an [OpenRTB extension](https://developers.google.com/authorized-buyers/rtb/downloads/openrtb-adx-proto) with the `BidRequest.user.ext.consented_providers_settings` and `BidRequest.user.ext.consent` fields. See https://support.google.com/authorizedbuyers/answer/9789378 for additional information about the Google TCF v2 integration. # The detected ad technology providers.
          &quot;detectedGvlIds&quot;: [ # The detected IAB Global Vendor List (GVL) IDs for this creative. See the IAB Global Vendor List at https://vendorlist.consensu.org/v2/vendor-list.json for details about the vendors.
            &quot;A String&quot;,
          ],
          &quot;detectedProviderIds&quot;: [ # The detected [Google Ad Tech Providers (ATP)](https://support.google.com/admanager/answer/9012903) for this creative. See https://storage.googleapis.com/adx-rtb-dictionaries/providers.csv for mapping of provider ID to provided name, a privacy policy URL, and a list of domains which can be attributed to the provider.
            &quot;A String&quot;,
          ],
          &quot;unidentifiedProviderDomains&quot;: [ # Domains of detected unidentified ad technology providers (if any). You must ensure that the creatives used in bids placed for inventory that will serve to EEA or UK users does not contain unidentified ad technology providers. Google reserves the right to filter non-compliant bids.
            &quot;A String&quot;,
          ],
        },
        &quot;chinaPolicyCompliance&quot;: { # Policy compliance of the creative for a transaction type or a region. # The policy compliance of this creative in China. When approved or disapproved, this applies to both deals and open auction in China. When pending review, this creative is allowed to serve for deals but not for open auction.
          &quot;status&quot;: &quot;A String&quot;, # Serving status for the given transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Can be used to filter the response of the creatives.list method.
          &quot;topics&quot;: [ # Topics related to the policy compliance for this transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Topics may be present only if status is DISAPPROVED.
            { # Each policy topic entry will represent a violation of a policy topic for a creative, with the policy topic information and optional evidence for the policy violation.
              &quot;evidences&quot;: [ # Pieces of evidence associated with this policy topic entry.
                { # Evidence associated with a policy topic entry.
                  &quot;destinationNotCrawlable&quot;: { # Evidence that the creative&#x27;s destination URL was not crawlable by Google. # The creative&#x27;s destination URL was not crawlable by Google.
                    &quot;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    &quot;crawledUrl&quot;: &quot;A String&quot;, # Destination URL that was attempted to be crawled.
                    &quot;reason&quot;: &quot;A String&quot;, # Reason of destination not crawlable.
                  },
                  &quot;destinationNotWorking&quot;: { # Evidence of the creative&#x27;s destination URL not functioning properly or having been incorrectly set up. # The creative&#x27;s destination URL did not function properly or was incorrectly set up.
                    &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    &quot;expandedUrl&quot;: &quot;A String&quot;, # The full non-working URL.
                    &quot;httpError&quot;: 42, # HTTP error code (e.g. 404 or 5xx)
                    &quot;invalidPage&quot;: &quot;A String&quot;, # Page was crawled successfully, but was detected as either a page with no content or an error page.
                    &quot;lastCheckTime&quot;: &quot;A String&quot;, # Approximate time when the ad destination was last checked.
                    &quot;platform&quot;: &quot;A String&quot;, # Platform of the non-working URL.
                    &quot;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                    &quot;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                  },
                  &quot;destinationUrl&quot;: { # The full landing page URL of the destination. # URL of the actual landing page.
                    &quot;destinationUrl&quot;: &quot;A String&quot;, # The full landing page URL of the destination.
                  },
                  &quot;domainCall&quot;: { # Number of HTTP calls made by a creative, broken down by domain. # Number of HTTP calls made by the creative, broken down by domain.
                    &quot;topHttpCallDomains&quot;: [ # Breakdown of the most frequent domains called via HTTP by the creative.
                      { # The number of HTTP calls made to the given domain.
                        &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        &quot;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                      },
                    ],
                    &quot;totalHttpCallCount&quot;: 42, # The total number of HTTP calls made by the creative, including but not limited to the number of calls in the top_http_call_domains.
                  },
                  &quot;downloadSize&quot;: { # Total download size and URL-level download size breakdown for resources in a creative. # Total download size and URL-level download size breakdown for resources in a creative.
                    &quot;topUrlDownloadSizeBreakdowns&quot;: [ # Download size broken down by URLs with the top download size.
                      { # The URL-level breakdown for the download size.
                        &quot;downloadSizeKb&quot;: 42, # Download size of the URL in kilobytes.
                        &quot;normalizedUrl&quot;: &quot;A String&quot;, # The normalized URL with query parameters and fragment removed.
                      },
                    ],
                    &quot;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the creative.
                  },
                  &quot;httpCall&quot;: { # HTTP calls made by a creative that resulted in policy violations. # HTTP calls made by the creative that resulted in policy violations.
                    &quot;urls&quot;: [ # URLs of HTTP calls made by the creative.
                      &quot;A String&quot;,
                    ],
                  },
                  &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                    &quot;cookieNames&quot;: [ # Names of cookies that violate Google policies. For TOO_MANY_COOKIES policy, this will be the cookie names of top domains with the largest number of cookies. For other policies, this will be all the cookie names that violate the policy.
                      &quot;A String&quot;,
                    ],
                    &quot;maxCookieCount&quot;: 42, # The largest number of cookies set by a creative. If this field is set, cookie_names above will be set to the cookie names of top domains with the largest number of cookies. This field will only be set for TOO_MANY_COOKIES policy.
                  },
                },
              ],
              &quot;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              &quot;policyTopic&quot;: &quot;A String&quot;, # Policy topic this entry refers to. For example, &quot;ALCOHOL&quot;, &quot;TRADEMARKS_IN_AD_TEXT&quot;, or &quot;DESTINATION_NOT_WORKING&quot;. The set of possible policy topics is not fixed for a particular API version and may change at any time. Can be used to filter the response of the creatives.list method
            },
          ],
        },
        &quot;dealsPolicyCompliance&quot;: { # Policy compliance of the creative for a transaction type or a region. # Policy compliance of this creative when bidding on Programmatic Guaranteed and Preferred Deals (outside of Russia and China).
          &quot;status&quot;: &quot;A String&quot;, # Serving status for the given transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Can be used to filter the response of the creatives.list method.
          &quot;topics&quot;: [ # Topics related to the policy compliance for this transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Topics may be present only if status is DISAPPROVED.
            { # Each policy topic entry will represent a violation of a policy topic for a creative, with the policy topic information and optional evidence for the policy violation.
              &quot;evidences&quot;: [ # Pieces of evidence associated with this policy topic entry.
                { # Evidence associated with a policy topic entry.
                  &quot;destinationNotCrawlable&quot;: { # Evidence that the creative&#x27;s destination URL was not crawlable by Google. # The creative&#x27;s destination URL was not crawlable by Google.
                    &quot;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    &quot;crawledUrl&quot;: &quot;A String&quot;, # Destination URL that was attempted to be crawled.
                    &quot;reason&quot;: &quot;A String&quot;, # Reason of destination not crawlable.
                  },
                  &quot;destinationNotWorking&quot;: { # Evidence of the creative&#x27;s destination URL not functioning properly or having been incorrectly set up. # The creative&#x27;s destination URL did not function properly or was incorrectly set up.
                    &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    &quot;expandedUrl&quot;: &quot;A String&quot;, # The full non-working URL.
                    &quot;httpError&quot;: 42, # HTTP error code (e.g. 404 or 5xx)
                    &quot;invalidPage&quot;: &quot;A String&quot;, # Page was crawled successfully, but was detected as either a page with no content or an error page.
                    &quot;lastCheckTime&quot;: &quot;A String&quot;, # Approximate time when the ad destination was last checked.
                    &quot;platform&quot;: &quot;A String&quot;, # Platform of the non-working URL.
                    &quot;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                    &quot;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                  },
                  &quot;destinationUrl&quot;: { # The full landing page URL of the destination. # URL of the actual landing page.
                    &quot;destinationUrl&quot;: &quot;A String&quot;, # The full landing page URL of the destination.
                  },
                  &quot;domainCall&quot;: { # Number of HTTP calls made by a creative, broken down by domain. # Number of HTTP calls made by the creative, broken down by domain.
                    &quot;topHttpCallDomains&quot;: [ # Breakdown of the most frequent domains called via HTTP by the creative.
                      { # The number of HTTP calls made to the given domain.
                        &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        &quot;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                      },
                    ],
                    &quot;totalHttpCallCount&quot;: 42, # The total number of HTTP calls made by the creative, including but not limited to the number of calls in the top_http_call_domains.
                  },
                  &quot;downloadSize&quot;: { # Total download size and URL-level download size breakdown for resources in a creative. # Total download size and URL-level download size breakdown for resources in a creative.
                    &quot;topUrlDownloadSizeBreakdowns&quot;: [ # Download size broken down by URLs with the top download size.
                      { # The URL-level breakdown for the download size.
                        &quot;downloadSizeKb&quot;: 42, # Download size of the URL in kilobytes.
                        &quot;normalizedUrl&quot;: &quot;A String&quot;, # The normalized URL with query parameters and fragment removed.
                      },
                    ],
                    &quot;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the creative.
                  },
                  &quot;httpCall&quot;: { # HTTP calls made by a creative that resulted in policy violations. # HTTP calls made by the creative that resulted in policy violations.
                    &quot;urls&quot;: [ # URLs of HTTP calls made by the creative.
                      &quot;A String&quot;,
                    ],
                  },
                  &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                    &quot;cookieNames&quot;: [ # Names of cookies that violate Google policies. For TOO_MANY_COOKIES policy, this will be the cookie names of top domains with the largest number of cookies. For other policies, this will be all the cookie names that violate the policy.
                      &quot;A String&quot;,
                    ],
                    &quot;maxCookieCount&quot;: 42, # The largest number of cookies set by a creative. If this field is set, cookie_names above will be set to the cookie names of top domains with the largest number of cookies. This field will only be set for TOO_MANY_COOKIES policy.
                  },
                },
              ],
              &quot;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              &quot;policyTopic&quot;: &quot;A String&quot;, # Policy topic this entry refers to. For example, &quot;ALCOHOL&quot;, &quot;TRADEMARKS_IN_AD_TEXT&quot;, or &quot;DESTINATION_NOT_WORKING&quot;. The set of possible policy topics is not fixed for a particular API version and may change at any time. Can be used to filter the response of the creatives.list method
            },
          ],
        },
        &quot;detectedAdvertisers&quot;: [ # Detected advertisers and brands.
          { # Detected advertiser and brand information.
            &quot;advertiserId&quot;: &quot;A String&quot;, # See https://storage.googleapis.com/adx-rtb-dictionaries/advertisers.txt for the list of possible values. Can be used to filter the response of the creatives.list method.
            &quot;advertiserName&quot;: &quot;A String&quot;, # Advertiser name. Can be used to filter the response of the creatives.list method.
            &quot;brandId&quot;: &quot;A String&quot;, # Detected brand ID or zero if no brand has been detected. See https://storage.googleapis.com/adx-rtb-dictionaries/brands.txt for the list of possible values. Can be used to filter the response of the creatives.list method.
            &quot;brandName&quot;: &quot;A String&quot;, # Brand name. Can be used to filter the response of the creatives.list method.
          },
        ],
        &quot;detectedAttributes&quot;: [ # Publisher-excludable attributes that were detected for this creative. Can be used to filter the response of the creatives.list method. If the `excluded_attribute` field of a [bid request](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) contains one of the attributes that were declared or detected for a given creative, and a bid is submitted with that creative, the bid will be filtered before the auction.
          &quot;A String&quot;,
        ],
        &quot;detectedClickThroughUrls&quot;: [ # The set of detected destination URLs for the creative. Can be used to filter the response of the creatives.list method.
          &quot;A String&quot;,
        ],
        &quot;detectedDomains&quot;: [ # The detected domains for this creative.
          &quot;A String&quot;,
        ],
        &quot;detectedLanguages&quot;: [ # The detected languages for this creative. The order is arbitrary. The codes are 2 or 5 characters and are documented at https://developers.google.com/adwords/api/docs/appendix/languagecodes. Can be used to filter the response of the creatives.list method.
          &quot;A String&quot;,
        ],
        &quot;detectedProductCategories&quot;: [ # Detected product categories, if any. See the ad-product-categories.txt file in the technical documentation for a list of IDs. Can be used to filter the response of the creatives.list method.
          42,
        ],
        &quot;detectedSensitiveCategories&quot;: [ # Detected sensitive categories, if any. Can be used to filter the response of the creatives.list method. See the ad-sensitive-categories.txt file in the technical documentation for a list of IDs. You should use these IDs along with the excluded-sensitive-category field in the bid request to filter your bids.
          42,
        ],
        &quot;detectedVendorIds&quot;: [ # IDs of the ad technology vendors that were detected to be used by this creative. See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt for possible values. Can be used to filter the response of the creatives.list method. If the `allowed_vendor_type` field of a [bid request](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) does not contain one of the vendor type IDs that were declared or detected for a given creative, and a bid is submitted with that creative, the bid will be filtered before the auction.
          42,
        ],
        &quot;lastStatusUpdate&quot;: &quot;A String&quot;, # The last time the creative status was updated. Can be used to filter the response of the creatives.list method.
        &quot;networkPolicyCompliance&quot;: { # Policy compliance of the creative for a transaction type or a region. # Policy compliance of this creative when bidding in open auction, private auction, or auction packages (outside of Russia and China).
          &quot;status&quot;: &quot;A String&quot;, # Serving status for the given transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Can be used to filter the response of the creatives.list method.
          &quot;topics&quot;: [ # Topics related to the policy compliance for this transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Topics may be present only if status is DISAPPROVED.
            { # Each policy topic entry will represent a violation of a policy topic for a creative, with the policy topic information and optional evidence for the policy violation.
              &quot;evidences&quot;: [ # Pieces of evidence associated with this policy topic entry.
                { # Evidence associated with a policy topic entry.
                  &quot;destinationNotCrawlable&quot;: { # Evidence that the creative&#x27;s destination URL was not crawlable by Google. # The creative&#x27;s destination URL was not crawlable by Google.
                    &quot;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    &quot;crawledUrl&quot;: &quot;A String&quot;, # Destination URL that was attempted to be crawled.
                    &quot;reason&quot;: &quot;A String&quot;, # Reason of destination not crawlable.
                  },
                  &quot;destinationNotWorking&quot;: { # Evidence of the creative&#x27;s destination URL not functioning properly or having been incorrectly set up. # The creative&#x27;s destination URL did not function properly or was incorrectly set up.
                    &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    &quot;expandedUrl&quot;: &quot;A String&quot;, # The full non-working URL.
                    &quot;httpError&quot;: 42, # HTTP error code (e.g. 404 or 5xx)
                    &quot;invalidPage&quot;: &quot;A String&quot;, # Page was crawled successfully, but was detected as either a page with no content or an error page.
                    &quot;lastCheckTime&quot;: &quot;A String&quot;, # Approximate time when the ad destination was last checked.
                    &quot;platform&quot;: &quot;A String&quot;, # Platform of the non-working URL.
                    &quot;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                    &quot;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                  },
                  &quot;destinationUrl&quot;: { # The full landing page URL of the destination. # URL of the actual landing page.
                    &quot;destinationUrl&quot;: &quot;A String&quot;, # The full landing page URL of the destination.
                  },
                  &quot;domainCall&quot;: { # Number of HTTP calls made by a creative, broken down by domain. # Number of HTTP calls made by the creative, broken down by domain.
                    &quot;topHttpCallDomains&quot;: [ # Breakdown of the most frequent domains called via HTTP by the creative.
                      { # The number of HTTP calls made to the given domain.
                        &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        &quot;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                      },
                    ],
                    &quot;totalHttpCallCount&quot;: 42, # The total number of HTTP calls made by the creative, including but not limited to the number of calls in the top_http_call_domains.
                  },
                  &quot;downloadSize&quot;: { # Total download size and URL-level download size breakdown for resources in a creative. # Total download size and URL-level download size breakdown for resources in a creative.
                    &quot;topUrlDownloadSizeBreakdowns&quot;: [ # Download size broken down by URLs with the top download size.
                      { # The URL-level breakdown for the download size.
                        &quot;downloadSizeKb&quot;: 42, # Download size of the URL in kilobytes.
                        &quot;normalizedUrl&quot;: &quot;A String&quot;, # The normalized URL with query parameters and fragment removed.
                      },
                    ],
                    &quot;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the creative.
                  },
                  &quot;httpCall&quot;: { # HTTP calls made by a creative that resulted in policy violations. # HTTP calls made by the creative that resulted in policy violations.
                    &quot;urls&quot;: [ # URLs of HTTP calls made by the creative.
                      &quot;A String&quot;,
                    ],
                  },
                  &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                    &quot;cookieNames&quot;: [ # Names of cookies that violate Google policies. For TOO_MANY_COOKIES policy, this will be the cookie names of top domains with the largest number of cookies. For other policies, this will be all the cookie names that violate the policy.
                      &quot;A String&quot;,
                    ],
                    &quot;maxCookieCount&quot;: 42, # The largest number of cookies set by a creative. If this field is set, cookie_names above will be set to the cookie names of top domains with the largest number of cookies. This field will only be set for TOO_MANY_COOKIES policy.
                  },
                },
              ],
              &quot;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              &quot;policyTopic&quot;: &quot;A String&quot;, # Policy topic this entry refers to. For example, &quot;ALCOHOL&quot;, &quot;TRADEMARKS_IN_AD_TEXT&quot;, or &quot;DESTINATION_NOT_WORKING&quot;. The set of possible policy topics is not fixed for a particular API version and may change at any time. Can be used to filter the response of the creatives.list method
            },
          ],
        },
        &quot;platformPolicyCompliance&quot;: { # Policy compliance of the creative for a transaction type or a region. # Policy compliance of this creative when bidding in Open Bidding (outside of Russia and China). For the list of platform policies, see: https://support.google.com/platformspolicy/answer/3013851.
          &quot;status&quot;: &quot;A String&quot;, # Serving status for the given transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Can be used to filter the response of the creatives.list method.
          &quot;topics&quot;: [ # Topics related to the policy compliance for this transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Topics may be present only if status is DISAPPROVED.
            { # Each policy topic entry will represent a violation of a policy topic for a creative, with the policy topic information and optional evidence for the policy violation.
              &quot;evidences&quot;: [ # Pieces of evidence associated with this policy topic entry.
                { # Evidence associated with a policy topic entry.
                  &quot;destinationNotCrawlable&quot;: { # Evidence that the creative&#x27;s destination URL was not crawlable by Google. # The creative&#x27;s destination URL was not crawlable by Google.
                    &quot;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    &quot;crawledUrl&quot;: &quot;A String&quot;, # Destination URL that was attempted to be crawled.
                    &quot;reason&quot;: &quot;A String&quot;, # Reason of destination not crawlable.
                  },
                  &quot;destinationNotWorking&quot;: { # Evidence of the creative&#x27;s destination URL not functioning properly or having been incorrectly set up. # The creative&#x27;s destination URL did not function properly or was incorrectly set up.
                    &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    &quot;expandedUrl&quot;: &quot;A String&quot;, # The full non-working URL.
                    &quot;httpError&quot;: 42, # HTTP error code (e.g. 404 or 5xx)
                    &quot;invalidPage&quot;: &quot;A String&quot;, # Page was crawled successfully, but was detected as either a page with no content or an error page.
                    &quot;lastCheckTime&quot;: &quot;A String&quot;, # Approximate time when the ad destination was last checked.
                    &quot;platform&quot;: &quot;A String&quot;, # Platform of the non-working URL.
                    &quot;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                    &quot;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                  },
                  &quot;destinationUrl&quot;: { # The full landing page URL of the destination. # URL of the actual landing page.
                    &quot;destinationUrl&quot;: &quot;A String&quot;, # The full landing page URL of the destination.
                  },
                  &quot;domainCall&quot;: { # Number of HTTP calls made by a creative, broken down by domain. # Number of HTTP calls made by the creative, broken down by domain.
                    &quot;topHttpCallDomains&quot;: [ # Breakdown of the most frequent domains called via HTTP by the creative.
                      { # The number of HTTP calls made to the given domain.
                        &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        &quot;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                      },
                    ],
                    &quot;totalHttpCallCount&quot;: 42, # The total number of HTTP calls made by the creative, including but not limited to the number of calls in the top_http_call_domains.
                  },
                  &quot;downloadSize&quot;: { # Total download size and URL-level download size breakdown for resources in a creative. # Total download size and URL-level download size breakdown for resources in a creative.
                    &quot;topUrlDownloadSizeBreakdowns&quot;: [ # Download size broken down by URLs with the top download size.
                      { # The URL-level breakdown for the download size.
                        &quot;downloadSizeKb&quot;: 42, # Download size of the URL in kilobytes.
                        &quot;normalizedUrl&quot;: &quot;A String&quot;, # The normalized URL with query parameters and fragment removed.
                      },
                    ],
                    &quot;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the creative.
                  },
                  &quot;httpCall&quot;: { # HTTP calls made by a creative that resulted in policy violations. # HTTP calls made by the creative that resulted in policy violations.
                    &quot;urls&quot;: [ # URLs of HTTP calls made by the creative.
                      &quot;A String&quot;,
                    ],
                  },
                  &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                    &quot;cookieNames&quot;: [ # Names of cookies that violate Google policies. For TOO_MANY_COOKIES policy, this will be the cookie names of top domains with the largest number of cookies. For other policies, this will be all the cookie names that violate the policy.
                      &quot;A String&quot;,
                    ],
                    &quot;maxCookieCount&quot;: 42, # The largest number of cookies set by a creative. If this field is set, cookie_names above will be set to the cookie names of top domains with the largest number of cookies. This field will only be set for TOO_MANY_COOKIES policy.
                  },
                },
              ],
              &quot;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              &quot;policyTopic&quot;: &quot;A String&quot;, # Policy topic this entry refers to. For example, &quot;ALCOHOL&quot;, &quot;TRADEMARKS_IN_AD_TEXT&quot;, or &quot;DESTINATION_NOT_WORKING&quot;. The set of possible policy topics is not fixed for a particular API version and may change at any time. Can be used to filter the response of the creatives.list method
            },
          ],
        },
        &quot;russiaPolicyCompliance&quot;: { # Policy compliance of the creative for a transaction type or a region. # The policy compliance of this creative in Russia. When approved or disapproved, this applies to both deals and open auction in Russia. When pending review, this creative is allowed to serve for deals but not for open auction.
          &quot;status&quot;: &quot;A String&quot;, # Serving status for the given transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Can be used to filter the response of the creatives.list method.
          &quot;topics&quot;: [ # Topics related to the policy compliance for this transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Topics may be present only if status is DISAPPROVED.
            { # Each policy topic entry will represent a violation of a policy topic for a creative, with the policy topic information and optional evidence for the policy violation.
              &quot;evidences&quot;: [ # Pieces of evidence associated with this policy topic entry.
                { # Evidence associated with a policy topic entry.
                  &quot;destinationNotCrawlable&quot;: { # Evidence that the creative&#x27;s destination URL was not crawlable by Google. # The creative&#x27;s destination URL was not crawlable by Google.
                    &quot;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    &quot;crawledUrl&quot;: &quot;A String&quot;, # Destination URL that was attempted to be crawled.
                    &quot;reason&quot;: &quot;A String&quot;, # Reason of destination not crawlable.
                  },
                  &quot;destinationNotWorking&quot;: { # Evidence of the creative&#x27;s destination URL not functioning properly or having been incorrectly set up. # The creative&#x27;s destination URL did not function properly or was incorrectly set up.
                    &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    &quot;expandedUrl&quot;: &quot;A String&quot;, # The full non-working URL.
                    &quot;httpError&quot;: 42, # HTTP error code (e.g. 404 or 5xx)
                    &quot;invalidPage&quot;: &quot;A String&quot;, # Page was crawled successfully, but was detected as either a page with no content or an error page.
                    &quot;lastCheckTime&quot;: &quot;A String&quot;, # Approximate time when the ad destination was last checked.
                    &quot;platform&quot;: &quot;A String&quot;, # Platform of the non-working URL.
                    &quot;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                    &quot;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                  },
                  &quot;destinationUrl&quot;: { # The full landing page URL of the destination. # URL of the actual landing page.
                    &quot;destinationUrl&quot;: &quot;A String&quot;, # The full landing page URL of the destination.
                  },
                  &quot;domainCall&quot;: { # Number of HTTP calls made by a creative, broken down by domain. # Number of HTTP calls made by the creative, broken down by domain.
                    &quot;topHttpCallDomains&quot;: [ # Breakdown of the most frequent domains called via HTTP by the creative.
                      { # The number of HTTP calls made to the given domain.
                        &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        &quot;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                      },
                    ],
                    &quot;totalHttpCallCount&quot;: 42, # The total number of HTTP calls made by the creative, including but not limited to the number of calls in the top_http_call_domains.
                  },
                  &quot;downloadSize&quot;: { # Total download size and URL-level download size breakdown for resources in a creative. # Total download size and URL-level download size breakdown for resources in a creative.
                    &quot;topUrlDownloadSizeBreakdowns&quot;: [ # Download size broken down by URLs with the top download size.
                      { # The URL-level breakdown for the download size.
                        &quot;downloadSizeKb&quot;: 42, # Download size of the URL in kilobytes.
                        &quot;normalizedUrl&quot;: &quot;A String&quot;, # The normalized URL with query parameters and fragment removed.
                      },
                    ],
                    &quot;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the creative.
                  },
                  &quot;httpCall&quot;: { # HTTP calls made by a creative that resulted in policy violations. # HTTP calls made by the creative that resulted in policy violations.
                    &quot;urls&quot;: [ # URLs of HTTP calls made by the creative.
                      &quot;A String&quot;,
                    ],
                  },
                  &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                    &quot;cookieNames&quot;: [ # Names of cookies that violate Google policies. For TOO_MANY_COOKIES policy, this will be the cookie names of top domains with the largest number of cookies. For other policies, this will be all the cookie names that violate the policy.
                      &quot;A String&quot;,
                    ],
                    &quot;maxCookieCount&quot;: 42, # The largest number of cookies set by a creative. If this field is set, cookie_names above will be set to the cookie names of top domains with the largest number of cookies. This field will only be set for TOO_MANY_COOKIES policy.
                  },
                },
              ],
              &quot;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              &quot;policyTopic&quot;: &quot;A String&quot;, # Policy topic this entry refers to. For example, &quot;ALCOHOL&quot;, &quot;TRADEMARKS_IN_AD_TEXT&quot;, or &quot;DESTINATION_NOT_WORKING&quot;. The set of possible policy topics is not fixed for a particular API version and may change at any time. Can be used to filter the response of the creatives.list method
            },
          ],
        },
      },
      &quot;dealIds&quot;: [ # Output only. IDs of all of the deals with which this creative has been used in bidding. Can be used to filter the response of the creatives.list method.
        &quot;A String&quot;,
      ],
      &quot;declaredAttributes&quot;: [ # All declared attributes for the ads that may be shown from this creative. Can be used to filter the response of the creatives.list method. If the `excluded_attribute` field of a [bid request](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto&quot;) contains one of the attributes that were declared or detected for a given creative, and a bid is submitted with that creative, the bid will be filtered before the auction.
        &quot;A String&quot;,
      ],
      &quot;declaredClickThroughUrls&quot;: [ # The set of declared destination URLs for the creative. Can be used to filter the response of the creatives.list method.
        &quot;A String&quot;,
      ],
      &quot;declaredRestrictedCategories&quot;: [ # All declared restricted categories for the ads that may be shown from this creative. Can be used to filter the response of the creatives.list method.
        &quot;A String&quot;,
      ],
      &quot;declaredVendorIds&quot;: [ # IDs for the declared ad technology vendors that may be used by this creative. See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt for possible values. Can be used to filter the response of the creatives.list method.
        42,
      ],
      &quot;html&quot;: { # HTML content for a creative. # An HTML creative.
        &quot;height&quot;: 42, # The height of the HTML snippet in pixels. Can be used to filter the response of the creatives.list method.
        &quot;snippet&quot;: &quot;A String&quot;, # The HTML snippet that displays the ad when inserted in the web page.
        &quot;width&quot;: 42, # The width of the HTML snippet in pixels. Can be used to filter the response of the creatives.list method.
      },
      &quot;impressionTrackingUrls&quot;: [ # The set of URLs to be called to record an impression.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the creative. Follows the pattern `buyers/{buyer}/creatives/{creative}`, where `{buyer}` represents the account ID of the buyer who owns the creative, and `{creative}` is the buyer-specific creative ID that references this creative in the bid response.
      &quot;native&quot;: { # Native content for a creative. # A native creative.
        &quot;advertiserName&quot;: &quot;A String&quot;, # The name of the advertiser or sponsor, to be displayed in the ad creative.
        &quot;appIcon&quot;: { # An image resource. You may provide a larger image than was requested, so long as the aspect ratio is preserved. # The app icon, for app download ads.
          &quot;height&quot;: 42, # Image height in pixels.
          &quot;url&quot;: &quot;A String&quot;, # The URL of the image.
          &quot;width&quot;: 42, # Image width in pixels.
        },
        &quot;body&quot;: &quot;A String&quot;, # A long description of the ad.
        &quot;callToAction&quot;: &quot;A String&quot;, # A label for the button that the user is supposed to click.
        &quot;clickLinkUrl&quot;: &quot;A String&quot;, # The URL that the browser/SDK will load when the user clicks the ad.
        &quot;clickTrackingUrl&quot;: &quot;A String&quot;, # The URL to use for click tracking.
        &quot;headline&quot;: &quot;A String&quot;, # A short title for the ad.
        &quot;image&quot;: { # An image resource. You may provide a larger image than was requested, so long as the aspect ratio is preserved. # A large image.
          &quot;height&quot;: 42, # Image height in pixels.
          &quot;url&quot;: &quot;A String&quot;, # The URL of the image.
          &quot;width&quot;: 42, # Image width in pixels.
        },
        &quot;logo&quot;: { # An image resource. You may provide a larger image than was requested, so long as the aspect ratio is preserved. # A smaller image, for the advertiser&#x27;s logo.
          &quot;height&quot;: 42, # Image height in pixels.
          &quot;url&quot;: &quot;A String&quot;, # The URL of the image.
          &quot;width&quot;: 42, # Image width in pixels.
        },
        &quot;priceDisplayText&quot;: &quot;A String&quot;, # The price of the promoted app including currency info.
        &quot;starRating&quot;: 3.14, # The app rating in the app store. Must be in the range [0-5].
        &quot;videoUrl&quot;: &quot;A String&quot;, # The URL to fetch a native video ad.
        &quot;videoVastXml&quot;: &quot;A String&quot;, # The contents of a VAST document for a native video ad.
      },
      &quot;restrictedCategories&quot;: [ # All restricted categories for the ads that may be shown from this creative.
        &quot;A String&quot;,
      ],
      &quot;version&quot;: 42, # Output only. The version of this creative. Version for a new creative is 1 and it increments during subsequent creative updates.
      &quot;video&quot;: { # Video content for a creative. # A video creative.
        &quot;videoMetadata&quot;: { # Video metadata for a creative. # Output only. Video metadata.
          &quot;duration&quot;: &quot;A String&quot;, # The duration of the ad. Can be used to filter the response of the creatives.list method.
          &quot;isValidVast&quot;: True or False, # Is this a valid VAST ad? Can be used to filter the response of the creatives.list method.
          &quot;isVpaid&quot;: True or False, # Is this a VPAID ad? Can be used to filter the response of the creatives.list method.
          &quot;mediaFiles&quot;: [ # The list of all media files declared in the VAST. If there are multiple VASTs in a wrapper chain, this includes the media files from the deepest one in the chain.
            { # Information about each media file in the VAST.
              &quot;bitrate&quot;: &quot;A String&quot;, # Bitrate of the video file, in Kbps. Can be used to filter the response of the creatives.list method.
              &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of this media file. Can be used to filter the response of the creatives.list method.
            },
          ],
          &quot;skipOffset&quot;: &quot;A String&quot;, # The minimum duration that the user has to watch before being able to skip this ad. If the field is not set, the ad is not skippable. If the field is set, the ad is skippable. Can be used to filter the response of the creatives.list method.
          &quot;vastVersion&quot;: &quot;A String&quot;, # The maximum VAST version across all wrapped VAST documents. Can be used to filter the response of the creatives.list method.
        },
        &quot;videoUrl&quot;: &quot;A String&quot;, # The URL to fetch a video ad.
        &quot;videoVastXml&quot;: &quot;A String&quot;, # The contents of a VAST document for a video ad. This document should conform to the VAST 2.0 or 3.0 standard.
      },
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass this value in the ListCreativesRequest.pageToken field in the subsequent call to the `ListCreatives` method to retrieve the next page of results.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="watch">watch(parent, body=None, x__xgafv=None)</code>
  <pre>Watches all creatives pertaining to a bidder. It is sufficient to invoke this endpoint once per bidder. A Pub/Sub topic will be created and notifications will be pushed to the topic when any of the bidder&#x27;s creatives change status. All of the bidder&#x27;s service accounts will have access to read from the topic. Subsequent invocations of this method will return the existing Pub/Sub configuration.

Args:
  parent: string, Required. To watch all creatives pertaining to the bidder and all its child seat accounts, the bidder must follow the pattern `bidders/{bidderAccountId}`. (required)
  body: object, The request body.
    The object takes the form of:

{ # A request to receive push notifications when any of the creatives belonging to the bidder changes status.
}

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

Returns:
  An object of the form:

    { # A response for the request to receive push notification when a bidder&#x27;s creatives change status.
  &quot;subscription&quot;: &quot;A String&quot;, # The Pub/Sub subscription that can be used to pull creative status notifications. This would be of the format `projects/{project_id}/subscriptions/{subscription_id}`. Subscription is created with pull delivery. All service accounts belonging to the bidder will have read access to this subscription. Subscriptions that are inactive for more than 90 days will be disabled. Please use watchCreatives to re-enable the subscription.
  &quot;topic&quot;: &quot;A String&quot;, # The Pub/Sub topic that will be used to publish creative serving status notifications. This would be of the format `projects/{project_id}/topics/{topic_id}`.
}</pre>
</div>

</body></html>