<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, view=None, filter=None, pageToken=None, pageSize=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, view=None, filter=None, pageToken=None, pageSize=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)
  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.
  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;
  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.
  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.
  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;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.
    &quot;creatives&quot;: [ # The list of creatives.
      { # A creative and its classification data.
        &quot;agencyId&quot;: &quot;A String&quot;, # The agency ID for this creative.
        &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;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;callToAction&quot;: &quot;A String&quot;, # A label for the button that the user is supposed to click.
          &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;width&quot;: 42, # Image width in pixels.
            &quot;height&quot;: 42, # Image height in pixels.
            &quot;url&quot;: &quot;A String&quot;, # The URL of the image.
          },
          &quot;videoUrl&quot;: &quot;A String&quot;, # The URL to fetch a native video ad.
          &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;width&quot;: 42, # Image width in pixels.
            &quot;height&quot;: 42, # Image height in pixels.
            &quot;url&quot;: &quot;A String&quot;, # The URL of the image.
          },
          &quot;headline&quot;: &quot;A String&quot;, # A short title for the ad.
          &quot;starRating&quot;: 3.14, # The app rating in the app store. Must be in the range [0-5].
          &quot;body&quot;: &quot;A String&quot;, # A long description of the ad.
          &quot;clickTrackingUrl&quot;: &quot;A String&quot;, # The URL to use for click tracking.
          &quot;clickLinkUrl&quot;: &quot;A String&quot;, # The URL that the browser/SDK will load when the user clicks the ad.
          &quot;priceDisplayText&quot;: &quot;A String&quot;, # The price of the promoted app including currency info.
          &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;width&quot;: 42, # Image width in pixels.
            &quot;height&quot;: 42, # Image height in pixels.
            &quot;url&quot;: &quot;A String&quot;, # The URL of the image.
          },
        },
        &quot;video&quot;: { # Video content for a creative. # A video creative.
          &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;videoMetadata&quot;: { # Video metadata for a creative. # Output only. Video metadata.
            &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;duration&quot;: &quot;A String&quot;, # The duration of the 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;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;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;videoUrl&quot;: &quot;A String&quot;, # The URL to fetch a video ad.
        },
        &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;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;adChoicesDestinationUrl&quot;: &quot;A String&quot;, # The link to AdChoices destination page. This is only supported for native ads.
        &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;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;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;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;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;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;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;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;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    },
                    &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                      &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;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;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;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                      &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;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                      &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    },
                    &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;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;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the 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;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;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                          &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        },
                      ],
                      &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;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              },
            ],
          },
          &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;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;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;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;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    },
                    &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                      &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;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;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;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                      &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;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                      &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    },
                    &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;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;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the 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;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;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                          &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        },
                      ],
                      &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;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              },
            ],
          },
          &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;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;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;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;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    },
                    &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                      &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;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;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;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                      &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;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                      &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    },
                    &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;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;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the 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;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;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                          &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        },
                      ],
                      &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;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              },
            ],
          },
          &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;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;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;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;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;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;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    },
                    &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                      &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;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;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;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                      &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;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                      &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    },
                    &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;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;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the 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;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;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                          &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        },
                      ],
                      &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;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              },
            ],
          },
          &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;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;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;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;crawlTime&quot;: &quot;A String&quot;, # Approximate time of the crawl.
                    },
                    &quot;httpCookie&quot;: { # Evidence for HTTP cookie-related policy violations. # Evidence for HTTP cookie-related policy violations.
                      &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;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;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;redirectionError&quot;: &quot;A String&quot;, # HTTP redirect chain error.
                      &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;urlRejected&quot;: &quot;A String&quot;, # Rejected because of malformed URLs or invalid requests.
                      &quot;dnsError&quot;: &quot;A String&quot;, # DNS lookup errors.
                    },
                    &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;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;totalDownloadSizeKb&quot;: 42, # Total download size (in kilobytes) for all the resources in the 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;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;httpCallCount&quot;: 42, # Number of HTTP calls made to the domain.
                          &quot;domain&quot;: &quot;A String&quot;, # The domain name.
                        },
                      ],
                      &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;helpCenterUrl&quot;: &quot;A String&quot;, # URL of the help center article describing this policy topic.
              },
            ],
          },
          &quot;detectedDomains&quot;: [ # The detected domains for this creative.
            &quot;A String&quot;,
          ],
          &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;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;detectedAdvertisers&quot;: [ # Detected advertisers and brands.
            { # Detected advertiser and brand information.
              &quot;brandName&quot;: &quot;A String&quot;, # Brand 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;advertiserName&quot;: &quot;A String&quot;, # Advertiser name. Can be used to filter the response of the creatives.list method.
              &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;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;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;html&quot;: { # HTML content for a creative. # An HTML creative.
          &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;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;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;impressionTrackingUrls&quot;: [ # The set of URLs to be called to record an impression.
          &quot;A String&quot;,
        ],
        &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;apiUpdateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of the creative via API.
        &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;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;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;restrictedCategories&quot;: [ # All restricted categories for the ads that may be shown from this creative.
          &quot;A String&quot;,
        ],
      },
    ],
  }</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>