> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Ad Manager Integration for AI Agents & Workflows

> Programmatic advertising platform for managing ad inventory, reporting, and campaign delivery

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img className="block dark:hidden" src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/google-ad-manager-light.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=7f29cfc76d195a560fe73f30c13b774e" alt="Google Ad Manager logo" width="72" height="72" data-path="logos/google-ad-manager-light.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/google-ad-manager-dark.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=8e2d3b624b45d345d0130f905136fcdb" alt="Google Ad Manager logo" width="72" height="72" data-path="logos/google-ad-manager-dark.svg" />

## Overview

Add **Google Ad Manager** to any ModuleX agent or workflow. Programmatic advertising platform for managing ad inventory, reporting, and campaign delivery via the Google Ad Manager REST API (`admanager.googleapis.com/v1`).

<Info>
  **Categories**: Marketing & Advertising · Advertising · Marketing · **Auth**: OAuth2 · **Actions**: 2
</Info>

## Authentication

### OAuth2 Authentication

Connect using Google OAuth (recommended)

#### Required Credentials

| Field         | Description                    | Required | Format |
| ------------- | ------------------------------ | -------- | ------ |
| Client ID     | Google OAuth App Client ID     | Yes      | `-`    |
| Client Secret | Google OAuth App Client Secret | Yes      | `-`    |

#### OAuth Configuration

* **Authorization URL**: `https://accounts.google.com/o/oauth2/v2/auth`
* **Token URL**: `https://oauth2.googleapis.com/token`
* **Scopes**: `https://www.googleapis.com/auth/admanager`

## Available Actions

<AccordionGroup>
  <Accordion title="create_report — Create a report in Google Ad Manager">
    ### Parameters

    <ResponseField name="parent" type="string" required>
      The parent resource where this Report will be created. Format: networks/\{networkCode}
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Identifier. The resource name of the report. Format: networks/\{networkCode}/reports/\{reportId}
    </ResponseField>

    <ResponseField name="visibility" type="string" required>
      The visibility of the report. Allowed values: HIDDEN, DRAFT, SAVED
    </ResponseField>

    <ResponseField name="dimensions" type="array" required>
      The list of dimension identifiers to report on
    </ResponseField>

    <ResponseField name="metrics" type="array" required>
      The list of metric identifiers to report on
    </ResponseField>

    <ResponseField name="report_type" type="string" required>
      The type of this report. Allowed values: REPORT\_TYPE\_UNSPECIFIED, HISTORICAL
    </ResponseField>

    <ResponseField name="date_range" type="string" required>
      The date range type of this report. Allowed values: fixed, relative
    </ResponseField>

    <ResponseField name="display_name" type="string">
      The display name of the report
    </ResponseField>

    <ResponseField name="schedule_options" type="object">
      The options for a scheduled report (ScheduleOptions schema)
    </ResponseField>

    <ResponseField name="filters" type="array">
      The filters for this report. Each element is a JSON object conforming to the Filter schema
    </ResponseField>

    <ResponseField name="time_zone" type="string">
      The time zone for the date range (IANA format). Defaults to publisher time zone
    </ResponseField>

    <ResponseField name="currency_code" type="string">
      ISO 4217 currency code. Defaults to publisher currency code
    </ResponseField>

    <ResponseField name="custom_dimension_key_ids" type="array">
      Custom Dimension keys for CUSTOM\_DIMENSION\_\* dimensions
    </ResponseField>

    <ResponseField name="line_item_custom_field_ids" type="array">
      Custom field IDs for LINE\_ITEM\_CUSTOM\_FIELD\_\* dimensions
    </ResponseField>

    <ResponseField name="order_custom_field_ids" type="array">
      Custom field IDs for ORDER\_CUSTOM\_FIELD\_\* dimensions
    </ResponseField>

    <ResponseField name="creative_custom_field_ids" type="array">
      Custom field IDs for CREATIVE\_CUSTOM\_FIELD\_\* dimensions
    </ResponseField>

    <ResponseField name="time_period_column" type="string">
      Time period column for comparison. Allowed values: TIME\_PERIOD\_COLUMN\_UNSPECIFIED, TIME\_PERIOD\_COLUMN\_DATE, TIME\_PERIOD\_COLUMN\_WEEK, TIME\_PERIOD\_COLUMN\_MONTH, TIME\_PERIOD\_COLUMN\_QUARTER
    </ResponseField>

    <ResponseField name="flags" type="array">
      List of flags for this report (Flag schema objects)
    </ResponseField>

    <ResponseField name="sorts" type="array">
      Default sorts for this report (Sort schema objects)
    </ResponseField>

    <ResponseField name="start_date_year" type="integer">
      Year of the start date (1-9999). Required when date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="start_date_month" type="integer">
      Month of the start date (1-12). Required when date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="start_date_day" type="integer">
      Day of the start date (1-31). Required when date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="end_date_year" type="integer">
      Year of the end date (1-9999). Required when date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="end_date_month" type="integer">
      Month of the end date (1-12). Required when date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="end_date_day" type="integer">
      Day of the end date (1-31). Required when date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="relative" type="string">
      Relative date range identifier (e.g. TODAY, YESTERDAY, LAST\_7\_DAYS). Required when date\_range is 'relative'
    </ResponseField>

    <ResponseField name="comparison_date_range" type="string">
      Comparison date range type. Allowed values: fixed, relative
    </ResponseField>

    <ResponseField name="comparison_start_date_year" type="integer">
      Year of comparison start date. Required when comparison\_date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="comparison_start_date_month" type="integer">
      Month of comparison start date. Required when comparison\_date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="comparison_start_date_day" type="integer">
      Day of comparison start date. Required when comparison\_date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="comparison_end_date_year" type="integer">
      Year of comparison end date. Required when comparison\_date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="comparison_end_date_month" type="integer">
      Month of comparison end date. Required when comparison\_date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="comparison_end_date_day" type="integer">
      Day of comparison end date. Required when comparison\_date\_range is 'fixed'
    </ResponseField>

    <ResponseField name="comparison_relative" type="string">
      Relative comparison date range identifier (e.g. PREVIOUS\_PERIOD, SAME\_PERIOD\_PREVIOUS\_YEAR). Required when comparison\_date\_range is 'relative'
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateReportOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_network_options — Retrieve available network options for Google Ad Manager">
    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "networks": {
          "items": {
            "type": "string"
          },
          "title": "Networks",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListNetworkOptionsOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* Google Ad Manager API enforces per-network rate limits; consult your network's quota settings in the Ad Manager UI.
* Standard quota: 10,000 requests per day per project (default; can be increased via Google Cloud console).
* Error model: non-2xx responses and timeouts are caught and returned as `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="Ahrefs" href="/integrations/tools/ahrefs" />

  <Card title="Google My Business" href="/integrations/tools/google-my-business" />

  <Card title="Google Search Console" href="/integrations/tools/google-search-console" />
</CardGroup>

## Links

* [Google Ad Manager](https://admanager.google.com)
