orbiads avatar

OrbiAds — Google Ad Manager

orbiads/orbiads-gam-mcp

This connects Claude to Google Ad Manager's API so you can programmatically handle campaign operations without switching to the GAM interface. You get tools for creating and updating orders, managing creatives, configuring targeting rules, and pulling reports. Reach for this when you're building workflows that need to orchestrate ad campaigns alongside other business logic, like spinning up seasonal promotions based on inventory data or generating performance summaries that combine GAM metrics with your own analytics. The streamable HTTP transport means you can run it as a remote service rather than installing locally.

GitHub stars
1
tools
80
transport
HTTP
last updated
Jun 8, 2026

Tools

80 tools

Public tool metadata for what this MCP can expose to an agent.

get_network_infoGet the GAM network configuration for the tenant. Returns the cached network info (network code, display name, ad units). If not initialized, returns None (agent should call switch_network/network_init).1 params

Get the GAM network configuration for the tenant. Returns the cached network info (network code, display name, ad units). If not initialized, returns None (agent should call switch_network/network_init).

Parameters* required
tenant_idstring
switch_networkInitialize or switch the GAM network context for the tenant. Verifies GAM connectivity and caches the network configuration (ad units, etc.). Use this if get_network_info returns None or to refresh the config.1 params

Initialize or switch the GAM network context for the tenant. Verifies GAM connectivity and caches the network configuration (ad units, etc.). Use this if get_network_info returns None or to refresh the config.

Parameters* required
tenant_idstring
list_accessible_networksList all GAM networks accessible with the tenant's credentials. Calls GET /v1/networks using the tenant's OAuth refresh token. Returns network code, display name, currency, and timezone for each.1 params

List all GAM networks accessible with the tenant's credentials. Calls GET /v1/networks using the tenant's OAuth refresh token. Returns network code, display name, currency, and timezone for each.

Parameters* required
tenant_idstring
Firebase tenant UID
list_advertisersList all advertisers in the tenant's GAM network.1 params

List all advertisers in the tenant's GAM network.

Parameters* required
tenant_idstring
get_advertiserGet a single advertiser by its ID.2 params

Get a single advertiser by its ID.

Parameters* required
advertiser_idstring
tenant_idstring
get_agenciesList all Agencies (type=AGENCY) in the GAM network.1 params

List all Agencies (type=AGENCY) in the GAM network.

Parameters* required
tenant_idstring
create_agencyCreate a new Agency company in GAM.4 params

Create a new Agency company in GAM.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
namestring
tenant_idstring
create_advertiserCreate a new Advertiser company in GAM. Checks for an existing advertiser with the same name first. If found, returns the existing one with alreadyExisted=true instead of creating a duplicate.4 params

Create a new Advertiser company in GAM. Checks for an existing advertiser with the same name first. If found, returns the existing one with alreadyExisted=true instead of creating a duplicate.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
namestring
Name of the new advertiser to create in GAM
tenant_idstring
find_advertiserFind an existing advertiser by exact name match in GAM. Searches all advertisers in the network and returns the first one whose name exactly matches the provided string. Returns NOT_FOUND if no match exists. Cost: 0.5 credits (deducted on call — no dry_run required for a search).2 params

Find an existing advertiser by exact name match in GAM. Searches all advertisers in the network and returns the first one whose name exactly matches the provided string. Returns NOT_FOUND if no match exists. Cost: 0.5 credits (deducted on call — no dry_run required for a search).

Parameters* required
namestring
Advertiser name to search for (exact match)
tenant_idstring
find_or_create_advertiserFind an existing advertiser by name, or create it if it doesn't exist. Combines search + creation in a single call. Ideal for end-to-end campaign setup workflows where the advertiser may or may not exist.4 params

Find an existing advertiser by name, or create it if it doesn't exist. Combines search + creation in a single call. Ideal for end-to-end campaign setup workflows where the advertiser may or may not exist.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
namestring
Advertiser name — returns existing if found, creates if missing
tenant_idstring
find_or_create_orderFind an existing order by name for a given advertiser, or create it if missing. Searches orders for the advertiser, returns the first match by name. If no match, creates a new order. Ideal for idempotent campaign setup.5 params

Find an existing order by name for a given advertiser, or create it if missing. Searches orders for the advertiser, returns the first match by name. If no match, creates a new order. Ideal for idempotent campaign setup.

Parameters* required
advertiser_idstring
GAM Advertiser ID
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
order_namestring
Order name — returns existing if found, creates if missing
tenant_idstring
list_delivering_ordersList all delivering or delivering_slowly orders for a tenant. Queries GAM OrderService for orders with status DELIVERING or DELIVERING_SLOWLY. Returns basic details: id, name, status, start/end dates, advertiserId.1 params

List all delivering or delivering_slowly orders for a tenant. Queries GAM OrderService for orders with status DELIVERING or DELIVERING_SLOWLY. Returns basic details: id, name, status, start/end dates, advertiserId.

Parameters* required
tenant_idstring
Firebase tenant UID
get_orderFetch a single GAM Order by ID. Returns: id, name, status, advertiserId, agencyId, traffickerId, poNumber, notes.2 params

Fetch a single GAM Order by ID. Returns: id, name, status, advertiserId, agencyId, traffickerId, poNumber, notes.

Parameters* required
order_idstring
GAM Order ID
tenant_idstring
Firebase tenant UID
list_ordersList GAM Orders with optional name search and pagination. Returns: items (list of order dicts), total, offset, limit. Each order has: id, name, status, advertiserId, traffickerId, poNumber, notes.4 params

List GAM Orders with optional name search and pagination. Returns: items (list of order dicts), total, offset, limit. Each order has: id, name, status, advertiserId, traffickerId, poNumber, notes.

Parameters* required
limitinteger
Page size (max 200)default: 50
offsetinteger
Pagination offsetdefault: 0
qvalue
Optional name search (LIKE match)
tenant_idstring
Firebase tenant UID
create_orderCreate a new GAM Order. An Order is the container for Line Items. It belongs to an Advertiser. The traffickerId is automatically set to the current authenticated user. When check_existing=True (default), searches for an order with the same name and advertiser before creating....9 params

Create a new GAM Order. An Order is the container for Line Items. It belongs to an Advertiser. The traffickerId is automatically set to the current authenticated user. When check_existing=True (default), searches for an order with the same name and advertiser before creating....

Parameters* required
advertiser_idinteger
GAM Advertiser company ID
agency_idvalue
Optional GAM Agency company ID
check_existingboolean
If True (default), checks for existing order with same name + advertiser before creatingdefault: true
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
namestring
Order display name in GAM
notesstring
Optional order notesdefault:
po_numberstring
Optional purchase order numberdefault:
tenant_idstring
Firebase tenant UID
archive_orderArchive a GAM Order via performOrderAction(ArchiveOrders). Archiving hides the order and all its line items from active views. The order remains queryable but stops serving. Cannot be undone easily.4 params

Archive a GAM Order via performOrderAction(ArchiveOrders). Archiving hides the order and all its line items from active views. The order remains queryable but stops serving. Cannot be undone easily.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
order_idstring
GAM Order ID to archive
tenant_idstring
Firebase tenant UID
approve_orderApprove a GAM Order (transitions it to APPROVED status). Approving an Order also approves all eligible Line Items within it, allowing them to start delivering when their start date is reached.4 params

Approve a GAM Order (transitions it to APPROVED status). Approving an Order also approves all eligible Line Items within it, allowing them to start delivering when their start date is reached.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
order_idstring
GAM Order ID to approve
tenant_idstring
Firebase tenant UID
verify_order_setupPre-launch verification of an entire Order and all its Line Items. Runs verify_line_item_setup on each LI attached to the order. Returns aggregate pass/fail with per-LI details.2 params

Pre-launch verification of an entire Order and all its Line Items. Runs verify_line_item_setup on each LI attached to the order. Returns aggregate pass/fail with per-LI details.

Parameters* required
order_idstring
GAM Order ID to verify
tenant_idstring
Firebase tenant UID
update_orderUpdate an existing GAM Order. Uses read-modify-write: fetches the order, applies updates, and saves. Supported fields: name, poNumber, notes, traffickerId, startDateTime, endDateTime, totalBudget.5 params

Update an existing GAM Order. Uses read-modify-write: fetches the order, applies updates, and saves. Supported fields: name, poNumber, notes, traffickerId, startDateTime, endDateTime, totalBudget.

Parameters* required
confirmation_tokenvalue
Token from dry_run=True call
dry_runboolean
If True (default), returns preview without executingdefault: true
order_idstring
GAM Order ID to update
tenant_idstring
Firebase tenant UID
updatesobject
Fields to update. Supported: name, poNumber, notes, traffickerId, startDateTime, endDateTime, totalBudget ({currencyCode, microAmount})
get_contactsList GAM contacts, optionally filtered by company. Returns: list of contacts with id, name, companyId, email.2 params

List GAM contacts, optionally filtered by company. Returns: list of contacts with id, name, companyId, email.

Parameters* required
company_idvalue
Optional GAM Company/Advertiser ID to filter by
tenant_idstring
Firebase tenant UID
create_contactCreate a GAM Contact associated with a Company/Advertiser. Contacts can be attached to Orders for billing and communication purposes.8 params

Create a GAM Contact associated with a Company/Advertiser. Contacts can be attached to Orders for billing and communication purposes.

Parameters* required
company_idinteger
GAM Company/Advertiser ID this contact belongs to
confirmation_tokenvalue
Token from dry_run=True call
dry_runboolean
If True (default), returns preview without executingdefault: true
emailstring
Contact email address
namestring
Contact full name
phonevalue
Optional phone number
tenant_idstring
Firebase tenant UID
titlevalue
Optional job title
create_line_itemsCreate Line Items for a deployed job. Requires the job to have targeting configured in Firestore. Creates Line Items (one per Ad Unit).5 params

Create Line Items for a deployed job. Requires the job to have targeting configured in Firestore. Creates Line Items (one per Ad Unit).

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
job_idstring
name_templatevalue
Optional name template for Line Items. Supports tokens: {short_id}, {i}, {prefix}, {advertiser}, {campaign}, {variant}.
tenant_idstring
activate_line_itemsActivate all Line Items for a job (PAUSED -> DELIVERING).4 params

Activate all Line Items for a job (PAUSED -> DELIVERING).

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
job_idstring
Firestore job document ID
tenant_idstring
Firebase tenant UID
pause_line_itemsPause all Line Items for a job (DELIVERING -> PAUSED).4 params

Pause all Line Items for a job (DELIVERING -> PAUSED).

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
job_idstring
Firestore job document ID
tenant_idstring
Firebase tenant UID
get_line_itemGet a single line item by ID.2 params

Get a single line item by ID.

Parameters* required
line_item_idstring
GAM Line Item ID
tenant_idstring
Firebase tenant UID
update_line_itemUpdate a specific Line Item (e.g., changes to targeting, dates, or status).5 params

Update a specific Line Item (e.g., changes to targeting, dates, or status).

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
line_item_idstring
GAM Line Item ID
tenant_idstring
Firebase tenant UID
updateobject
Fields to update (all optional). Accepted keys: name (str), start_date_time (ISO str), end_date_time (ISO str | null), priority (int 1-16), cost_per_unit_micro (int), currency_code (str), goal_unit...
list_line_items_by_orderList Line Items belonging to a specific Order. Returns details: id, name, status, stats, goals, etc. Supports pagination via offset and limit parameters.4 params

List Line Items belonging to a specific Order. Returns details: id, name, status, stats, goals, etc. Supports pagination via offset and limit parameters.

Parameters* required
limitinteger
Maximum number of items to return (1–500, default 100)default: 100
offsetinteger
Number of items to skip for pagination (default 0)default: 0
order_idinteger
GAM Order ID
tenant_idstring
Firebase tenant UID
duplicate_line_itemDuplicate a Line Item in Google Ad Manager. Fetches the full line item configuration, creates a copy with ' - Copy' appended to the name, and applies any provided overrides. The duplicate always starts in DRAFT status.5 params

Duplicate a Line Item in Google Ad Manager. Fetches the full line item configuration, creates a copy with ' - Copy' appended to the name, and applies any provided overrides. The duplicate always starts in DRAFT status.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
line_item_idstring
GAM Line Item ID to duplicate
overridesvalue
Optional overrides to apply to the copy (e.g., {name: 'New Name', targeting: {...}})
tenant_idstring
Firebase tenant UID
archive_line_itemArchive a Line Item in Google Ad Manager. GAM does not delete Line Items — archiving removes them from active views. Archived items can still be queried but won't serve ads.4 params

Archive a Line Item in Google Ad Manager. GAM does not delete Line Items — archiving removes them from active views. Archived items can still be queried but won't serve ads.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
line_item_idstring
GAM Line Item ID to archive
tenant_idstring
Firebase tenant UID
verify_line_item_setupPre-launch verification of a Line Item's readiness. Checks: creative associations exist, targeting is set, dates are valid, goal > 0. Returns a pass/fail report with actionable messages.2 params

Pre-launch verification of a Line Item's readiness. Checks: creative associations exist, targeting is set, dates are valid, goal > 0. Returns a pass/fail report with actionable messages.

Parameters* required
line_item_idstring
GAM Line Item ID to verify
tenant_idstring
Firebase tenant UID
approve_line_itemApprove a Line Item in GAM (transitions from DRAFT/NEEDS_CREATIVES to READY). Note: Line Items typically auto-approve when their parent Order is approved. Use this for individual LI approval when needed.4 params

Approve a Line Item in GAM (transitions from DRAFT/NEEDS_CREATIVES to READY). Note: Line Items typically auto-approve when their parent Order is approved. Use this for individual LI approval when needed.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
line_item_idstring
GAM Line Item ID to approve
tenant_idstring
Firebase tenant UID
create_adexchange_line_itemCreate an AdExchange (programmatic) Line Item with floor CPM targeting. currency_code, delivery_rate_type, and creative_rotation_type fall back to tenant delivery defaults (configurable via update_delivery_defaults) when not provided.17 params

Create an AdExchange (programmatic) Line Item with floor CPM targeting. currency_code, delivery_rate_type, and creative_rotation_type fall back to tenant delivery defaults (configurable via update_delivery_defaults) when not provided.

Parameters* required
ad_unit_idsarray
List of Ad Unit IDs to target
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
creative_rotation_typevalue
EVEN, OPTIMIZED, or SEQUENTIAL. None = use tenant delivery defaults.
currency_codevalue
ISO currency code. None = use tenant delivery defaults.
delivery_rate_typevalue
EVENLY, FRONTLOADED, or AS_FAST_AS_POSSIBLE. None = use tenant delivery defaults.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
environment_typestring
BROWSER or VIDEO_PLAYERdefault: BROWSER
floor_cpm_microsinteger
Floor CPM in micros (e.g. 1000000 = 1.00 EUR)default: 0
frequency_cap_impressionsinteger
Max impressions per frequency_cap_period. 0 = no cap.default: 0
frequency_cap_periodstring
PER_DAY, PER_WEEK, PER_MONTH, PER_HOURdefault: PER_DAY
namestring
Line Item name in GAM
order_idinteger
GAM Order ID
priorityvalue
Line item priority (1-16). Defaults to type default.
roadblocking_typestring
ONE_OR_MORE, ALL_ROADBLOCK, or CREATIVE_SETdefault: ONE_OR_MORE
sizesvalue
Creative sizes [{width, height}]. Defaults to 1×1 (BROWSER) or 640×360 (VIDEO_PLAYER).
tenant_idstring
Firebase tenant UID
video_max_duration_msinteger
Max video duration in ms (VIDEO_PLAYER only)default: 30000
create_open_bidding_line_itemCreate an Open Bidding (Exchange Bidding) Line Item with floor CPM. Open Bidding line items use lineItemType=AD_EXCHANGE with a floor CPM. Demand partners bid in real-time above the floor; delivery is not guaranteed.15 params

Create an Open Bidding (Exchange Bidding) Line Item with floor CPM. Open Bidding line items use lineItemType=AD_EXCHANGE with a floor CPM. Demand partners bid in real-time above the floor; delivery is not guaranteed.

Parameters* required
ad_unit_idsarray
List of Ad Unit IDs to target
allow_overbookboolean
Allow overbooking (default True for RTB)default: true
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
currency_codestring
ISO currency codedefault: EUR
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
end_date_timevalue
ISO end datetime. None = unlimited.
environment_typestring
BROWSER or VIDEO_PLAYERdefault: BROWSER
floor_cpm_microsinteger
Floor CPM in micros (e.g. 1000000 = 1.00 EUR)default: 0
frequency_cap_impressionsinteger
Max impressions per frequency_cap_period. 0 = no cap.default: 0
frequency_cap_periodstring
PER_DAY, PER_WEEK, PER_MONTH, PER_HOURdefault: PER_DAY
namestring
Line Item name in GAM
order_idinteger
GAM Order ID
sizesvalue
Creative sizes [{width, height}]. Defaults to 1x1.
start_date_timevalue
ISO start datetime. None = immediately.
tenant_idstring
Firebase tenant UID
list_private_dealsList Private Deals (PMP) available in the GAM network. Returns deal IDs, names, types and statuses. Use the returned Id as deal_id when calling create_preferred_deal_line_item. Note: requires a live network — may return UNEXECUTABLE on test networks.2 params

List Private Deals (PMP) available in the GAM network. Returns deal IDs, names, types and statuses. Use the returned Id as deal_id when calling create_preferred_deal_line_item. Note: requires a live network — may return UNEXECUTABLE on test networks.

Parameters* required
status_filtervalue
Filter by status: ACTIVE, INACTIVE, ARCHIVED. None = all.
tenant_idstring
Firebase tenant UID
update_line_item_targetingUpdate targeting on an existing Line Item (custom, geo, day-part targeting). Modifiable post-creation: customTargeting, geoTargeting, dayPartTargeting. Ad unit targeting is locked after line item creation.5 params

Update targeting on an existing Line Item (custom, geo, day-part targeting). Modifiable post-creation: customTargeting, geoTargeting, dayPartTargeting. Ad unit targeting is locked after line item creation.

Parameters* required
confirmation_tokenvalue
Token from dry_run=True call
dry_runboolean
If True (default), returns preview without executingdefault: true
line_item_idstring
GAM Line Item ID
targeting_fieldsobject
Targeting fields to update. Accepted keys: customTargeting (list of {keyId, valueIds}), customTargetingOperator ('AND'|'OR'), geoTargeting (GAM geo targeting dict), dayPartTargeting (GAM day-part t...
tenant_idstring
Firebase tenant UID
create_preferred_deal_line_itemCreate a Preferred Deal (PMP non-guaranteed) Line Item linked to a private deal ID. Requires Deal Manager to be disabled on the network (direct flow). Use list_private_deals to retrieve valid deal IDs before calling this tool. The line item is created with: - lineItemType = PR...16 params

Create a Preferred Deal (PMP non-guaranteed) Line Item linked to a private deal ID. Requires Deal Manager to be disabled on the network (direct flow). Use list_private_deals to retrieve valid deal IDs before calling this tool. The line item is created with: - lineItemType = PR...

Parameters* required
ad_unit_idsarray
List of Ad Unit IDs to target
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
creative_size_typestring
DISPLAY, NATIVE, or VIDEOdefault: DISPLAY
currency_codevalue
ISO currency code. None = use tenant delivery defaults.
deal_idinteger
External Deal ID shared by the buyer (from list_private_deals)
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
end_date_timevalue
ISO end datetime. None = unlimited.
environment_typestring
BROWSER or VIDEO_PLAYERdefault: BROWSER
floor_cpm_microsinteger
Floor CPM in micros (e.g. 2000000 = 2.00 EUR)default: 0
frequency_cap_impressionsinteger
Max impressions per period. 0 = no cap.default: 0
frequency_cap_periodstring
PER_DAY, PER_WEEK, PER_MONTH, PER_HOURdefault: PER_DAY
namestring
Line Item name in GAM
order_idinteger
GAM Order ID
sizesvalue
Creative sizes [{width, height}]. Defaults to 1×1.
start_date_timevalue
ISO start datetime. None = immediately.
tenant_idstring
Firebase tenant UID
list_creatives_by_advertiserList all creatives associated with a specific advertiser.2 params

List all creatives associated with a specific advertiser.

Parameters* required
advertiser_idstring
GAM Advertiser ID (numeric string)
tenant_idstring
Firebase tenant UID
upload_creative[DEPRECATED] Upload a standalone image asset to Google Ad Manager. CreativeAssetService is unavailable in the supported GAM SOAP version. Use create_image_creative instead — it uploads and creates the creative in one step.5 params

[DEPRECATED] Upload a standalone image asset to Google Ad Manager. CreativeAssetService is unavailable in the supported GAM SOAP version. Use create_image_creative instead — it uploads and creates the creative in one step.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
file_pathstring
Absolute path to the image file on the server filesystem
namestring
Human-readable name for the creative asset in GAMdefault:
tenant_idstring
Firebase tenant UID
associate_creativeAssociate a creative with a Line Item in Google Ad Manager (create LICA). Links the specified creative to the Line Item so ads can serve. Returns the created LICA ID(s).5 params

Associate a creative with a Line Item in Google Ad Manager (create LICA). Links the specified creative to the Line Item so ads can serve. Returns the created LICA ID(s).

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
creative_idinteger
GAM Creative / NativeStyle ID
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
line_item_idinteger
GAM Line Item ID
tenant_idstring
Firebase tenant UID
update_creativeUpdate a creative in Google Ad Manager (read-modify-write). Modify any property: name, destinationUrl, snippet, tracking URLs, size, status. For tracking: add/replace thirdPartyImpressionTrackingUrls (pixel URLs for IAS, MOAT, DoubleVerify, DCM), thirdPartyClickTrackingUrl (Ht...5 params

Update a creative in Google Ad Manager (read-modify-write). Modify any property: name, destinationUrl, snippet, tracking URLs, size, status. For tracking: add/replace thirdPartyImpressionTrackingUrls (pixel URLs for IAS, MOAT, DoubleVerify, DCM), thirdPartyClickTrackingUrl (Ht...

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call
creative_idinteger
GAM Creative ID
dry_runboolean
If True (default), returns preview without executingdefault: true
tenant_idstring
Firebase tenant UID
update_fieldsobject
Dictionary of fields to update. Supported keys: name, destinationUrl, snippet, expandedSnippet, vastRedirectUrl, size ({width, height}), status (ACTIVE/INACTIVE), thirdPartyImpressionTrackingUrls (...
list_creatives_by_line_itemList all creatives associated with a specific line item. Uses LICA service to find associations, then Creative service to fetch details.2 params

List all creatives associated with a specific line item. Uses LICA service to find associations, then Creative service to fetch details.

Parameters* required
line_item_idstring
GAM Line Item ID (numeric string)
tenant_idstring
Firebase tenant UID
get_creativeFetch details for a single creative by ID.2 params

Fetch details for a single creative by ID.

Parameters* required
creative_idstring
GAM Creative ID (numeric string)
tenant_idstring
Firebase tenant UID
get_creative_preview_urlGenerate a GAM creative preview URL for testing on a real site. Opens the specified site with the ad injected for visual verification, without affecting delivery statistics. Perfect for client sign-off.4 params

Generate a GAM creative preview URL for testing on a real site. Opens the specified site with the ad injected for visual verification, without affecting delivery statistics. Perfect for client sign-off.

Parameters* required
creative_idstring
GAM Creative ID
line_item_idstring
GAM Line Item ID
site_urlstring
URL of the site to preview the ad on (e.g., https://www.example.com/article)
tenant_idstring
Firebase tenant UID
get_campaign_preview_linksGenerate preview URLs for multiple Line Item / Creative pairs in one call. Each pair can have its own site_url; falls back to default_site_url. Soft-fail per pair: a failed URL returns {error: ...} instead of failing the whole call. Returns: previewLinks list with label, lineI...3 params

Generate preview URLs for multiple Line Item / Creative pairs in one call. Each pair can have its own site_url; falls back to default_site_url. Soft-fail per pair: a failed URL returns {error: ...} instead of failing the whole call. Returns: previewLinks list with label, lineI...

Parameters* required
default_site_urlstring
Fallback site URL for pairs without their own site_url
li_creative_pairsarray
List of {line_item_id, creative_id, label?, site_url?} pairs
tenant_idstring
Firebase tenant UID
upload_and_associate_creativeUpload a creative image and associate it with a Line Item in one step. Performs three operations in sequence: 1. create_image_creative — uploads image bytes inline + creates the ImageCreative in GAM. 2. create_lica — links the creativeId to the line_item_id so ads can serve. T...10 params

Upload a creative image and associate it with a Line Item in one step. Performs three operations in sequence: 1. create_image_creative — uploads image bytes inline + creates the ImageCreative in GAM. 2. create_lica — links the creativeId to the line_item_id so ads can serve. T...

Parameters* required
advertiser_idinteger
GAM Advertiser ID — required to create the ImageCreative object
confirmation_tokenvalue
Token from a previous dry_run=True call
destination_urlstring
Click-through URL (e.g. https://www.example.com)default:
dry_runboolean
If True (default), returns preview without executingdefault: true
file_pathstring
Absolute path to the image file (PNG/JPG/GIF — max 1 MB)
heightinteger
Creative height in pixels (e.g. 250)
line_item_idinteger
GAM Line Item ID to associate with
namestring
Creative name in GAM. If empty, auto-resolved from the tenant naming convention (creative_template). Macros available: {advertiser}, {format}, {size}, {YYYY}, {MM}, {DD}. Example: 'OrbitAds-IMAGE-3...default:
tenant_idstring
Firebase tenant UID
widthinteger
Creative width in pixels (e.g. 300)
bulk_upload_creativesUpload multiple creative images with per-file sizes, names and click URLs. REQUIRED per file: file_path, width, height, destination_url. Each file can have its own name/destination_url override. The creative name follows the tenant naming convention (creative_template) if conf...8 params

Upload multiple creative images with per-file sizes, names and click URLs. REQUIRED per file: file_path, width, height, destination_url. Each file can have its own name/destination_url override. The creative name follows the tenant naming convention (creative_template) if conf...

Parameters* required
advertiser_idinteger
GAM Advertiser ID for all creatives
confirmation_tokenvalue
Token from a previous dry_run=True call
destination_urlstring
Default click-through URL for all files (per-file destination_url overrides this). REQUIRED if not provided per-file. Image creatives must have a click-through URL.default:
dry_runboolean
If True (default), returns preview without executingdefault: true
filesarray
List of creative files to upload. Each entry MUST include: {"file_path": "/abs/path/banner.png", "width": 300, "height": 250, "destination_url": "https://example.com/landing"}. Optional per file: "...
line_item_idsvalue
Optional GAM Line Item IDs — each uploaded creative is automatically associated to ALL provided Line Items via LICA. Use for multi-placement campaigns.
skip_duplicatesboolean
If True (default), skip upload if a creative with the same name+size already exists for the advertiserdefault: true
tenant_idstring
Firebase tenant UID
create_third_party_creativeCreate a ThirdPartyCreative in GAM for external ad tags. Use this for custom HTML/JS tags from third-party ad servers (DV360, TTD, etc.). Distinct from create_html5_creative which is for self-contained HTML5 ads. Supports native third-party impression tracking (IAS, MOAT, DV,...10 params

Create a ThirdPartyCreative in GAM for external ad tags. Use this for custom HTML/JS tags from third-party ad servers (DV360, TTD, etc.). Distinct from create_html5_creative which is for self-contained HTML5 ads. Supports native third-party impression tracking (IAS, MOAT, DV,...

Parameters* required
advertiser_idinteger
GAM advertiser ID
confirmation_tokenvalue
Token from a previous dry_run=True call
dry_runboolean
If True (default), returns preview without executingdefault: true
heightinteger
Creative height in pixelsdefault: 250
html_snippetstring
Third-party HTML/JS ad tag snippet
is_safe_frame_compatibleboolean
Whether the creative is SafeFrame compatibledefault: true
namestring
Creative name in GAM
tenant_idstring
Firebase tenant UID
third_party_impression_tracking_urlsvalue
Third-party impression pixel URLs (IAS, MOAT, DoubleVerify, DCM Floodlight). Native GAM field — stored on the creative object, not injected in HTML.
widthinteger
Creative width in pixelsdefault: 300
create_video_creativeCreate a VAST VideoRedirectCreative in GAM. Supports native video event tracking (VAST pixels) for IAS, MOAT, DoubleVerify, DCM, etc. Use tracking_urls to attach pixels to specific VAST events (impression, quartiles, complete).9 params

Create a VAST VideoRedirectCreative in GAM. Supports native video event tracking (VAST pixels) for IAS, MOAT, DoubleVerify, DCM, etc. Use tracking_urls to attach pixels to specific VAST events (impression, quartiles, complete).

Parameters* required
advertiser_idinteger
GAM advertiser ID
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
heightinteger
Creative height in pixelsdefault: 360
namestring
Creative name in GAM
tenant_idstring
Firebase tenant UID
tracking_urlsvalue
Native GAM video event tracking — map of ConversionEvent to URL lists. Keys: CREATIVE_VIEW, START, FIRST_QUARTILE, MIDPOINT, THIRD_QUARTILE, COMPLETE, MUTE, UNMUTE, PAUSE, REWIND, FULLSCREEN, CLICK...
vast_redirect_urlstring
VAST redirect URL for the video creative
widthinteger
Creative width in pixelsdefault: 640
create_html5_creativeCreate an Html5Creative in GAM from an HTML snippet. The HTML content is automatically packaged into a ZIP bundle and uploaded as an Html5Creative (not a ThirdPartyCreative). For 3rd-party tags, use create_third_party_creative instead. IMPORTANT: For HTML5 creatives, the click...8 params

Create an Html5Creative in GAM from an HTML snippet. The HTML content is automatically packaged into a ZIP bundle and uploaded as an Html5Creative (not a ThirdPartyCreative). For 3rd-party tags, use create_third_party_creative instead. IMPORTANT: For HTML5 creatives, the click...

Parameters* required
advertiser_idinteger
GAM advertiser ID
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
heightinteger
Creative height in pixelsdefault: 250
html_snippetstring
Self-contained HTML5 ad content. The click URL must be hardcoded inside the HTML (destination_url is not applicable for Html5Creative).
namestring
Creative name in GAM. Macros available if creative_template is configured: {advertiser}, {format}, {size}, {YYYY}, {MM}, {DD}.
tenant_idstring
Firebase tenant UID
widthinteger
Creative width in pixelsdefault: 300
upload_html5_zip_creativeUpload a pre-built HTML5 ZIP bundle as an Html5Creative in GAM. Use this when the studio delivers a ready-made ZIP file. For an inline HTML snippet, use create_html5_creative instead. IMPORTANT: The click-through URL must be embedded in the HTML/JS inside the ZIP. There is no...11 params

Upload a pre-built HTML5 ZIP bundle as an Html5Creative in GAM. Use this when the studio delivers a ready-made ZIP file. For an inline HTML snippet, use create_html5_creative instead. IMPORTANT: The click-through URL must be embedded in the HTML/JS inside the ZIP. There is no...

Parameters* required
advertiser_idinteger
GAM advertiser ID
allow_safeframe_breakoutboolean
If False (default), high-risk SafeFrame breakout patterns (window.top.location, parent.document, document.domain) block the upload. Set True only if the creative intentionally requires parent-frame...default: false
auto_detect_fluidboolean
If True, analyse index.html in the ZIP for responsive CSS/JS patterns. When detected (vw/vh/%, @media, window.innerWidth), the creative is created as 1×1 fluid (isAspectRatio=True) and can serve at...default: false
confirmation_tokenvalue
Token from a previous dry_run=True call
dry_runboolean
If True (default), returns preview without executingdefault: true
file_pathstring
Absolute path to the HTML5 ZIP bundle (max 2 MB)
force_fluidboolean
If True, always create as 1×1 fluid regardless of detected size.default: false
heightinteger
Creative height in pixels (e.g. 90). Use 1 with force_fluid=True for responsive creatives.
namestring
Creative name in GAM. If empty, auto-resolved from the tenant naming convention. Macros: {advertiser}, {format}, {size}, {YYYY}, {MM}, {DD}.default:
tenant_idstring
Firebase tenant UID
widthinteger
Creative width in pixels (e.g. 728). Use 1 with force_fluid=True for responsive creatives.
compress_image_creativeCompress an oversized image creative to meet GAM's 1 MB limit. Uses PIL/Pillow to progressively reduce JPEG quality via binary search until the output fits within target_kb. GIF files are converted to PNG first. Output: written next to the original as {stem}_compressed.jpg (or...5 params

Compress an oversized image creative to meet GAM's 1 MB limit. Uses PIL/Pillow to progressively reduce JPEG quality via binary search until the output fits within target_kb. GIF files are converted to PNG first. Output: written next to the original as {stem}_compressed.jpg (or...

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call
dry_runboolean
If True (default), returns estimate without writing the filedefault: true
file_pathstring
Absolute path to PNG or JPG image (GIF will be converted to PNG)
target_kbinteger
Target output size in KB (default 100, max 1000)default: 100
tenant_idstring
Firebase tenant UID
get_licas_by_line_itemList all LICA associations (Line Item Creative Associations) for a Line Item. Returns raw LICA objects with id, lineItemId, creativeId, status, and sizes. Use list_creatives_by_line_item to get enriched Creative details instead.2 params

List all LICA associations (Line Item Creative Associations) for a Line Item. Returns raw LICA objects with id, lineItemId, creativeId, status, and sizes. Use list_creatives_by_line_item to get enriched Creative details instead.

Parameters* required
line_item_idstring
GAM Line Item ID (numeric string)
tenant_idstring
Firebase tenant UID
get_licas_batchFetch LICA associations for multiple Line Items in a single batch call. Returns a dict mapping lineItemId (str) to a list of LICA objects. More efficient than calling get_licas_by_line_item repeatedly.2 params

Fetch LICA associations for multiple Line Items in a single batch call. Returns a dict mapping lineItemId (str) to a list of LICA objects. More efficient than calling get_licas_by_line_item repeatedly.

Parameters* required
line_item_idsarray
List of GAM Line Item IDs (numeric strings)
tenant_idstring
Firebase tenant UID
deactivate_licaDeactivate a LICA (Line Item Creative Association) in GAM. Removes the association between a creative and a line item so the creative stops serving on that line item. The LICA can be re-activated later.5 params

Deactivate a LICA (Line Item Creative Association) in GAM. Removes the association between a creative and a line item so the creative stops serving on that line item. The LICA can be re-activated later.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call
creative_idinteger
GAM Creative / NativeStyle ID
dry_runboolean
If True (default), returns preview without executingdefault: true
line_item_idinteger
GAM Line Item ID
tenant_idstring
Firebase tenant UID
delete_licasDelete LICAs (Line Item Creative Associations) from GAM. Permanently removes creative associations from a line item. Use get_licas_by_line_item to find LICA IDs first. WARNING: This action cannot be undone.5 params

Delete LICAs (Line Item Creative Associations) from GAM. Permanently removes creative associations from a line item. Use get_licas_by_line_item to find LICA IDs first. WARNING: This action cannot be undone.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call
dry_runboolean
If True (default), returns preview without executingdefault: true
lica_idsarray
List of LICA IDs to delete
line_item_idstring
GAM Line Item ID
tenant_idstring
Firebase tenant UID
create_audio_creativeCreate a VAST AudioCreative in GAM.7 params

Create a VAST AudioCreative in GAM.

Parameters* required
advertiser_idinteger
GAM advertiser ID
confirmation_tokenvalue
Token from a previous dry_run=True call. Required when dry_run=False.
dry_runboolean
If True (default), returns preview without executing any SOAP calldefault: true
duration_millisinteger
Audio duration in millisecondsdefault: 30000
namestring
Creative name in GAM
tenant_idstring
Firebase tenant UID
vast_redirect_urlstring
VAST redirect URL for audio
list_creatives_by_networkSearch all creatives in the GAM network by name. Returns: items (list of creative dicts), total, offset, limit. Each creative has id, name, advertiserId, size, creativeType, status.4 params

Search all creatives in the GAM network by name. Returns: items (list of creative dicts), total, offset, limit. Each creative has id, name, advertiserId, size, creativeType, status.

Parameters* required
limitinteger
Page size (max 500)default: 100
offsetinteger
Pagination offsetdefault: 0
qvalue
Optional name search
tenant_idstring
Firebase tenant UID
archive_creativeArchive (deactivate) a creative in GAM. Archived creatives no longer serve traffic but are not deleted. This action can be reversed by reactivating the creative in GAM UI.4 params

Archive (deactivate) a creative in GAM. Archived creatives no longer serve traffic but are not deleted. This action can be reversed by reactivating the creative in GAM UI.

Parameters* required
confirmation_tokenvalue
Token from dry_run=True call
creative_idinteger
GAM Creative ID to archive
dry_runboolean
If True (default), returns preview without executingdefault: true
tenant_idstring
Firebase tenant UID
list_native_stylesList NativeStyles in the GAM network with optional name filter.4 params

List NativeStyles in the GAM network with optional name filter.

Parameters* required
limitinteger
Max number of results (default 500)default: 500
name_filtervalue
Optional name substring filter
offsetinteger
Pagination offsetdefault: 0
tenant_idstring
Firebase tenant UID
get_native_styleFetch a single NativeStyle by ID, including HTML/CSS snippets and fluid settings.2 params

Fetch a single NativeStyle by ID, including HTML/CSS snippets and fluid settings.

Parameters* required
native_style_idinteger
OrbiAdsStyle ID
tenant_idstring
Firebase tenant UID
update_native_styleUpdate a NativeStyle's HTML, CSS, name, or size settings.10 params

Update a NativeStyle's HTML, CSS, name, or size settings.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call
css_snippetvalue
New CSS snippet (optional)
dry_runboolean
If True (default), returns preview without executingdefault: true
heightvalue
New height in pixels (optional)
html_snippetvalue
New HTML snippet (optional)
is_fluidvalue
Set fluid flag (optional — omit to keep existing)
namevalue
New name (optional)
native_style_idinteger
OrbiAdsStyle ID to update
tenant_idstring
Firebase tenant UID
widthvalue
New width in pixels (optional)
archive_native_styleArchive a NativeStyle so it stops serving.4 params

Archive a NativeStyle so it stops serving.

Parameters* required
confirmation_tokenvalue
Token from a previous dry_run=True call
dry_runboolean
If True (default), returns preview without executingdefault: true
native_style_idinteger
OrbiAdsStyle ID to archive
tenant_idstring
Firebase tenant UID
create_image_creativeCreate an ImageCreative in GAM from a local image file. Reads the image file and uploads it inline via CreativeService (no separate upload step). Supports standard IAB display sizes (banner, MPU, billboard, etc.). Supported formats: PNG, JPG, GIF, SVG. Supports native third-pa...10 params

Create an ImageCreative in GAM from a local image file. Reads the image file and uploads it inline via CreativeService (no separate upload step). Supports standard IAB display sizes (banner, MPU, billboard, etc.). Supported formats: PNG, JPG, GIF, SVG. Supports native third-pa...

Parameters* required
advertiser_idinteger
GAM Advertiser ID
confirmation_tokenvalue
Token from dry_run=True call
destination_urlvalue
Click-through destination URL
dry_runboolean
If True (default), returns preview without executingdefault: true
file_pathstring
Absolute path to the image file (PNG/JPG/GIF)
heightinteger
Creative height in pixels (e.g. 250)
namestring
Creative display name in GAM
tenant_idstring
Firebase tenant UID
third_party_impression_tracking_urlsvalue
Third-party impression pixel URLs (IAS, MOAT, DoubleVerify, DCM Floodlight). Native GAM field — stored on the creative, not injected in HTML. Supports GAM macros: %%CACHEBUSTER%%, %%SITE%%, %%CLICK...
widthinteger
Creative width in pixels (e.g. 300)
create_html5_creative_from_filesCreate an Html5Creative in GAM from individual files or a pre-built ZIP bundle. Accepts either: - A pre-built ZIP bundle via zip_path, OR - Individual files: html_path (required) + optional css_path + optional image_path When individual files are provided, they are automatical...12 params

Create an Html5Creative in GAM from individual files or a pre-built ZIP bundle. Accepts either: - A pre-built ZIP bundle via zip_path, OR - Individual files: html_path (required) + optional css_path + optional image_path When individual files are provided, they are automatical...

Parameters* required
advertiser_idinteger
GAM Advertiser ID
confirmation_tokenvalue
Token from dry_run=True call
css_pathvalue
Absolute path to the CSS file (optional)
destination_urlvalue
Click-through destination URL
dry_runboolean
If True (default), returns preview without executingdefault: true
heightinteger
Creative height in pixels (e.g. 250)
html_pathvalue
Absolute path to the main HTML file
image_pathvalue
Absolute path to the image asset (optional)
namestring
Creative display name in GAM
tenant_idstring
Firebase tenant UID
widthinteger
Creative width in pixels (e.g. 300)
zip_pathvalue
Absolute path to a pre-built HTML5 ZIP bundle
ensure_classic_native_templateEnsure the Classic Native Template exists for this tenant, creating it if needed. The Classic Native Template is a USER_DEFINED native GAM template with 7 variable slots: - headline (STRING, required) - click_url (URL, required) - main_image (ASSET/IMAGE, required) - body (STR...2 params

Ensure the Classic Native Template exists for this tenant, creating it if needed. The Classic Native Template is a USER_DEFINED native GAM template with 7 variable slots: - headline (STRING, required) - click_url (URL, required) - main_image (ASSET/IMAGE, required) - body (STR...

Parameters* required
force_recreateboolean
If True, create a fresh template even if one is already cacheddefault: false
tenant_idstring
Firebase tenant UID
create_classic_native_creativeCreate a Classic Native creative in GAM (TemplateCreative over the Classic Native Template). This creative type combines a headline, body text, CTA, a main image, and an optional logo into a native ad that renders using the per-tenant Classic Native Template. The Classic Nativ...15 params

Create a Classic Native creative in GAM (TemplateCreative over the Classic Native Template). This creative type combines a headline, body text, CTA, a main image, and an optional logo into a native ad that renders using the per-tenant Classic Native Template. The Classic Nativ...

Parameters* required
advertiser_idinteger
GAM Advertiser ID
bodyvalue
Ad body / description text (optional)
call_to_actionvalue
CTA label, e.g. 'En savoir plus' (optional)
click_urlstring
Destination URL when the ad is clicked (required)
confirmation_tokenvalue
Token from dry_run=True call
destination_urlvalue
Click-through URL at the creative level (defaults to click_url)
dry_runboolean
If True (default), returns preview without executingdefault: true
headlinestring
Ad headline text (required)
heightinteger
Creative height in pixels (e.g. 250)default: 250
logo_pathvalue
Absolute path to the logo image (optional)
main_image_pathstring
Absolute path to the main ad image (PNG/JPG/GIF, required)
namestring
Creative display name in GAM
sponsored_byvalue
Sponsor label, e.g. 'Acme Corp' (optional)
tenant_idstring
Firebase tenant UID
widthinteger
Creative width in pixels (e.g. 300)default: 300
list_creative_templatesList CreativeTemplates in the GAM network with their variable definitions. Returns all USER_DEFINED templates, with full variable metadata per template (label, uniqueName, isRequired, type, defaultValue/mimeTypes).4 params

List CreativeTemplates in the GAM network with their variable definitions. Returns all USER_DEFINED templates, with full variable metadata per template (label, uniqueName, isRequired, type, defaultValue/mimeTypes).

Parameters* required
limitinteger
Max number of templates to return (max 500)default: 500
name_filtervalue
Optional substring filter on template name
offsetinteger
Pagination offsetdefault: 0
tenant_idstring
Firebase tenant UID
get_creative_templateFetch a single CreativeTemplate by ID with all variable definitions and snippet. Returns full template details including all variable slots with their types, default values, required flags, and the raw HTML snippet if present.2 params

Fetch a single CreativeTemplate by ID with all variable definitions and snippet. Returns full template details including all variable slots with their types, default values, required flags, and the raw HTML snippet if present.

Parameters* required
template_idinteger
GAM CreativeTemplate ID
tenant_idstring
Firebase tenant UID
check_delivery_statusCheck the real-time delivery status of a job's line items. Returns the aggregated lifecycle status (DELIVERING, READY, etc.) and per-line-item statuses.2 params

Check the real-time delivery status of a job's line items. Returns the aggregated lifecycle status (DELIVERING, READY, etc.) and per-line-item statuses.

Parameters* required
job_idstring
Firestore job document ID
tenant_idstring
Firebase tenant UID
fetch_delivery_reportFetch a delivery report for the job (Impressions, Clicks, CTR). Returns a list of rows (one per Line Item). Uses Firestore cache when available.2 params

Fetch a delivery report for the job (Impressions, Clicks, CTR). Returns a list of rows (one per Line Item). Uses Firestore cache when available.

Parameters* required
job_idstring
tenant_idstring
run_custom_reportRun a dynamic GAM report with any dimensions and metrics. Costs 0.5 credits. Submits the report job to GAM REST v1 (or SOAP if api='soap'), polls until ready (up to ~100 seconds), then caches and returns results. Response structure: - rows: first 200 rows inline - totalRows: t...8 params

Run a dynamic GAM report with any dimensions and metrics. Costs 0.5 credits. Submits the report job to GAM REST v1 (or SOAP if api='soap'), polls until ready (up to ~100 seconds), then caches and returns results. Response structure: - rows: first 200 rows inline - totalRows: t...

Parameters* required
apistring
Reporting API to use: 'rest' (Interactive Reports, default) or 'soap' (Legacy Reports). REST supports fewer dimensions/metrics but is the modern API. SOAP supports all legacy dimensions (TOTAL_*, M...default: rest
date_range_typestring
Date range: LAST_MONTH (default), LAST_WEEK, LAST_7_DAYS, LAST_30_DAYS, YESTERDAY, TODAY, CURRENT_MONTH, CURRENT_QUARTER, LAST_3_MONTHS, LAST_YEAR, or FIXED (requires start_date + end_date).default: LAST_MONTH
dimensionsarray
GAM report dimensions — any valid string accepted by the API. Common values: DATE, LINE_ITEM_NAME, AD_UNIT_NAME, ADVERTISER_NAME, ORDER_NAME, COUNTRY_NAME, DEVICE_CATEGORY_NAME, PLACEMENT_NAME, CRE...
end_datestring
YYYY-MM-DD — required only when date_range_type=FIXEDdefault:
filtersvalue
Optional dimension filters. Same format as create_gam_report. Each entry: {"dimension": "DIM_NAME", "values": ["val1", ...]}. Example: [{"dimension": "LINE_ITEM_ID", "values": ["123"]}, {"dimension...
metricsarray
GAM report metrics — any valid string accepted by the API. Common values: AD_SERVER_IMPRESSIONS, AD_SERVER_CLICKS, AD_SERVER_CTR, AD_SERVER_CPM_AND_CPC_REVENUE, TOTAL_FILL_RATE, AD_SERVER_ACTIVE_VI...
start_datestring
YYYY-MM-DD — required only when date_range_type=FIXEDdefault:
tenant_idstring
Firebase tenant UID
fetch_inventory_reportFetch an inventory report: ad requests, impressions, fill rate per ad unit. Costs 0.5 credits. Defaults to LAST_MONTH if no dates are provided.5 params

Fetch an inventory report: ad requests, impressions, fill rate per ad unit. Costs 0.5 credits. Defaults to LAST_MONTH if no dates are provided.

Parameters* required
ad_unit_idvalue
Optional GAM Ad Unit ID to filter by
apistring
Reporting API to use: 'rest' (Interactive Reports, default) or 'soap' (Legacy Reports). REST supports fewer dimensions/metrics but is the modern API. SOAP supports all legacy dimensions (TOTAL_*, M...default: rest
end_datestring
YYYY-MM-DD (omit to use LAST_MONTH)default:
start_datestring
YYYY-MM-DD (omit to use LAST_MONTH)default:
tenant_idstring
Firebase tenant UID
get_report_resultRetrieve a previously cached report result without re-running the report. Free tool — no credit cost. Results expire after 30 days. Returns the full result including ALL rows, summary totals, metadata, and the GAM API resource reference (gamResultRef).2 params

Retrieve a previously cached report result without re-running the report. Free tool — no credit cost. Results expire after 30 days. Returns the full result including ALL rows, summary totals, metadata, and the GAM API resource reference (gamResultRef).

Parameters* required
result_idstring
Result UUID returned by run_custom_report or run_report_from_template. Cached for 30 days.
tenant_idstring
Firebase tenant UID
export_report_csvExport a report as CSV, TSV, XLSX, or XML. Costs 0.5 credits. Uses FIXED date range. For api='rest': returns {csv, rowCount, resultId}. Always CSV format. For api='soap' with text formats (CSV_DUMP, TSV, TSV_EXCEL): returns {csv, rowCount}. CSV string with appropriate delimite...8 params

Export a report as CSV, TSV, XLSX, or XML. Costs 0.5 credits. Uses FIXED date range. For api='rest': returns {csv, rowCount, resultId}. Always CSV format. For api='soap' with text formats (CSV_DUMP, TSV, TSV_EXCEL): returns {csv, rowCount}. CSV string with appropriate delimite...

Parameters* required
apistring
Reporting API to use: 'rest' (default) or 'soap'. REST returns CSV from JSON rows. SOAP supports native export formats (see export_format).default: rest
dimensionsarray
GAM dimension names
end_datestring
YYYY-MM-DD
export_formatstring
Export format (SOAP only, ignored for REST). Options: CSV_DUMP (default) — machine-readable CSV | TSV — tab-separated values | TSV_EXCEL — TSV formatted for Excel | XLSX — Excel 2007+ binary (retur...default: CSV_DUMP
filtersvalue
Optional dimension filters. Same format as run_custom_report. Each entry: {"dimension": "DIM_NAME", "values": ["val1", ...]}.
metricsarray
GAM metric names
start_datestring
YYYY-MM-DD
tenant_idstring
Firebase tenant UID
get_report_dimensionsList all documented GAM report dimensions with category and description. Returns list of {name, category, description, api}. Any valid GAM dimension string can be used in run_custom_report even if not listed here. Categories: time, line_item, order, advertiser, creative, inven...1 params

List all documented GAM report dimensions with category and description. Returns list of {name, category, description, api}. Any valid GAM dimension string can be used in run_custom_report even if not listed here. Categories: time, line_item, order, advertiser, creative, inven...

Parameters* required
apistring
Filter by API: 'rest', 'soap', or 'all' (default)default: all
get_report_metricsList all documented GAM report metrics with category and description. Returns list of {name, category, description, api}. Any valid GAM metric string can be used in run_custom_report even if not listed here. Categories: ad_server, viewability, inventory, total, adsense, adx, p...1 params

List all documented GAM report metrics with category and description. Returns list of {name, category, description, api}. Any valid GAM metric string can be used in run_custom_report even if not listed here. Categories: ad_server, viewability, inventory, total, adsense, adx, p...

Parameters* required
apistring
Filter by API: 'rest', 'soap', or 'all' (default)default: all
get_report_date_rangesList supported relative date range values for date_range_type parameter.

List supported relative date range values for date_range_type parameter.

No parameter schema in public metadata yet.

get_standalone_forecastGet an availability forecast for arbitrary targeting without an existing job. Returns: availableUnits, matchedUnits, deliveredUnits, utilizationPercent, contendingLineItems, recommendation (with riskLevel).8 params

Get an availability forecast for arbitrary targeting without an existing job. Returns: availableUnits, matchedUnits, deliveredUnits, utilizationPercent, contendingLineItems, recommendation (with riskLevel).

Parameters* required
ad_unit_idsarray
Target Ad Unit IDs (array)
creative_sizesvalue
Display banner sizes [{width, height}]. None = 1x1 NATIVE (default). Required for accurate display forecast.
end_datestring
Forecast end datetime (ISO)
geo_targetingvalue
GAM geo location IDs e.g. ['2840'] for USA
key_valuesvalue
Custom targeting key-values [{keyId: int, valueIds: [int]}]
primary_goal_unitsvalue
Optional impression goal for recommendation
start_datestring
Forecast start datetime (ISO)
tenant_idstring
Firebase tenant UID
get_delivery_forecast_by_line_itemGet an availability forecast for an existing Line Item. Returns: availableUnits, forecastUnits, possibleUnits, unitType, lineItemId.2 params

Get an availability forecast for an existing Line Item. Returns: availableUnits, forecastUnits, possibleUnits, unitType, lineItemId.

Parameters* required
line_item_idstring
GAM Line Item ID
tenant_idstring
Firebase tenant UID
list_report_templatesList all saved report templates (built-in + custom). Built-in templates are seeded on first call: - GAM: monthly performance, by advertiser, inventory, viewability - GA4: monthly traffic, performance by country (if GA4 configured) Use run_report_from_template with any template...1 params

List all saved report templates (built-in + custom). Built-in templates are seeded on first call: - GAM: monthly performance, by advertiser, inventory, viewability - GA4: monthly traffic, performance by country (if GA4 configured) Use run_report_from_template with any template...

Parameters* required
tenant_idstring
Firebase tenant UID

Sponsors

Readme

OrbiAds — Google Ad Manager MCP Server

English · Français

OrbiAds terminal workflow showing Google Ad Manager checks from the command line
Hosted MCP for AI agents, plus a Python CLI for terminal and CI workflows.


View the full README on GitHub

Details

Repository
github.com/orbiads/orbiads-gam-mcp
Website
orbiads.com
Categories
Communication & Messaging, Automation & Workflows, Data & Analytics
Transport
HTTP
Registry
MCP registry, active

Related Communication & Messaging MCP servers

View all
1rahuljava2807 avatarClaude Bridge Mcprahuljava2807/claude-code-bridge-mcpPipes Claude Code session output into Claude Chat — no more copy-paste between tools0stars
2topher66 avatarDroidbartopher66/droidbar-mcpThe first bar for AI. Visit, chat with SERVO the bartender, and tip in tokens.1stars
3ivanantigravity-lgtm avatarPerplexity Polza Mcp Serverivanantigravity-lgtm/perplexity-polza-mcp-serverPerplexity MCP server backed by the Polza.ai chat completions API.1stars
4kjgueye avatarNetintel Mcpkjgueye/netintel-mcpMCP server for NetIntel — DNS, SSL, WHOIS, email security, OSINT via x402 micropayments1stars
5mailpace avatarMailPacemailpace/mailpace-mcpSend transactional email and manage MailPace domains from MCP clients.1stars
6makeamouse avatarfish-bridge — Session Knowledge Graphmakeamouse/fish-bridge-mcpCompresses AI chat sessions into a typed knowledge graph. Local/offline via Ollama.1stars