canonical: https://jentic.com/apis/googleapis.com/adexperiencereport

# Google Ad Experience Report API

The Ad Experience Report API exposes Google's findings on sites that show ads violating the Better Ads Standards - interruptions like full-page interstitials, auto-playing video with sound, and prestitial countdown ads. It returns the ad-experience status (Failing, Passing, or Not Reviewed) for a single site and a list of all sites currently failing the report. Publishers and ad-quality teams use it to monitor whether their domains are at risk of having Chrome filter ads on them.

## For AI agents

Check whether a site is failing Google's Ad Experience Report and list all currently violating domains, so an agent can flag sites at risk of Chrome ad filtering.

## Scope

Does not handle ad creative review, Better Ads Standards specification, or Chrome enforcement actions - use for reading ad experience status on publisher sites only.

## Capabilities

- Read the desktop and mobile ad experience status for a specific site as scored by Google
- List every site that is failing the Ad Experience Report at the time of the call
- Surface the report URL where a site owner can review violations and request re-review
- Distinguish between desktop and mobile findings on the same domain
- Power compliance dashboards that flag publisher domains before Chrome enables ad filtering

## Use cases

### Publisher Compliance Monitoring

An ad operations team checks the Ad Experience Report status of every domain in its portfolio on a daily schedule. The sites.get endpoint returns the desktopSummary and mobileSummary for a single site, and a Failing result triggers an internal ticket so the team can investigate offending creatives before Chrome begins filtering ads on the domain.

Example prompt: For each domain in the portfolio list, call sites.get and emit a ticket whenever desktopSummary.betterAdsStatus or mobileSummary.betterAdsStatus changes from PASSING to FAILING.

### Industry-wide Violation Tracking

A research team pulls the full list of sites currently failing the Ad Experience Report to study trends in annoying ad practices. The violatingSites.list endpoint returns every flagged domain in a single call, which the team joins with traffic and category data to produce an industry report.

Example prompt: Call violatingSites.list, store the returned domains in a database, and compute the count of newly flagged sites since the previous run.

### AI Agent Ad Quality Triage

An AI agent embedded in an ad-ops console uses Jentic to call the Ad Experience Report API whenever a publisher onboards a new domain. The agent returns the current desktop and mobile status, the report review URL, and a recommendation for whether the domain is safe to monetise immediately.

Example prompt: Given a new publisher domain, call sites.get and reply with desktopSummary.betterAdsStatus, mobileSummary.betterAdsStatus, the reportUrl, and a one-line recommendation.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v1/violatingSites | List all sites failing the Ad Experience Report |
| GET | /v1/{+name} | Get the ad experience status for a single site |

## Key resources

- **Sites** — Get the desktop and mobile ad experience status for a single site
- **ViolatingSites** — List all sites currently failing the Ad Experience Report

## Why Jentic

- **Setup:** Wiring the Ad Experience Report API by hand means configuring Google OAuth 2.0, exchanging a refresh token for short-lived access tokens, and pointing read calls at the adexperiencereport.googleapis.com host. Through Jentic you install once, import the Ad Experience Report API from the API Directory, store the OAuth credential once, and your agent calls it.
- **Permission scoping:** This API is read-only, exposing site status (/v1/{+name}) and a violating-sites list, so you limit the agent to the operations it needs, such as reading a site's ad experience report or listing violating sites. Both operations only return status, so no configuration or enforcement action is possible through it.
- **Credential handling:** Your Google OAuth credential is stored once, encrypted, by your own Jentic One instance and exchanged for short-lived access tokens at execution time. The refresh token never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'check a site's ad experience status' or 'list violating sites', and Jentic returns the matching Ad Experience Report operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Abusive Experience Report API** — Companion API that flags sites with abusive experiences such as fake messages and unexpected redirects
- **Google Search Console API** — Verify ownership and read search performance for the same publisher domains
- **AdSense Management API** — Read AdSense earnings and ad unit data for the same publisher

## FAQ

### What authentication does the Ad Experience Report API use?

It uses Google OAuth 2.0 with the https://www.googleapis.com/auth/xapi.zoo scope. The site owner must have verified the property in Search Console under the same Google account. Jentic stores the refresh token in its encrypted vault and exchanges it for short-lived access tokens at request time.

### Can I check a site I do not own with the Ad Experience Report API?

The sites.get endpoint requires that the calling Google account is a verified owner of the site in Search Console. You can call violatingSites.list to read the full set of flagged domains regardless of ownership, but per-site detail is restricted to verified owners.

### What are the rate limits for the Ad Experience Report API?

Google does not publish a hard quota for this API and traffic is shared with the Search Console quota pool. In practice, the underlying review cycle runs daily, so polling sites.get more often than once per hour returns the same data - caching aggressively keeps quota usage low.

### How do I list all violating sites through Jentic?

Run jentic search 'list violating sites in ad experience report', load the violatingSites.list operation, and execute it. The agent receives a typed response containing every domain currently flagged with siteUrl, desktopSummary, mobileSummary, and the reportUrl for review.

### Is the Ad Experience Report API free?

Yes. The API is free to use under Google's standard API terms - there is no per-call charge. Quota usage counts against the project's shared Google APIs quota pool.

### Can I limit what my agent is allowed to do with the Ad Experience Report API?

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, so you can allow only the calls this workflow needs, such as reading a single site's ad experience status or listing the currently violating sites. The Ad Experience Report API is read-only, exposing just those two operations, so an agent can never change configuration or trigger an enforcement action through it. You can also scope which Google OAuth credential the agent uses and grant it just one of the two operations if that is all it should touch.
