# AdSense Policy Grader (`monetize_more/adsense-policy-grader`) Actor

The AdSense Policy Grader by MonetizeMore (a Google Certified Publishing Partner) is an enterprise-grade compliance scraper. It performs a deep, 79-point audit of any domain to detect AdSense policy violations, invalid traffic (IVT) risks and ad placement errors before Google penalizes your account.

- **URL**: https://apify.com/monetize\_more/adsense-policy-grader.md
- **Developed by:** [Monetize More](https://apify.com/monetize_more) (community)
- **Categories:**
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $19,000.00 / 1,000 successful api outputs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## AdSense Policy Grader

The **AdSense Policy Grader** by MonetizeMore (a Google Certified Publishing Partner) is an enterprise-grade compliance scraper. It performs a deep, 79-point audit of any domain to detect AdSense policy violations, invalid traffic (IVT) risks and ad placement errors before Google penalizes your account.

Instead of manually reviewing pages, this Actor runs asynchronously to crawl your target site and sends the analysis response via email.

### Why automate with this Actor?

- **Proactive Account Protection:** Catch layout shifts, ad stacking and forbidden keywords before they trigger Google ad serving limits or account suspensions.
- **Stop Manual Compliance Audit:** Stop manually analyzing your site for compliance issues. Extract granular compliance data (severity, issue type, examples).
- **Publisher Lead QA:** Automatically audit massive domain portfolios or trigger a scan every time a publisher signs up to automatically pass or reject the lead based on your rules.

### The 79-Point Enterprise Audit

AdSense Policy Grader evaluates your domain against Google's strict publisher policies, checking 79 distinct potential failure points, including:

- **Ad Placement & Density:** Detects ad stacking, intrusive interstitials and content-to-ad ratio violations.
- **Invalid Traffic (IVT) Triggers:** Flags hidden zero-pixel ad units, auto-refresh abuse and unnatural layout shifts that cause accidental clicks.
- **Technical Compliance:** Validates `ads.txt` formatting, `robots.txt` configuration and mandatory privacy policy links.
- **Content Violations:** Scans for prohibited keywords and restricted content categories across the crawled pages.

### Pricing: Why this is a Premium Tool

This Actor operates on a **Pay-per-result** model, priced at **$19.00 per domain audited**

Why the premium price point? The AdSense Policy Grader is not a simple HTML scraper. It is a highly sophisticated, AI-driven compliance engine that mimics Google's own auditing behaviors to protect your ad revenue.

A single domain audit takes 30 to 60 minutes of intensive server compute and costs us roughly $5.00 - $7.00 in raw AI processing power alone. During a scan, this Actor:

- **Deploys AI & LLMs:** Analyzes page content contextually to detect nuanced policy violations (like borderline restricted content or sensitive topics) that simple keyword matching misses.
- **Executes Visual Emulations:** Spins up headless browsers to measure exact pixel overlaps, hidden ad units, and Cumulative Layout Shifts (CLS) that trigger accidental clicks.
- **Simulates Live Traffic:** Interacts with the page to uncover auto-refresh abuse, pop-under traps, and Invalid Traffic (IVT) risks.
- **Checks Secret Violations:** Incorporates trade secret knowledge into the checks that have been discovered over the 10+ years that MonetizeMore has been partnered with Google. Not all policy violations are listed on the Google T\&Cs.

We built this tool to do the heavy lifting of an enterprise Ad Ops & Compliance team that took us over a decade for us to accumulate this insider knowledge. Spending $19 to automate a 79-point AI audit is the most cost-effective insurance policy against losing thousands of dollars to an AdSense account termination.

### Input Configuration

The Actor accepts the following parameters:

| Field | Required | Description |
|---|---|---|
| `domain` | yes | The domain to screen. |
| `email` | yes | Where we send the report. |

```json
{
  "domain": "example.com",
  "email": "you@example.com"
}
```

### How long it takes

**About an hour.** The scan crawls and analyses up to 150 pages, so it isn't instant.

This run finishes in a few seconds. That's expected. It confirms the scan has started,
then the scan continues on our side and the report is emailed when it's done.

### Output

Because the run finishes before the scan does, the dataset holds a receipt rather than the
report:

```json
{
  "domain": "example.com",
  "email": "you@example.com",
  "status": "triggered",
  "requested_at": "2026-09-01T14:22:10.482913+00:00",
  "dag_run_id": "example.com_2026-09-01T14:22:10Z_apify",
  "message": "A deep AI driven AdSense policy analysis of example.com has been initiated. Sit tight, the analysis typically takes 60 minutes per domain. The report will be emailed to you@example.com when it finishes."
}
```

**The report itself arrives by email**, as a PDF. If it hasn't shown up after a couple of
hours, check your spam folder, then get in touch and quote the `dag_run_id`.

### Support

Questions or a report that didn't arrive: support@monetizemore.com

Built by [MonetizeMore](https://www.monetizemore.com).

# Actor input Schema

## `domain` (type: `string`):

The domain to screen for ad policy compliance issues. A full URL is fine, we'll use its domain.

## `email` (type: `string`):

Where we send the report. The scan takes a few minutes and the report arrives by email once it's done.

## Actor input object example

```json
{
  "domain": "example.com"
}
```

# Actor output Schema

## `receipt` (type: `string`):

Confirmation that the scan was accepted, including the reference to quote if the report does not arrive.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "domain": "example.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("monetize_more/adsense-policy-grader").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "domain": "example.com" }

# Run the Actor and wait for it to finish
run = client.actor("monetize_more/adsense-policy-grader").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "domain": "example.com"
}' |
apify call monetize_more/adsense-policy-grader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,monetize_more/adsense-policy-grader"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/OtFaFfEcM5lRKxSyP/builds/zzwj7RhBeNQXq6b2g/openapi.json
