<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.buyers.html">buyers</a> . <a href="realtimebidding_v1.buyers.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="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a creative.</p>
<p class="toc_element">
  <code><a href="#get">get(name, view=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a creative.</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="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a creative.</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="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a creative.

Args:
  parent: string, Required. The name of the parent buyer that the new creative belongs to that must follow the pattern `buyers/{buyerAccountId}`, where `{buyerAccountId}` represents the account ID of the buyer who owns a creative. For a bidder accessing creatives on behalf of a child seat buyer, `{buyerAccountId}` should represent the account ID of the child seat buyer. (required)
  body: object, The request body.
    The object takes the form of:

{ # 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.
  },
}

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

Returns:
  An object of the form:

    { # 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.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, view=None, x__xgafv=None)</code>
  <pre>Gets a creative.

Args:
  name: string, Required. Name of the creative to retrieve. See creative.name. (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.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, pageSize=None, pageToken=None, view=None, x__xgafv=None)</code>
  <pre>Lists creatives.

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

Returns:
  An object of the form:

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

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

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

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

<div class="method">
    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates a creative.

Args:
  name: string, 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. (required)
  body: object, The request body.
    The object takes the form of:

{ # 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.
  },
}

  updateMask: string, Field mask to use for partial in-place updates.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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.
  },
}</pre>
</div>

</body></html>