<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.
  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>