# Google AdSense

```json
{
  "name": "Google AdSense",
  "slug": "google_adsense",
  "url": "https://composio.dev/toolkits/google_adsense",
  "markdown_url": "https://composio.dev/toolkits/google_adsense.md",
  "logo_url": "https://logos.composio.dev/api/google_adsense",
  "categories": [
    "advertising & marketing"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-14T05:31:07.520Z"
}
```

![Google AdSense logo](https://logos.composio.dev/api/google_adsense)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Google AdSense MCP or direct API to manage ad inventory, review policy issues, monitor payments, and analyze performance reports through natural language.

## Summary

Google AdSense is a platform for managing website advertising, payments, and performance reports.
It helps publishers monetize content and track ad revenue in one place.

## Categories

- advertising & marketing

## Toolkit Details

- Tools: 33

## Images

- Logo: https://logos.composio.dev/api/google_adsense

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for Google AdSense.
  - Setup:
    - Configure Oauth2 credentials for Google AdSense.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- List Google AdSense sites needing review
- Show AdSense earnings for last month
- Review recent AdSense policy issues

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `GOOGLE_ADSENSE_CREATE_AD_UNIT` | Create Ad Unit | Create a permanent DISPLAY ad unit under an AFC ad client. AdSense does not provide an ad-unit deletion method. This operation requires a Google Cloud project enabled for AdSense for Platforms. |
| `GOOGLE_ADSENSE_CREATE_CUSTOM_CHANNEL` | Create Custom Channel | Create a custom channel under an ad client. This operation requires a Google Cloud project enabled for AdSense for Platforms. |
| `GOOGLE_ADSENSE_DELETE_CUSTOM_CHANNEL` | Delete Custom Channel | Permanently delete a Google AdSense custom channel. This destructive operation requires a Google Cloud project enabled for AdSense for Platforms. |
| `GOOGLE_ADSENSE_GENERATE_REPORT` | Generate Report | Generate an ad hoc AdSense report as structured JSON rows. |
| `GOOGLE_ADSENSE_GENERATE_REPORT_CSV` | Generate Report CSV | Generate an ad hoc AdSense report and return its CSV text verbatim. |
| `GOOGLE_ADSENSE_GENERATE_SAVED_REPORT` | Generate Saved Report | Run a publisher-created saved report and return structured JSON rows. |
| `GOOGLE_ADSENSE_GENERATE_SAVED_REPORT_CSV` | Generate Saved Report CSV | Run a publisher-created saved AdSense report and return CSV text. |
| `GOOGLE_ADSENSE_GET_ACCOUNT` | Get Account | Return one AdSense account's state, setup tasks, timezone, and premium status. |
| `GOOGLE_ADSENSE_GET_AD_BLOCKING_RECOVERY_TAG` | Get Ad Blocking Recovery Tag | Return an account's ad blocking recovery tag and its optional error-protection code. |
| `GOOGLE_ADSENSE_GET_AD_CLIENT` | Get Ad Client | Return one ad client by its complete resource name. |
| `GOOGLE_ADSENSE_GET_AD_CLIENT_CODE` | Get Ad Client Code | Return standard and AMP AdSense code snippets for an AFC ad client. |
| `GOOGLE_ADSENSE_GET_AD_UNIT` | Get Ad Unit | Return one Google AdSense ad unit by its complete resource name. |
| `GOOGLE_ADSENSE_GET_AD_UNIT_CODE` | Get Ad Unit Code | Return the complete HTML code snippet for one Google AdSense ad unit. |
| `GOOGLE_ADSENSE_GET_CUSTOM_CHANNEL` | Get Custom Channel | Return one custom channel by its complete resource name. |
| `GOOGLE_ADSENSE_GET_POLICY_ISSUE` | Get Policy Issue | Return one AdSense policy issue and all of its enforcement details. |
| `GOOGLE_ADSENSE_GET_SAVED_REPORT` | Get Saved Report | Return one saved report's complete resource name and title. |
| `GOOGLE_ADSENSE_GET_SITE` | Get Site | Return one AdSense site by its complete resource name. |
| `GOOGLE_ADSENSE_GET_URL_CHANNEL` | Get URL Channel | Return one URL channel by its complete resource name. |
| `GOOGLE_ADSENSE_LIST_ACCOUNTS` | List Accounts | Return one page of AdSense accounts available to the connected user. |
| `GOOGLE_ADSENSE_LIST_AD_CLIENTS` | List Ad Clients | Return one page of ad clients available in an AdSense account. |
| `GOOGLE_ADSENSE_LIST_AD_UNIT_CUSTOM_CHANNELS` | List Ad Unit Custom Channels | Return one page of custom channels linked to an AdSense ad unit. |
| `GOOGLE_ADSENSE_LIST_AD_UNITS` | List Ad Units | Return one page of ad units owned by an AdSense ad client. |
| `GOOGLE_ADSENSE_LIST_ALERTS` | List Alerts | Return AdSense account alerts localized to an optional language. |
| `GOOGLE_ADSENSE_LIST_CHILD_ACCOUNTS` | List Child Accounts | Return one page of accounts directly managed by a parent AdSense account. |
| `GOOGLE_ADSENSE_LIST_CUSTOM_CHANNEL_AD_UNITS` | List Custom Channel Ad Units | Return one page of ad units linked to a custom channel. |
| `GOOGLE_ADSENSE_LIST_CUSTOM_CHANNELS` | List Custom Channels | Return one page of custom channels owned by an AdSense ad client. |
| `GOOGLE_ADSENSE_LIST_PAYMENTS` | List Payments | Return paid and unpaid payment records available for an AdSense account. |
| `GOOGLE_ADSENSE_LIST_POLICY_ISSUES` | List Policy Issues | Return one page of policy issues affecting an account or its AFP children. |
| `GOOGLE_ADSENSE_LIST_SAVED_REPORTS` | List Saved Reports | Return one page of publisher-created saved reports for an account. |
| `GOOGLE_ADSENSE_LIST_SITES` | List Sites | Return one page of sites available in an AdSense account. |
| `GOOGLE_ADSENSE_LIST_URL_CHANNELS` | List URL Channels | Return one page of active URL channels owned by an AdSense ad client. |
| `GOOGLE_ADSENSE_UPDATE_AD_UNIT` | Update Ad Unit | Replace all writable settings of a DISPLAY ad unit. This operation requires a Google Cloud project enabled for AdSense for Platforms. |
| `GOOGLE_ADSENSE_UPDATE_CUSTOM_CHANNEL` | Update Custom Channel | Replace all writable settings of a custom channel. This operation requires a Google Cloud project enabled for AdSense for Platforms. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Google AdSense
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["google_adsense"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["google_adsense"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Google AdSense tools with your agent

Send a request, execute the Google AdSense tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List my Google AdSense sites and show their approval status"}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List my Google AdSense sites and show their approval status" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Google AdSense and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["google_adsense"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["google_adsense"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Google AdSense request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Google AdSense tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List my Google AdSense sites and show their approval status")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List my Google AdSense sites and show their approval status",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Google AdSense Integration

- Supports both Google AdSense MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Google AdSense data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Google AdSense access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Google AdSense
- Scoped, least privilege access to Google AdSense resources
- Full audit trail of agent actions to support review and compliance

## Use Google AdSense with any AI Agent Framework

Choose a framework you want to connect Google AdSense with:

- [ChatGPT](https://composio.dev/toolkits/google_adsense/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/google_adsense/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/google_adsense/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/google_adsense/framework/atomic-agent)

## Related Toolkits

- [Metaads](https://composio.dev/toolkits/metaads) - Metaads is Meta's official Ads API that lets you manage, analyze, and optimize your Facebook and Instagram ad campaigns. Streamline ad operations and gain deeper insights with robust automation.
- [Adrapid](https://composio.dev/toolkits/adrapid) - Adrapid is a platform for rapid creation of digital marketing visuals using templates. It streamlines design workflows for banners, images, and HTML5 content with automation.
- [AdRoll](https://composio.dev/toolkits/adroll) - AdRoll is a digital marketing platform for managing advertising campaigns, audiences, and account-based marketing. It helps marketers retarget customers across channels and measure performance.
- [Adtraction](https://composio.dev/toolkits/adtraction) - Adtraction is an affiliate marketing platform for partner programs, tracking links, transactions, commissions, statistics, and payments. It helps advertisers and publishers manage performance marketing with clear reporting and payout workflows.
- [Adyntel](https://composio.dev/toolkits/adyntel) - Adyntel is an API that retrieves LinkedIn ads for any company using a domain or LinkedIn Page ID. Easily access competitive ad intelligence to power your marketing workflows.
- [Beaconstac](https://composio.dev/toolkits/beaconstac) - Beaconstac is a platform for creating and managing QR codes and proximity beacons. It helps businesses engage customers and track marketing performance with powerful analytics.
- [Bouncify](https://composio.dev/toolkits/bouncify) - Bouncify is an email verification service for single addresses and bulk lists. Use it to reduce bounces, protect sender reputation, and track verification credits.
- [Bulk Email Checker](https://composio.dev/toolkits/bulk_email_checker) - Bulk Email Checker is an email verification service for checking address validity, mailbox status, domains, and mail-server signals. It helps reduce bounces, spot risky emails, and keep outreach lists cleaner before you send.
- [Campaign cleaner](https://composio.dev/toolkits/campaign_cleaner) - Campaign cleaner is an email campaign optimization tool that boosts compatibility and deliverability across email clients. It helps marketers get better results by cleaning, enhancing, and ensuring high performance for every campaign.
- [Deadline funnel](https://composio.dev/toolkits/deadline_funnel) - Deadline Funnel lets you create personalized deadlines and timers for your marketing campaigns. It helps marketers boost conversions by adding authentic urgency to offers.
- [DeBounce](https://composio.dev/toolkits/debounce) - DeBounce is an email verification service for checking address validity, deliverability, and risk. It helps keep contact lists clean so your campaigns reach real inboxes.
- [Easy Email Verification](https://composio.dev/toolkits/easy_email_verification) - Easy Email Verification is an email validation service for checking single addresses and bulk lists. Use it to reduce bounces, clean contact data, and protect sender reputation.
- [Elastic Email](https://composio.dev/toolkits/elastic_email) - Elastic Email is an email delivery and marketing platform for transactional emails, campaigns, contacts, and reporting. Use it to send reliable emails, manage audiences, verify addresses, and track performance.
- [Fairing](https://composio.dev/toolkits/fairing) - Fairing is a post-purchase survey and attribution platform for ecommerce brands. It helps teams measure which marketing channels, campaigns, and customer touchpoints drive purchases.
- [GoDaddy MCP](https://composio.dev/toolkits/godaddy_mcp) - GoDaddy MCP is a domain discovery toolkit for checking availability and generating AI-powered name ideas. Use it to move from rough business keywords to practical domain options fast.
- [Google Ads](https://composio.dev/toolkits/googleads) - Google Ads is Google's online advertising platform for creating, managing, and optimizing digital campaigns. It helps businesses reach targeted customers and maximize return on ad spend.
- [Handwrite.io](https://composio.dev/toolkits/handwrite) - Handwrite.io is a direct mail service for creating physical handwritten card orders. It helps teams send personal cards with selectable handwriting, stationery, and tracking.
- [Inblog](https://composio.dev/toolkits/inblog) - Inblog is an AI-powered blogging platform for posts, authors, tags, redirects, design settings, analytics, and lead forms. Use it to manage SEO-focused content, measure performance, and capture blog leads in one place.
- [Instantly](https://composio.dev/toolkits/instantly) - Instantly is a platform for automating cold email outreach, managing leads, and optimizing deliverability. Get better results from email campaigns with minimal manual effort.
- [Invalid Bounce](https://composio.dev/toolkits/invalid_bounce) - Invalid Bounce is an email verification service with a bulk verification API. Use it to clean email lists, reduce bounces, and protect sender reputation.

## Frequently Asked Questions

### Do I need my own developer credentials to use Google AdSense with Composio?

Yes, Google AdSense requires you to configure your own OAuth credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
