# AdsCove > AdsCove is an approval-gated advertising-operations server that connects AI agents to Shopify, Meta Ads, and Google Ads. Last reviewed: 2026-07-10 Canonical site: https://adscove.com/ Product introduction: https://adscove.com/docs Security and approval model: https://adscove.com/docs/security ROAS methodology and limits: https://adscove.com/guides/shopify-meta-google-roas AI advertising write-safety guide: https://adscove.com/guides/ai-ad-operations-safety Pricing and binding limits: https://adscove.com/docs/pricing Live tool reference: https://adscove.com/docs/tools ## Product facts - Current registry: 205 tools (130 read, 75 write). This count is generated from the running tool registry. - MCP endpoint: https://adscove.com/api/mcp - MCP full catalog: https://adscove.com/api/mcp?tools=full - REST endpoint template: https://adscove.com/api/v1/tools/{tool_name} - Authentication: OAuth for clients that support remote-MCP OAuth, or Authorization: Bearer sk_live_xxx for API keys. - MCP default catalog: compact. It exposes common workflows plus run_adscove_tool for any canonical tool name. - MCP compatibility: clients should send Accept: application/json, text/event-stream. JSON-only clients are also supported. - Setup: connect platforms at /connections, then add /api/mcp as a Remote MCP server. API-key clients can generate a key at /keys. - Errors include error.code, category, retryable, user_action, and operator_action. Branch on error.code first. - Unconnected platform tools return not_connected. Listed tools without a live adapter return capability_not_implemented, never sample success. - Real writes require explicit approval tied to execution_id. Meta and Google creation tools create PAUSED resources before any separate activation. - Internal units are protection counters, not billing units. ## Interpretation limits - AdsCove blended_roas is Shopify GMV divided by combined Meta and Google spend. Because it uses total store GMV, it is closer to MER than campaign-level attribution ROAS. - Shopify order aggregation is capped at 2,500 orders per store per requested interval and reports when the result is sampled. - Monetary totals are added without foreign-exchange conversion; connected sources should use the same reporting currency. - AdsCove is in beta and does not provide an uptime SLA. Native platform safeguards should remain enabled. ## Codex skills - Skills documentation: https://adscove.com/docs/skills - Install the ecommerce launch orchestrator from /api/codex-skills/adscove-ecommerce-launch-orchestrator. - Ad Library capture and image generation skills remain available at their existing endpoints. ## Tools - run_adscove_tool: Execute any canonical AdsCove tool by passing { tool_name, arguments }. Available in the compact MCP catalog only; normal approval gates still apply. calls=0 read_only=false - list_connections: List platform connection status for the current user. calls=0 read_only=true - get_connection_health: Check token, scope, and platform health across connected accounts. calls=0 read_only=true - get_usage_status: Return current plan, binding usage, and internal protection status. calls=0 read_only=true - get_daily_business_report: Aggregate Shopify GMV, Meta spend, Google spend, and blended ROAS. calls=1 read_only=true - get_campaign_performance: Return cross-platform campaign performance in a shared schema. calls=1 read_only=true - analyze_attribution_gap: Compare platform ROAS against Shopify order attribution. calls=1 read_only=true - recommend_next_actions: Produce rule-based next actions without calling an LLM. calls=1 read_only=true - get_business_performance_insights: One call returns the daily business report, cross-platform campaign performance, Google search-term diagnosis, and rule-based recommended actions. Use this FIRST for 'how are my accounts doing / what should I optimize' questions to avoid many separate round-trips. calls=1 read_only=true - approve_action: Execute a pending write after the user explicitly consents in conversation. Requires the execution_id returned by the pending action. NEVER call this without asking the user first. calls=0 read_only=false - reject_action: Reject a pending write on the user's behalf after they decline in conversation. calls=0 read_only=false - create_ad_library_launch_batch: Create Shopify draft products and paused Meta launch objects from structured ad-library records. calls=1 read_only=false - get_meta_help_article: Look up curated guidance and official Meta documentation links for an ads topic or Graph API error code. Free; works without a connected account. calls=0 read_only=true - list_adscove_capabilities: List synced skill and workflow capabilities with mapped tools. calls=0 read_only=true - get_adscove_capability: Return one synced skill/workflow playbook. calls=0 read_only=true - plan_adscove_workflow: Map a natural-language goal to safe AdsCove tools and approval gates. calls=1 read_only=true - get_profit_report: Calculate Shopify revenue minus product cost and Meta/Google spend, accepting stored unit costs, a customer cost rate, or a customer gross margin. calls=1 read_only=true - set_spend_guardrail: Create or update a daily account/campaign budget for a saved Meta or Google account and alert when actual daily spend goes above it. Pause actions use R3 approval; notify-only uses R1. calls=1 read_only=false - list_spend_guardrails: List active or triggered spend protection rules and dashboard notifications. calls=1 read_only=true - remove_spend_guardrail: Disable an AdsCove spend guardrail and its native Meta automated rule when present. calls=1 read_only=false - audit_tracking_urls: Audit active Meta and Google ad URLs for missing or inconsistent UTMs, source mismatches, and unreachable landing pages. calls=0 read_only=true - meta_list_campaigns: List Meta campaigns. calls=1 read_only=true - meta_list_adsets: List Meta ad sets. calls=1 read_only=true - meta_list_ads: List Meta ads. calls=1 read_only=true - meta_fetch_insights: Fetch Meta Ads insights. calls=1 read_only=true - meta_get_campaign_performance: Pull campaign-level Meta metrics with conversion, CPA, and ROAS helpers. calls=1 read_only=true - meta_get_adset_performance: Pull ad-set performance within a campaign or account. calls=1 read_only=true - meta_analyze_ad_performance: Analyze ad-level spend, CTR, CPA, ROAS, and conversion action mix. calls=1 read_only=true - meta_get_audience_insights: Break Meta performance down by age, gender, country, or placement. calls=1 read_only=true - meta_analyze_audiences: Rank audience segments and surface weak/high-ROAS demographic pockets. calls=1 read_only=true - meta_analyze_wasted_spend: Find Meta campaigns, ad sets, or ads spending without enough conversions or ROAS. calls=1 read_only=true - meta_detect_creative_fatigue: Detect ads with declining CTR/CVR over daily trend data. calls=1 read_only=true - meta_explain_anomaly: Explain recent CPA, CTR, spend, or conversion spikes against the previous period. calls=1 read_only=true - meta_get_ad_creatives: Return ad creative composition, thumbnails, story IDs, image URLs, and asset feed specs. calls=1 read_only=true - meta_search_interests: Search Meta targeting interests. calls=1 read_only=true - meta_search_targeting: Search Meta targeting interests, demographics, and behaviors by keyword. calls=1 read_only=true - meta_browse_targeting: Browse Meta targeting categories such as interests, behaviors, and demographics. calls=1 read_only=true - meta_list_custom_audiences: List existing custom, lookalike, website, and engagement audiences. calls=1 read_only=true - meta_create_custom_audience: Create a website-behavior custom audience from a Pixel using all-visitors, URL-contains, event, or raw rule input. calls=1 read_only=false - meta_create_lookalike: Create a 1%-20% lookalike from an existing origin audience. Use meta_list_custom_audiences first to select the origin. calls=1 read_only=false - meta_list_pages_and_pixels: List available Pages and Pixels. calls=1 read_only=true - meta_list_pixels: List Meta Pixels configured for the connected ad account. calls=1 read_only=true - meta_list_instagram_accounts: List Instagram accounts connected to the Meta ad account. calls=1 read_only=true - meta_discover_assets: Discover images, videos, and ad creatives already available in the ad account. calls=1 read_only=true - meta_validate_assets: Validate image, video, and carousel asset inputs before creating Meta campaigns. calls=1 read_only=true - meta_select_campaign_type: Choose image, video, carousel, or DCO flow based on supplied creative inputs. calls=0 read_only=true - meta_get_campaign_details: Read detailed campaign settings, budgets, status, and objective. calls=1 read_only=true - meta_get_campaign_targeting: Read ad-set targeting under a campaign, including geo, audiences, placements, and promoted objects. calls=1 read_only=true - meta_list_automated_rules: List native Meta automated ad rules for the connected ad account. calls=1 read_only=true - meta_build_launch_plan: Build a structured launch plan from provided inputs. calls=1 read_only=true - get_meta_campaign_performance: Alias for meta_get_campaign_performance. calls=1 read_only=true - get_meta_adset_performance: Alias for meta_get_adset_performance. calls=1 read_only=true - analyze_meta_ad_performance: Alias for meta_analyze_ad_performance. calls=1 read_only=true - search_meta_targeting: Alias for meta_search_targeting. calls=1 read_only=true - list_meta_campaigns: Alias for meta_list_campaigns. calls=1 read_only=true - list_meta_ad_sets: Alias for meta_list_adsets. calls=1 read_only=true - list_meta_ads: Alias for meta_list_ads. calls=1 read_only=true - meta_upload_creative: Upload a creative asset for later use. calls=1 read_only=false - meta_upload_video: Upload a video URL or an AdsCove R2 object to the Meta video library. calls=1 read_only=false - meta_get_video_status: Check Meta video processing status before creating an ad. calls=0 read_only=true - meta_create_paused_campaign: Create a paused Meta campaign draft. calls=1 read_only=false - meta_create_paused_adset: Create a paused Meta ad set under an existing campaign. calls=1 read_only=false - meta_create_paused_ad: Create a paused Meta ad, creating the creative first when needed. calls=1 read_only=false - meta_clone_existing_post_ads: Clone ads from an existing post into paused ads. calls=1 read_only=false - meta_duplicate_entity: Deep-copy a Meta campaign, ad set, or ad into PAUSED status. Supports rename options and optional destination campaign/ad set overrides. calls=1 read_only=false - meta_bulk_update_status: Serially update 1-50 Meta campaigns, ad sets, or ads to ACTIVE, PAUSED, or ARCHIVED; individual failures do not stop the batch. calls=1 read_only=false - meta_create_test_matrix: Create up to 5 paused ad sets × 6 paused creatives (30 paused ads maximum) under an existing or new paused campaign. calls=1 read_only=false - meta_create_automated_rule: Create a native Meta automated rule for stop-loss, notification, or budget scaling. calls=1 read_only=false - meta_update_automated_rule: Update a native Meta automated rule's status, schedule, conditions, or action. calls=1 read_only=false - meta_disable_automated_rule: Disable a native Meta automated rule without deleting it. calls=1 read_only=false - meta_update_status: Change Meta campaign, ad set, or ad status. calls=1 read_only=false - meta_update_budget: Change Meta campaign or ad set budget. calls=1 read_only=false - meta_upload_offline_conversions: Upload up to 500 CRM, phone, or store conversions to a Meta Pixel/dataset. Email and phone values are normalized and SHA-256 hashed only in memory; dry-run returns a redacted coverage summary. calls=1 read_only=false - meta_update_entity: General update for a campaign, ad set, or ad: name, status, schedule, bid strategy, targeting, or budget in one call. calls=1 read_only=false - meta_get_dataset_quality: Read EMQ (event match quality) score, match-key feedback, event coverage, dedup, and freshness for a Pixel/dataset. calls=1 read_only=true - meta_get_dataset_stats: Read Pixel/dataset event statistics with an aggregation such as event_total_counts, event_source, or match_keys. calls=1 read_only=true - meta_get_dataset_errors: Surface Pixel/CAPI event processing problems and match-quality diagnostics for a dataset. calls=1 read_only=true - meta_list_catalogs: List product catalogs owned by the connected Business. calls=1 read_only=true - meta_get_catalog_details: Read one product catalog's name, vertical, and product count. calls=1 read_only=true - meta_get_catalog_diagnostics: List catalog errors and warnings that block products from ads. calls=1 read_only=true - meta_list_catalog_products: List products in a catalog with price, availability, visibility, and review status. calls=1 read_only=true - meta_get_product_details: Read one catalog product's full details including review status. calls=1 read_only=true - meta_list_product_sets: List product sets in a catalog with product counts and filters. calls=1 read_only=true - meta_get_product_set_products: List the products inside a product set. calls=1 read_only=true - meta_list_product_feeds: List catalog data feeds with schedule and latest upload. calls=1 read_only=true - meta_get_product_feed_details: Read one data feed's schedule, recent uploads, and latest upload errors. calls=1 read_only=true - meta_list_ab_tests: List Meta ad studies (split tests) for the connected Business. calls=1 read_only=true - meta_create_ab_test: Create a Meta split test (ad study) with named cells over existing campaigns or ad sets. calls=1 read_only=false - meta_get_activity_log: Read the ad account change history (who changed what, when) mirroring Ads Manager activity. calls=1 read_only=true - google_list_accessible_customers: List accessible Google Ads customers. calls=0 read_only=true - google_list_campaigns: List Google Ads campaigns. calls=1 read_only=true - google_list_ad_groups: List Google Ads ad groups. calls=1 read_only=true - google_fetch_performance: Fetch Google Ads performance. calls=1 read_only=true - google_get_ad_performance: Pull ad-level performance with CTR, CPC, CPA, ROAS, ad type, and live status. calls=1 read_only=true - google_analyze_wasted_spend: Find search terms, keywords, or ads spending without enough conversions or ROAS. calls=1 read_only=true - google_search_terms_report: Fetch search terms report. calls=1 read_only=true - google_analyze_search_terms: Summarize search-term waste, winners, and negative-keyword candidates. calls=1 read_only=true - google_explain_performance_anomaly: Compare recent Google Ads metrics against a prior baseline and explain likely causes. calls=1 read_only=true - google_optimize_budget_allocation: Recommend budget shifts across campaigns from CPA/ROAS evidence without mutating budgets. calls=1 read_only=true - google_keyword_ideas: Generate keyword ideas. calls=1 read_only=true - google_research_keywords: Alias-friendly keyword research with volume, competition, and bid estimates when Google returns them. calls=1 read_only=true - google_keyword_historical_metrics: Return exact avg monthly searches, 12-month search trend, competition, and top-of-page bid range for a keyword list. Growth plan. calls=1 read_only=true - google_forecast_keywords: Forecast campaign-level impressions, clicks, cost, and conversions for a keyword list at a given CPC bid and daily budget. Growth plan. calls=1 read_only=true - google_plan_keyword_campaign: Full-flow plan: keyword research + historical metrics + forecast, returning a ready-to-approve google_create_search_draft payload. Growth plan. calls=1 read_only=true - google_suggest_ad_content: Generate Search/PMax/Display copy within Google Ads character limits from product and offer inputs. calls=0 read_only=true - google_get_ad_creative: Read existing Google ad creative composition, final URLs, text assets, and asset references. calls=1 read_only=true - google_discover_existing_assets: Browse reusable Google Ads image, text, YouTube video, sitelink, callout, and snippet assets. calls=1 read_only=true - google_validate_and_prepare_assets: Validate copy, image asset references, and URL inputs before Search, PMax, or Display creation. calls=1 read_only=true - google_list_conversion_actions: List account conversion actions, tracking status, category, and inclusion settings. calls=1 read_only=true - google_get_conversion_action_performance: Break down conversions, value, CPA, and ROAS by conversion action. calls=1 read_only=true - google_get_campaign_targeting: Read campaign location, language, device, schedule, topic, and audience criteria. calls=1 read_only=true - google_build_search_plan: Build a search campaign plan. calls=1 read_only=true - google_build_display_plan: Build a Display/GDN launch plan without mutating Google Ads. calls=1 read_only=true - google_create_search_draft: Create a paused Google Search draft. calls=1 read_only=false - google_create_pmax_asset_plan: Create a PMax asset plan without mutating Google Ads. calls=1 read_only=true - google_get_pmax_search_themes: Read search-theme signals attached to a Performance Max asset group. calls=1 read_only=true - google_search_audiences: Search reusable Google audiences and user-interest segments for PMax audience signals. calls=1 read_only=true - google_create_pmax_draft: Create a paused Performance Max campaign with an asset group. calls=1 read_only=false - google_create_display_draft: Create a paused Display campaign with a responsive display ad. calls=1 read_only=false - google_add_pmax_search_themes: Add reviewed search-theme signals to a PMax asset group. calls=1 read_only=false - google_remove_pmax_search_themes: Remove reviewed search-theme signals from a PMax asset group. calls=1 read_only=false - google_add_pmax_audience_signal: Attach an existing Google audience as a PMax asset-group signal. calls=1 read_only=false - google_list_campaign_extensions: List sitelink, callout, and structured-snippet assets linked to a campaign. calls=1 read_only=true - google_add_sitelinks: Create and link sitelink assets to a campaign after approval. calls=1 read_only=false - google_remove_sitelinks: Remove matching sitelink campaign-asset links after approval. calls=1 read_only=false - google_add_callout_extensions: Create and link callout assets to a campaign after approval. calls=1 read_only=false - google_remove_callouts: Remove matching callout campaign-asset links after approval. calls=1 read_only=false - google_add_structured_snippets: Create and link structured-snippet assets to a campaign after approval. calls=1 read_only=false - google_remove_structured_snippets: Remove matching structured-snippet campaign-asset links after approval. calls=1 read_only=false - google_add_search_campaign_image: Link uploaded image or logo assets to a Search campaign after approval. calls=1 read_only=false - google_apply_negative_keywords: Apply negative keywords to a campaign or ad group. calls=1 read_only=false - google_update_bid_strategy: Change a campaign standard bidding strategy after approval. calls=1 read_only=false - google_update_budget_or_bid: Change Google budget or bidding limits. calls=1 read_only=false - google_update_status: Change Google campaign, ad group, or ad status. calls=1 read_only=false - google_update_ad_group_status: Pause or enable a Google ad group after approval. calls=1 read_only=false - get_ad_performance: Alias for google_get_ad_performance. calls=1 read_only=true - analyze_wasted_spend: Alias for google_analyze_wasted_spend. calls=1 read_only=true - analyze_search_terms: Alias for google_analyze_search_terms. calls=1 read_only=true - explain_performance_anomaly: Alias for google_explain_performance_anomaly. calls=1 read_only=true - optimize_budget_allocation: Alias for google_optimize_budget_allocation. calls=1 read_only=true - research_keywords: Alias for google_research_keywords. calls=1 read_only=true - keyword_historical_metrics: Alias for google_keyword_historical_metrics. calls=1 read_only=true - forecast_keywords: Alias for google_forecast_keywords. calls=1 read_only=true - plan_keyword_campaign: Alias for google_plan_keyword_campaign. calls=1 read_only=true - suggest_ad_content: Alias for google_suggest_ad_content. calls=0 read_only=true - get_ad_creative: Alias for google_get_ad_creative. calls=1 read_only=true - discover_existing_assets: Alias for google_discover_existing_assets. calls=1 read_only=true - validate_and_prepare_assets: Alias for google_validate_and_prepare_assets. calls=1 read_only=true - create_search_campaign: Alias for google_create_search_draft. calls=1 read_only=false - create_pmax_campaign: Alias for google_create_pmax_draft. calls=1 read_only=false - add_pmax_search_themes: Alias for google_add_pmax_search_themes. calls=1 read_only=false - get_pmax_search_themes: Alias for google_get_pmax_search_themes. calls=1 read_only=true - remove_pmax_search_themes: Alias for google_remove_pmax_search_themes. calls=1 read_only=false - add_pmax_audience_signal: Alias for google_add_pmax_audience_signal. calls=1 read_only=false - search_audiences: Alias for google_search_audiences. calls=1 read_only=true - update_campaign_budget: Alias for google_update_budget_or_bid. calls=1 read_only=false - pause_campaign: Alias for google_update_status with PAUSED. calls=1 read_only=false - resume_campaign: Alias for google_update_status with ACTIVE. calls=1 read_only=false - pause_ad_group: Alias for google_update_ad_group_status with PAUSED. calls=1 read_only=false - resume_ad_group: Alias for google_update_ad_group_status with ACTIVE. calls=1 read_only=false - add_negative_keywords: Alias for google_apply_negative_keywords. calls=1 read_only=false - update_bid_strategy: Alias for google_update_bid_strategy. calls=1 read_only=false - add_sitelinks: Alias for google_add_sitelinks. calls=1 read_only=false - remove_sitelinks: Alias for google_remove_sitelinks. calls=1 read_only=false - add_callout_extensions: Alias for google_add_callout_extensions. calls=1 read_only=false - remove_callouts: Alias for google_remove_callouts. calls=1 read_only=false - add_structured_snippets: Alias for google_add_structured_snippets. calls=1 read_only=false - remove_structured_snippets: Alias for google_remove_structured_snippets. calls=1 read_only=false - list_campaign_extensions: Alias for google_list_campaign_extensions. calls=1 read_only=true - add_search_campaign_image: Alias for google_add_search_campaign_image. calls=1 read_only=false - get_campaign_targeting: Alias for google_get_campaign_targeting. calls=1 read_only=true - list_conversion_actions: Alias for google_list_conversion_actions. calls=1 read_only=true - get_conversion_action_performance: Alias for google_get_conversion_action_performance. calls=1 read_only=true - shopify_get_store_info: Get Shopify store metadata. calls=0 read_only=true - shopify_list_products: List Shopify products. calls=1 read_only=true - shopify_get_product_context: Fetch product, variant, media, and inventory context. calls=1 read_only=true - shopify_list_orders: List Shopify orders. calls=1 read_only=true - shopify_get_analytics: Calculate Shopify order count, gross sales, AOV, daily trends, and UTM-source attribution from order data. calls=1 read_only=true - shopify_list_collections: List Shopify collections. calls=1 read_only=true - shopify_list_pages: List Shopify pages. calls=1 read_only=true - shopify_create_page_draft: Create an unpublished Shopify page draft. calls=1 read_only=false - shopify_create_product_draft: Create a Shopify product as a draft with optional media. calls=1 read_only=false - shopify_publish_product: Publish a Shopify product to the online store. calls=1 read_only=false - shopify_list_blogs: List Shopify blogs for article publishing. calls=1 read_only=true - shopify_create_blog_article: Create a Shopify blog article as draft or published content. calls=1 read_only=false - shopify_list_themes: List Shopify online store themes. calls=1 read_only=true - shopify_get_theme_asset: Read a Shopify theme section, template, snippet, or asset. calls=1 read_only=true - shopify_build_landing_page_plan: Build a reusable Shopify landing page draft plan. calls=1 read_only=true - shopify_build_abtest_plan: Build a Shopify landing page A/B test and tracking plan. calls=1 read_only=true - shopify_install_abtest_splitter: Install a generic Shopify A/B splitter and tracking snippet. calls=1 read_only=false - shopify_upsert_theme_asset: Create or update a Shopify theme section/template/snippet asset. calls=1 read_only=false - shopify_create_product_template: Create or replace a Shopify JSON product template and optionally assign its template suffix to a product. calls=1 read_only=false - shopify_update_product_copy: Update Shopify product copy, SEO, or assigned product template suffix. calls=1 read_only=false - shopify_update_page: Update a Shopify page. calls=1 read_only=false - shopify_publish_landing_page: Publish a Shopify landing page. calls=1 read_only=false - tiktok_list_campaigns: List campaigns in the saved TikTok advertiser account. calls=1 read_only=true - tiktok_list_adgroups: List TikTok ad groups. calls=1 read_only=true - tiktok_list_ads: List TikTok ads. calls=1 read_only=true - tiktok_fetch_insights: Fetch TikTok campaign and daily reporting metrics. calls=1 read_only=true - tiktok_get_campaign_performance: Return normalized TikTok spend, conversions, CPA, and ROAS. calls=1 read_only=true - tiktok_analyze_wasted_spend: Find TikTok campaigns spending above a threshold with zero conversions or weak ROAS. calls=1 read_only=true - tiktok_search_interests: Recommend TikTok interest keywords for audience planning. calls=1 read_only=true - tiktok_create_paused_campaign: Create a TikTok campaign with operation_status=DISABLE. calls=1 read_only=false - tiktok_create_paused_adgroup: Create a disabled TikTok ad group under an existing campaign. calls=1 read_only=false - tiktok_update_status: Enable or disable TikTok campaigns, ad groups, or ads. calls=1 read_only=false - tiktok_update_budget: Update a TikTok campaign or ad-group budget. calls=1 read_only=false