<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="adexperiencereport_v1.html">Ad Experience Report API</a> . <a href="adexperiencereport_v1.sites.html">sites</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a site's Ad Experience Report summary.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets a site&#x27;s Ad Experience Report summary.

Args:
  name: string, Required. The name of the site whose summary to get, e.g.
`sites/http%3A%2F%2Fwww.google.com%2F`.

Format: `sites/{site}` (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for GetSiteSummary.
    &quot;mobileSummary&quot;: { # A site&#x27;s Ad Experience Report summary on a single platform. # The site&#x27;s Ad Experience Report summary on mobile.
      &quot;betterAdsStatus&quot;: &quot;A String&quot;, # The site&#x27;s Ad Experience Report status on this platform.
      &quot;underReview&quot;: True or False, # Whether the site is currently under review on this platform.
      &quot;filterStatus&quot;: &quot;A String&quot;, # The site&#x27;s [enforcement
          # status](https://support.google.com/webtools/answer/7308033) on this
          # platform.
      &quot;lastChangeTime&quot;: &quot;A String&quot;, # The time at which the site&#x27;s status last changed on this platform.
      &quot;region&quot;: [ # The site&#x27;s regions on this platform.
          #
          # No longer populated, because there is no longer any semantic difference
          # between sites in different regions.
        &quot;A String&quot;,
      ],
      &quot;reportUrl&quot;: &quot;A String&quot;, # A link to the full Ad Experience Report for the site on this platform..
          #
          # Not set in
          # ViolatingSitesResponse.
          #
          # Note that you must complete the [Search Console verification
          # process](https://support.google.com/webmasters/answer/9008080) for the site
          # before you can access the full report.
      &quot;enforcementTime&quot;: &quot;A String&quot;, # The time at which
          # [enforcement](https://support.google.com/webtools/answer/7308033) against
          # the site began or will begin on this platform.
          #
          # Not set when the
          # filter_status
          # is OFF.
    },
    &quot;reviewedSite&quot;: &quot;A String&quot;, # The name of the reviewed site, e.g. `google.com`.
    &quot;desktopSummary&quot;: { # A site&#x27;s Ad Experience Report summary on a single platform. # The site&#x27;s Ad Experience Report summary on desktop.
      &quot;betterAdsStatus&quot;: &quot;A String&quot;, # The site&#x27;s Ad Experience Report status on this platform.
      &quot;underReview&quot;: True or False, # Whether the site is currently under review on this platform.
      &quot;filterStatus&quot;: &quot;A String&quot;, # The site&#x27;s [enforcement
          # status](https://support.google.com/webtools/answer/7308033) on this
          # platform.
      &quot;lastChangeTime&quot;: &quot;A String&quot;, # The time at which the site&#x27;s status last changed on this platform.
      &quot;region&quot;: [ # The site&#x27;s regions on this platform.
          #
          # No longer populated, because there is no longer any semantic difference
          # between sites in different regions.
        &quot;A String&quot;,
      ],
      &quot;reportUrl&quot;: &quot;A String&quot;, # A link to the full Ad Experience Report for the site on this platform..
          #
          # Not set in
          # ViolatingSitesResponse.
          #
          # Note that you must complete the [Search Console verification
          # process](https://support.google.com/webmasters/answer/9008080) for the site
          # before you can access the full report.
      &quot;enforcementTime&quot;: &quot;A String&quot;, # The time at which
          # [enforcement](https://support.google.com/webtools/answer/7308033) against
          # the site began or will begin on this platform.
          #
          # Not set when the
          # filter_status
          # is OFF.
    },
  }</pre>
</div>

</body></html>