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.
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 paramsGet 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).
tenant_idstringswitch_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 paramsInitialize 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.
tenant_idstringlist_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 paramsList 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.
tenant_idstringlist_advertisersList all advertisers in the tenant's GAM network.1 paramsList all advertisers in the tenant's GAM network.
tenant_idstringget_advertiserGet a single advertiser by its ID.2 paramsGet a single advertiser by its ID.
tenant_idstringadvertiser_idstringget_agenciesList all Agencies (type=AGENCY) in the GAM network.1 paramsList all Agencies (type=AGENCY) in the GAM network.
tenant_idstringcreate_agencyCreate a new Agency company in GAM.4 paramsCreate a new Agency company in GAM.
namestringdry_runbooleantenant_idstringconfirmation_tokenvaluecreate_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 paramsCreate 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.
namestringdry_runbooleantenant_idstringconfirmation_tokenvaluefind_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 paramsFind 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).
namestringtenant_idstringfind_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 paramsFind 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.
namestringdry_runbooleantenant_idstringconfirmation_tokenvaluefind_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 paramsFind 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.
dry_runbooleantenant_idstringorder_namestringadvertiser_idstringconfirmation_tokenvaluelist_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 paramsList 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.
tenant_idstringget_orderFetch a single GAM Order by ID. Returns: id, name, status, advertiserId, agencyId, traffickerId, poNumber, notes.2 paramsFetch a single GAM Order by ID. Returns: id, name, status, advertiserId, agencyId, traffickerId, poNumber, notes.
order_idstringtenant_idstringlist_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 paramsList 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.
qvaluelimitintegeroffsetintegertenant_idstringcreate_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 paramsCreate 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....
namestringnotesstringdry_runbooleanagency_idvaluepo_numberstringtenant_idstringadvertiser_idintegercheck_existingbooleanconfirmation_tokenvaluearchive_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 paramsArchive 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.
dry_runbooleanorder_idstringtenant_idstringconfirmation_tokenvalueapprove_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 paramsApprove 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.
dry_runbooleanorder_idstringtenant_idstringconfirmation_tokenvalueverify_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 paramsPre-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.
order_idstringtenant_idstringupdate_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 paramsUpdate an existing GAM Order. Uses read-modify-write: fetches the order, applies updates, and saves. Supported fields: name, poNumber, notes, traffickerId, startDateTime, endDateTime, totalBudget.
dry_runbooleanupdatesobjectorder_idstringtenant_idstringconfirmation_tokenvalueget_contactsList GAM contacts, optionally filtered by company. Returns: list of contacts with id, name, companyId, email.2 paramsList GAM contacts, optionally filtered by company. Returns: list of contacts with id, name, companyId, email.
tenant_idstringcompany_idvaluecreate_contactCreate a GAM Contact associated with a Company/Advertiser. Contacts can be attached to Orders for billing and communication purposes.8 paramsCreate a GAM Contact associated with a Company/Advertiser. Contacts can be attached to Orders for billing and communication purposes.
namestringemailstringphonevaluetitlevaluedry_runbooleantenant_idstringcompany_idintegerconfirmation_tokenvaluecreate_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 paramsCreate Line Items for a deployed job. Requires the job to have targeting configured in Firestore. Creates Line Items (one per Ad Unit).
job_idstringdry_runbooleantenant_idstringname_templatevalueconfirmation_tokenvalueactivate_line_itemsActivate all Line Items for a job (PAUSED -> DELIVERING).4 paramsActivate all Line Items for a job (PAUSED -> DELIVERING).
job_idstringdry_runbooleantenant_idstringconfirmation_tokenvaluepause_line_itemsPause all Line Items for a job (DELIVERING -> PAUSED).4 paramsPause all Line Items for a job (DELIVERING -> PAUSED).
job_idstringdry_runbooleantenant_idstringconfirmation_tokenvalueget_line_itemGet a single line item by ID.2 paramsGet a single line item by ID.
tenant_idstringline_item_idstringupdate_line_itemUpdate a specific Line Item (e.g., changes to targeting, dates, or status).5 paramsUpdate a specific Line Item (e.g., changes to targeting, dates, or status).
updateobjectdry_runbooleantenant_idstringline_item_idstringconfirmation_tokenvaluelist_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 paramsList Line Items belonging to a specific Order. Returns details: id, name, status, stats, goals, etc. Supports pagination via offset and limit parameters.
limitintegeroffsetintegerorder_idintegertenant_idstringduplicate_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 paramsDuplicate 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.
dry_runbooleanoverridesvaluetenant_idstringline_item_idstringconfirmation_tokenvaluearchive_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 paramsArchive 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.
dry_runbooleantenant_idstringline_item_idstringconfirmation_tokenvalueverify_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 paramsPre-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.
tenant_idstringline_item_idstringapprove_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 paramsApprove 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.
dry_runbooleantenant_idstringline_item_idstringconfirmation_tokenvaluecreate_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 paramsCreate 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.
namestringsizesvaluedry_runbooleanorder_idintegerpriorityvaluetenant_idstringad_unit_idsarraycurrency_codevalueenvironment_typestringfloor_cpm_microsintegerroadblocking_typestringconfirmation_tokenvaluedelivery_rate_typevaluefrequency_cap_periodstringvideo_max_duration_msintegercreative_rotation_typevaluefrequency_cap_impressionsintegercreate_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 paramsCreate 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.
namestringsizesvaluedry_runbooleanorder_idintegertenant_idstringad_unit_idsarraycurrency_codestringend_date_timevalueallow_overbookbooleanstart_date_timevalueenvironment_typestringfloor_cpm_microsintegerconfirmation_tokenvaluefrequency_cap_periodstringfrequency_cap_impressionsintegerlist_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 paramsList 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.
tenant_idstringstatus_filtervalueupdate_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 paramsUpdate 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.
dry_runbooleantenant_idstringline_item_idstringtargeting_fieldsobjectconfirmation_tokenvaluecreate_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 paramsCreate 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...
namestringsizesvaluedeal_idintegerdry_runbooleanorder_idintegertenant_idstringad_unit_idsarraycurrency_codevalueend_date_timevaluestart_date_timevalueenvironment_typestringfloor_cpm_microsintegerconfirmation_tokenvaluecreative_size_typestringfrequency_cap_periodstringfrequency_cap_impressionsintegerlist_creatives_by_advertiserList all creatives associated with a specific advertiser.2 paramsList all creatives associated with a specific advertiser.
tenant_idstringadvertiser_idstringupload_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.
namestringdry_runbooleanfile_pathstringtenant_idstringconfirmation_tokenvalueassociate_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 paramsAssociate 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).
dry_runbooleantenant_idstringcreative_idintegerline_item_idintegerconfirmation_tokenvalueupdate_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 paramsUpdate 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...
dry_runbooleantenant_idstringcreative_idintegerupdate_fieldsobjectconfirmation_tokenvaluelist_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 paramsList all creatives associated with a specific line item. Uses LICA service to find associations, then Creative service to fetch details.
tenant_idstringline_item_idstringget_creativeFetch details for a single creative by ID.2 paramsFetch details for a single creative by ID.
tenant_idstringcreative_idstringget_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 paramsGenerate 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.
site_urlstringtenant_idstringcreative_idstringline_item_idstringget_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 paramsGenerate 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...
tenant_idstringdefault_site_urlstringli_creative_pairsarrayupload_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 paramsUpload 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...
namestringwidthintegerheightintegerdry_runbooleanfile_pathstringtenant_idstringline_item_idintegeradvertiser_idintegerdestination_urlstringconfirmation_tokenvaluebulk_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 paramsUpload 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...
filesarraydry_runbooleantenant_idstringadvertiser_idintegerline_item_idsvaluedestination_urlstringskip_duplicatesbooleanconfirmation_tokenvaluecreate_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 paramsCreate 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,...
namestringwidthintegerheightintegerdry_runbooleantenant_idstringhtml_snippetstringadvertiser_idintegerconfirmation_tokenvalueis_safe_frame_compatiblebooleanthird_party_impression_tracking_urlsvaluecreate_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 paramsCreate 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).
namestringwidthintegerheightintegerdry_runbooleantenant_idstringadvertiser_idintegertracking_urlsvaluevast_redirect_urlstringconfirmation_tokenvaluecreate_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 paramsCreate 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...
namestringwidthintegerheightintegerdry_runbooleantenant_idstringhtml_snippetstringadvertiser_idintegerconfirmation_tokenvalueupload_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 paramsUpload 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...
namestringwidthintegerheightintegerdry_runbooleanfile_pathstringtenant_idstringforce_fluidbooleanadvertiser_idintegerauto_detect_fluidbooleanconfirmation_tokenvalueallow_safeframe_breakoutbooleancompress_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 paramsCompress 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...
dry_runbooleanfile_pathstringtarget_kbintegertenant_idstringconfirmation_tokenvalueget_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 paramsList 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.
tenant_idstringline_item_idstringget_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 paramsFetch 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.
tenant_idstringline_item_idsarraydeactivate_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 paramsDeactivate 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.
dry_runbooleantenant_idstringcreative_idintegerline_item_idintegerconfirmation_tokenvaluedelete_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 paramsDelete 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.
dry_runbooleanlica_idsarraytenant_idstringline_item_idstringconfirmation_tokenvaluecreate_audio_creativeCreate a VAST AudioCreative in GAM.7 paramsCreate a VAST AudioCreative in GAM.
namestringdry_runbooleantenant_idstringadvertiser_idintegerduration_millisintegervast_redirect_urlstringconfirmation_tokenvaluelist_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 paramsSearch 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.
qvaluelimitintegeroffsetintegertenant_idstringarchive_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 paramsArchive (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.
dry_runbooleantenant_idstringcreative_idintegerconfirmation_tokenvaluelist_native_stylesList NativeStyles in the GAM network with optional name filter.4 paramsList NativeStyles in the GAM network with optional name filter.
limitintegeroffsetintegertenant_idstringname_filtervalueget_native_styleFetch a single NativeStyle by ID, including HTML/CSS snippets and fluid settings.2 paramsFetch a single NativeStyle by ID, including HTML/CSS snippets and fluid settings.
tenant_idstringnative_style_idintegerupdate_native_styleUpdate a NativeStyle's HTML, CSS, name, or size settings.10 paramsUpdate a NativeStyle's HTML, CSS, name, or size settings.
namevaluewidthvalueheightvaluedry_runbooleanis_fluidvaluetenant_idstringcss_snippetvaluehtml_snippetvaluenative_style_idintegerconfirmation_tokenvaluearchive_native_styleArchive a NativeStyle so it stops serving.4 paramsArchive a NativeStyle so it stops serving.
dry_runbooleantenant_idstringnative_style_idintegerconfirmation_tokenvaluecreate_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 paramsCreate 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...
namestringwidthintegerheightintegerdry_runbooleanfile_pathstringtenant_idstringadvertiser_idintegerdestination_urlvalueconfirmation_tokenvaluethird_party_impression_tracking_urlsvaluecreate_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 paramsCreate 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...
namestringwidthintegerheightintegerdry_runbooleancss_pathvaluezip_pathvaluehtml_pathvaluetenant_idstringimage_pathvalueadvertiser_idintegerdestination_urlvalueconfirmation_tokenvalueensure_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 paramsEnsure 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...
tenant_idstringforce_recreatebooleancreate_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 paramsCreate 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...
bodyvaluenamestringwidthintegerheightintegerdry_runbooleanheadlinestringclick_urlstringlogo_pathvaluetenant_idstringsponsored_byvalueadvertiser_idintegercall_to_actionvaluedestination_urlvaluemain_image_pathstringconfirmation_tokenvaluelist_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 paramsList 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).
limitintegeroffsetintegertenant_idstringname_filtervalueget_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 paramsFetch 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.
tenant_idstringtemplate_idintegercheck_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 paramsCheck the real-time delivery status of a job's line items. Returns the aggregated lifecycle status (DELIVERING, READY, etc.) and per-line-item statuses.
job_idstringtenant_idstringfetch_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 paramsFetch a delivery report for the job (Impressions, Clicks, CTR). Returns a list of rows (one per Line Item). Uses Firestore cache when available.
job_idstringtenant_idstringrun_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 paramsRun 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...
apistringfiltersvaluemetricsarrayend_datestringtenant_idstringdimensionsarraystart_datestringdate_range_typestringfetch_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 paramsFetch an inventory report: ad requests, impressions, fill rate per ad unit. Costs 0.5 credits. Defaults to LAST_MONTH if no dates are provided.
apistringend_datestringtenant_idstringad_unit_idvaluestart_datestringget_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 paramsRetrieve 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).
result_idstringtenant_idstringexport_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 paramsExport 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...
apistringfiltersvaluemetricsarrayend_datestringtenant_idstringdimensionsarraystart_datestringexport_formatstringget_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 paramsList 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...
apistringget_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 paramsList 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...
apistringget_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 paramsGet an availability forecast for arbitrary targeting without an existing job. Returns: availableUnits, matchedUnits, deliveredUnits, utilizationPercent, contendingLineItems, recommendation (with riskLevel).
end_datestringtenant_idstringkey_valuesvaluestart_datestringad_unit_idsarraygeo_targetingvaluecreative_sizesvalueprimary_goal_unitsvalueget_delivery_forecast_by_line_itemGet an availability forecast for an existing Line Item. Returns: availableUnits, forecastUnits, possibleUnits, unitType, lineItemId.2 paramsGet an availability forecast for an existing Line Item. Returns: availableUnits, forecastUnits, possibleUnits, unitType, lineItemId.
tenant_idstringline_item_idstringlist_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 paramsList 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...
tenant_idstring
A skill for Claude, ChatGPT, Gemini, and OpenAI Codex that gives your AI assistant direct access to Google Ad Manager.
→ Get started free at orbiads.com · ★ Star this repo
OrbiAds offers two integration methods — choose the one that fits your workflow.
Connect your AI assistant (Claude, ChatGPT, Gemini) to GAM via the hosted MCP endpoint. Conversational, guided, zero-install.
MCP endpoint: https://orbiads.com/mcp
A lightweight Python CLI for developers, CI/CD pipelines, and headless automation. Same API, same credits, same guardrails.
pip install orbiads-cli
orbiads auth login
orbiads network info
| Criteria | MCP Server | CLI |
|---|---|---|
| Interface | AI agent (Claude, ChatGPT, Gemini) | Terminal / command line |
| Installation | URL to paste into agent settings | pip install orbiads-cli |
| Authentication | OAuth via browser (automatic) | OAuth Device Flow (code displayed) |
| Best for | Exploration, conversations, guided workflows | Scripts, CI/CD, headless automation |
| Output format | Natural language via the agent | JSON or structured table |
| Credits | Same consumption grid | Same consumption grid |
| Offline | No — requires internet | No — requires internet |
| Python required | No | Yes (3.10+) |
Both methods share the same backend, credits, and safety guardrails.
| Command | Description |
|---|---|
orbiads auth login | Authenticate via Google OAuth Device Flow |
orbiads auth status | Check authentication status |
orbiads network info | Show current GAM network details |
orbiads network list | List accessible GAM networks |
orbiads orders list | List orders in the network |
orbiads line-items list --order ID | List line items for an order |
orbiads creatives list | List creatives |
orbiads inventory ad-units | List ad units |
orbiads forecast check --ad-unit ID | Check inventory availability |
orbiads report run --template ID | Run a delivery report |
Full command reference: orbiads.com/docs/cli/commands
OrbiAds offers three integration pathways depending on your environment.
Connect your AI assistant to our hosted server using the Model Context Protocol:
claude_desktop_config.json:
{
"mcpServers": {
"orbiads": {
"type": "http",
"url": "https://orbiads.com/mcp"
}
}
}
https://orbiads.com/mcphttps://orbiads.com/mcphttps://orbiads.com/mcp endpoint to your configuration and copy AGENTS.md to your project root.Add the /adops command set directly into your Claude Code CLI terminal:
claude plugin install orbiads
Install our markdown-based guidelines permanently into Claude Code's memory:
./install.sh skills --copy
This copies our 6 consolidated skill files to your ~/.claude/skills/ directory. Claude Code will automatically leverage them to prevent hallucinations and strictly apply the preview-to-execute workflow.
→ Installation guides: Claude · ChatGPT · Gemini · OpenAI Codex
OrbiAds is a hosted MCP server that connects your AI assistant directly to Google Ad Manager (GAM). Instead of clicking through the GAM interface or writing API scripts, you describe what you want in plain language — OrbiAds handles the API calls, guardrails, and audit trail.
You: "Check inventory availability on the homepage banner for a 300x250 in France next week"
OrbiAds: [runs forecast] → Available: 1.2M impressions. Pressure: low. Safe to traffic.
You: "Create the line item for Renault, €15 CPM, Monday to Friday"
OrbiAds: [applies guardrails] → Preview ready. Confirm to push?
No scripts. No API tokens to manage. No switching tabs.
| Platform | Setup guide | Mode |
|---|---|---|
| Claude (Desktop / claude.ai / Claude Code) | docs/install/claude.md | Plugin + MCP remote |
| ChatGPT (Pro connector) | docs/install/chatgpt.md | MCP remote (HTTP) |
| Gemini | docs/install/gemini.md | MCP remote |
| GLAMA (MCP registry) | glama.ai/mcp/servers/OrbiAds/Orbiads-GAM-MCP | MCP registry |
| Cursor / Codex / Warp / other | AGENTS.md | AGENTS.md + MCP wiring |
All platforms connect to the same hosted MCP endpoint at https://orbiads.com/mcp.
After installing the plugin, these /adops commands are available directly in Claude Code.
| Command | What it does |
|---|---|
/adops campaign | Deploy, preview, pause, rollback — with mandatory forecast gate before any write |
/adops audit | Multi-dimensional account audit: delivery, inventory, security, creatives, billing |
/adops report | Custom reports, delivery queries, CSV export, billing summaries, forecasts |
/adops deal | PMP deals, private auctions, Marketplace PG/PD proposals |
/adops creative | Upload creatives, QA compliance, SSL validation, preview URLs, line item association |
The OrbiAds surface maps the Google Ad Manager API into 28 parent tools and 270+ actions, consolidated into 6 core Agent Skills to keep context usage clean.
Click on any domain below to see which tools and capabilities are included:
campaign — Create, update, pause, and rollback campaigns.orders — Create and list orders, contacts, and roles.line_items — Define line item delivery rules, CPMs, and targeting logic.creatives — Upload creatives (images, HTML5, video/audio) and configure native styles.creative_assets — Manage associated image and file assets.creative_qa — Audit click-trackers, perform compliance scans, and validate SSL certificates.creative_wrapper_skill — Manage third-party wrappers and delivery presets.formats — Discover and configure ad creative formats.jobs & gam_jobs — Monitor async campaign compilation and deployment workflows.inventory — Retrieve ad unit trees, sizes, and generate ads.json manifests.placements — Create, update, and list ad placement groups.targeting — Manage custom targeting keys/values, countries, and categories.audiences — Retrieve and modify first-party audience segments.blueprint — Generate and push structured network inventory blueprints.reporting — Run custom reports from templates, check line item delivery, and integrate GA4.preview — Verify inventory coverage and export preview URLs.pql — Run raw PQL database queries.deals — Manage PMP deals, private auctions, and marketplace buyers.companies — Manage agency and advertiser company profiles.gam_admin — Access advanced fields, network labels, teams, and site records.gam_features — Query active Google Ad Manager beta and system features.network — List accessible networks and switch active network context.settings — Configure default CPMs, pacing, and brand naming templates.tenant_catalog — Access tenant-specific catalogs.audit_skill — Run automated security, hygiene, and wrapper coverage audits.billing — Fetch credit balances and transaction histories.audit — Search network audit logs.See
docs/tool-matrix/README.mdfor the complete parity matrix detailing exact costs, writes, and parameters for all 270+ actions.
Every write action requires explicit confirmation. No campaign goes live by accident.
Go to orbiads.com and sign up. You get 5 free credits — no credit card required.
From the OrbiAds dashboard, click Connect GAM and authorize with your Google account. OrbiAds uses OAuth — your GAM credentials never leave Google's infrastructure.
Pick your platform and follow the guide:
Then start with:
"Connect to my GAM account and show me my active networks"
| Property | Value |
|---|---|
| Endpoint | https://orbiads.com/mcp |
| Transport | streamable-http (default) · sse |
| Auth | OAuth 2.0 — Google account via OrbiAds |
| GAM API version | v202605 |
| MCP Protocol | 2025-03-26 |
skills/ ← 27 parent-tool sub-skills + orchestrator (generated from backend)
commands/ ← 5 /adops slash commands for Claude Code
agents/ ← Parallel audit subagents (audit-delivery, audit-inventory, …)
hooks/ ← Claude Code hooks (hooks.json)
cli/ ← OrbiAds CLI package (pip install orbiads-cli)
docs/ ← Installation guides, tool matrix, query library
_docs/ ← Internal: legacy tool mapping, anti-collision rules
.claude-plugin/ ← Claude plugin manifest (plugin.json, marketplace.json)
AGENTS.md ← Cross-LLM contract for Cursor, Codex, Gemini, Warp, etc.
CLAUDE.md ← Claude Code project guidance
Skills and the tool matrix are generated from the backend catalogue — do not hand-edit them. See
CLAUDE.mdfor the generated vs. hand-authored breakdown.
| Plan | Price | Credits |
|---|---|---|
| Trial | Free | 5 credits (no card) |
| Starter | €39/month | 50 credits/month |
| Early Access | €29/month ← locked for life | 50 credits/month |
| Pack S | €29 one-time | +50 credits |
| Pack L | €45 one-time | +100 credits |
Reads are always free. Credits are only consumed on write and deploy operations.
The contents of this repository — distribution scaffold, skills, agents, workflows, JSON schemas, CLI client, platform integration manifests, documentation, and examples — are released under the MIT License.
The OrbiAds MCP server backend and Cloud Run services that the hosted endpoint at https://orbiads.com/mcp connects to are NOT in this repository and are governed by separate proprietary terms — see terms at orbiads.com.
io.github.mindstone/mcp-server-microsoft-teams
com.mintmcp/outlook-email
helbertparanhos/resend-email-mcp
marlinjai/email-mcp
io.github.mindstone/mcp-server-email-imap
io.github.osamahassouna/email-playbook-mcp