# AdsCove > AdsCove is an approval-gated advertising-operations server that connects AI agents to Shopify, Meta Ads, Google Ads, and TikTok Ads. Last reviewed: 2026-10-20 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 Meta ROAS vs Shopify revenue: https://adscove.com/guides/meta-roas-vs-shopify 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 Full page index with summaries: https://adscove.com/llms-full.txt ## Hubs - Guides: https://adscove.com/guides - Platforms (Google Ads, Meta Ads, TikTok Ads, optional Shopify): https://adscove.com/platforms - AI client setup guides: https://adscove.com/clients - Ads MCP alternatives compared: https://adscove.com/alternatives - Pipeboard alternative comparison: https://adscove.com/alternatives/pipeboard - GoMarble alternative comparison: https://adscove.com/alternatives/gomarble - Ads MCP glossary: https://adscove.com/glossary - Pricing: https://adscove.com/pricing ## What AdsCove is - AdsCove is a remote MCP server and REST API that lets AI agents (Claude, ChatGPT, Cursor, Codex, Gemini and others) read and operate Shopify, Meta Ads, Google Ads and TikTok Ads, with every real write held for explicit human approval. - Who it is for: Shopify / DTC merchants, in-house media buyers and agencies who want an AI agent to diagnose and change ad accounts safely. - What it is not: not an autonomous agent that changes ads or spends budget without approval. - Languages: every public guide, client and platform page is available in English and Simplified Chinese (prefix /zh). ## Guides - https://adscove.com/guides/meta-ads-mcp-setup - https://adscove.com/guides/google-ads-mcp-setup - https://adscove.com/guides/meta-ads-mcp-vs-adscove - https://adscove.com/guides/google-ads-mcp-vs-adscove - https://adscove.com/guides/shopify-meta-google-roas - https://adscove.com/guides/meta-roas-vs-shopify - https://adscove.com/guides/mcp-for-ecommerce-agents - https://adscove.com/guides/approval-gated-ad-changes - https://adscove.com/guides/hire-media-buyer-vs-ai-agent - https://adscove.com/guides/weekly-ecommerce-diagnosis-workflow - https://adscove.com/guides/adscove-vs-agency-ai-mcp - https://adscove.com/guides/cursor-claude-ecommerce-mcp-install - https://adscove.com/guides/claude-desktop-ecommerce-mcp - https://adscove.com/guides/agent-approve-reject-ad-changes - https://adscove.com/guides/shopify-admin-api-vs-mcp-agents - https://adscove.com/guides/meta-ads-api-vs-mcp-agents - https://adscove.com/guides/google-ads-api-vs-mcp-agents - https://adscove.com/guides/shopify-meta-google-single-mcp-workspace - https://adscove.com/guides/ai-ad-operations-safety ## Platform pages - https://adscove.com/platforms/shopify - https://adscove.com/platforms/meta-ads - https://adscove.com/platforms/google-ads - https://adscove.com/platforms/tiktok-ads ## AI client setup pages - https://adscove.com/clients/claude - https://adscove.com/clients/claude-code - https://adscove.com/clients/cursor - https://adscove.com/clients/windsurf - https://adscove.com/clients/codex - https://adscove.com/clients/gemini-app - https://adscove.com/clients/gemini - https://adscove.com/clients/antigravity - https://adscove.com/clients/openclaw - https://adscove.com/clients/hermes - https://adscove.com/clients/universal - https://adscove.com/clients/chatgpt - https://adscove.com/clients/n8n - https://adscove.com/clients/feishu - https://adscove.com/clients/deepseek - https://adscove.com/clients/doubao ## Product facts - Current registry: 329 tools (182 read, 147 write). This count is generated from the launch-available tool registry. - MCP endpoint: https://adscove.com/api/mcp - MCP full catalog: https://adscove.com/api/mcp?tools=full - MCP expanded catalog (legacy fat compact): https://adscove.com/api/mcp?tools=expanded - 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. - OAuth clients: Codex, Claude web/desktop/mobile, Doubao Desktop, Gemini CLI, eligible Gemini Spark web/mobile accounts, Cursor, and eligible ChatGPT web accounts. - Client limits: Doubao custom connectors are created in its desktop app. Claude and Gemini mobile use connectors first added on the web. ChatGPT custom MCP apps are currently web-only. - MCP default catalog: progressive core. tools/list stays small (connections, reporting, capabilities, discover_adscove_tools, approvals). Call discover_adscove_tools to find platform tool names, then run_adscove_tool. Use ?tools=expanded for the previous fat compact list, or ?tools=full for every schema. - 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, while TikTok creation tools use DISABLE, before any separate activation. - Internal units are protection counters, not billing units. ## Interpretation limits - AdsCove blended_roas is Shopify GMV divided by combined Meta, Google, and TikTok 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 launch-available 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 - hide_connection: After explicit approval, hide an account from lists and chat selection. Hiding does not pause ads or disable rules or schedules. Set hidden=true to hide or false to restore. calls=0 read_only=false - 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_business_targets: Read the merchant-confirmed target ROAS, margin band, target CPA, and spend ceiling used by recommendations. calls=0 read_only=true - set_business_targets: Save merchant-confirmed target ROAS, margin band, target CPA, or spend ceiling for recommendations. calls=0 read_only=false - list_business_groups: List saved named Shopify + ad-account groups for reporting. calls=0 read_only=true - save_business_group: Save a named group containing exactly one Shopify store and its Meta/Google accounts. calls=0 read_only=false - delete_business_group: Delete a saved reporting business group. calls=0 read_only=false - 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. Pass the execution_id returned by the pending action, or execution_ids (up to 50) to approve a whole task the user agreed to once, e.g. every create in one launch. Items run in order; if the route time budget is reached the rest stay pending and come back as remaining_execution_ids — call again with them, no new consent needed. Clients with a stale schema can send execution_ids through run_adscove_tool. NEVER call this without asking the user first. calls=0 read_only=false - reject_action: Reject a pending write (execution_id) or a set of them (execution_ids) on the user's behalf after they decline in conversation. calls=0 read_only=false - request_video_upload_ticket: Use AdsCove OAuth to create a one-hour R2 upload ticket for one local video (mp4/mov/webm, up to 500 MiB) or image (jpg/png, up to 30 MiB). PUT the file to the signed URL with the returned headers, then pass storage_key to meta_upload_video / google_upload_youtube_video / tiktok_upload_video (videos) or meta_upload_creative / tiktok_upload_image (images). No API key is needed. calls=1 read_only=false - complete_video_upload: Optional: verify a local video uploaded to its AdsCove R2 ticket and keep it in the media library. Not required before meta_upload_video; the same storage_key works for Meta, Google, and TikTok. calls=1 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 - discover_adscove_tools: Progressive disclosure: search the full launch tool catalog by platform/query/mode without loading every schema into tools/list. Returns tool names for run_adscove_tool. calls=0 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 - create_automation_rule: Create a disabled condition-based rule draft, run static checks, and perform a Dry Run. Activation is a separate approved action. calls=0 read_only=false - activate_automation_rule: Enable a rule after static checks, account currency verification, successful Dry Run for auto mode, and database readback. calls=0 read_only=false - create_automation_schedule: Create a recurring scheduled task that runs a Skill or instructions on a cadence. Starts after user confirmation. calls=0 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 with status and effective_status. Optional fields= overrides the Graph field list. calls=1 read_only=true - meta_list_adsets: List Meta ad sets (scope with campaign_id) with status and effective_status. Optional fields= overrides the Graph field list. calls=1 read_only=true - meta_list_ads: List Meta ads (scope with adset_id or campaign_id) with status and effective_status (PENDING_REVIEW, DISAPPROVED, ...). Optional fields= overrides the Graph field list, e.g. add ad_review_feedback. 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_get_ad_performance: Pull ad-level Meta metrics with spend, CTR, CPA, ROAS, and live status. 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 an image to the Meta ad account library and return its image_hash. Pass payload.storage_key from request_video_upload_ticket (jpg/png) for a local file, or payload.image_url for a public HTTPS JPG/PNG (AdsCove downloads it and sends the bytes; redirects and private hosts are refused). calls=1 read_only=false - meta_upload_video: Upload a video URL or an AdsCove R2 object (storage_key from request_video_upload_ticket) to the Meta video library. Retrying with the same storage_key is safe. 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. Name it with payload.adset_name (or name). Under a campaign budget (CBO), payload.daily_min_spend / payload.daily_spend_limit set the ad set's daily spend floor/cap in account currency. Ad transparency: EU countries need payload.dsa_beneficiary + payload.dsa_payor; Australia needs payload.regional_regulation_identity_id (verified advertiser id) — when omitted, both are reused from an existing ad set in the account. calls=1 read_only=false - meta_create_paused_ad: Create a paused Meta ad, creating the creative first when needed. Name it with payload.ad_name (or name); the new creative gets the same name. Image ads: pass payload.image_hash, or payload.image_url / payload.image_storage_key and the image is uploaded for you. Video ads: payload.video_id plus image_url or image_hash as the cover. calls=1 read_only=false - meta_clone_existing_post_ads: Clone ads from an existing post (resource_id = page_post id) into paused ads in payload.adset_ids. Name them with payload.ad_name (or name); with several ad sets the ad set id is appended. 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_switch_budget_mode: Switch an existing Meta campaign between campaign budget (CBO) and ad set budgets (ABO) in place, keeping its ads and data. ABO needs payload.adset_daily_budget or payload.adset_budgets for every ad set (max 70); CBO needs payload.daily_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, budget, or a CBO ad set's daily spend floor/cap (payload.daily_min_spend / payload.daily_spend_limit, account currency) in one call. Also dsa_beneficiary / dsa_payor and regional_regulated_categories / regional_regulation_identities; adding EU or Australia countries to targeting fills missing ones from the account. 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 - meta_get_opportunity_score: Return Meta ad-account recommendations and opportunity signals (Ads Manager optimization guidance equivalent). calls=1 read_only=true - meta_get_ad_preview: Render an HTML preview for an ad or creative in a placement format such as DESKTOP_FEED_STANDARD or INSTAGRAM_REELS. calls=1 read_only=true - meta_insights_performance_trend: Track CPC, CPM, CTR, spend, conversions, and ROAS over time for campaigns, ad sets, or ads. calls=1 read_only=true - google_list_accessible_customers: List accessible Google Ads customers. calls=0 read_only=true - google_search: Execute a Google Ads Query Language (GAQL) search against the connected customer. Pass query with the SELECT ... FROM ... statement. calls=1 read_only=true - google_get_resource_metadata: Describe fields available on a Google Ads resource type such as campaign, ad_group, ad_group_ad, or keyword_view. 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_research: Research keywords using Google Ads Keyword Planner. Expands seed keywords and returns search volume, competition, CPC and top-of-page bid ranges, historical trends, and related keyword ideas in one call. Does not create or modify campaigns. Every seed keyword is returned even when Google has no data for it, with an explicit status. Works without a connected Google Ads account. Prefer this over chaining google_keyword_ideas and google_keyword_historical_metrics. 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_tracking_config: Read account-level conversion tracking settings and detailed conversion-action configuration. 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_change_history: Read who changed what and when in Google Ads for the selected period. calls=1 read_only=true - google_get_shared_budgets: List campaign budgets, sharing state, reference counts, and delivery settings. calls=1 read_only=true - google_get_product_performance: Return Shopping/PMax product spend, conversions, value, and ROAS by Merchant Center item. calls=1 read_only=true - google_get_merchant_product_inventory: Auto-discover Merchant Center accounts linked to the selected Google Ads customer, scan every current shopping_product, filter by country/channel/status, aggregate unique item IDs by product_type L1-L5, and identify the category with the most SKUs using the existing Google Ads authorization. merchant_id is optional. calls=1 read_only=true - google_get_landing_page_performance: Return spend, clicks, conversions, value, and ROAS by final landing-page URL. calls=1 read_only=true - google_list_brand_lists: List reusable Google Ads brand shared sets available for PMax brand exclusions. calls=1 read_only=true - google_suggest_brands: Resolve a brand name prefix to Google's verified brand entity IDs. 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 basic paused Display/GDN draft plan without mutating Google Ads; detailed targeting is a manual follow-up. calls=1 read_only=true - google_create_search_draft: Create a paused Google Search campaign in one atomic change: one or more ad groups (payload.ad_groups), per-keyword match types, RSAs, languages, and campaign negative keywords. AI Max is on by default (payload.enable_ai_max=false to opt out). Only the campaign is paused; enable it to launch. calls=1 read_only=false - google_create_standard_shopping_draft: Auto-discover a linked Merchant Center account and create an approval-gated, paused Standard Shopping campaign with sales country/feed label, location targets, Manual CPC/Maximize Clicks/Target ROAS bidding, Shopping AI Max, an Agent-friendly product_type/custom-label/item-ID filter, idempotency, audit, and post-write readback. calls=1 read_only=false - google_create_pmax_asset_plan: Create a non-retail PMax asset plan without mutating Google Ads. calls=1 read_only=true - google_create_pmax_draft: Create a paused non-retail Performance Max campaign with Maximize Conversions/optional tCPA or Maximize Conversion Value/optional tROAS, plus Google-recommended asset automation enabled by default. Use payload.validate_with_google=true in dry_run for Google validate-only. calls=1 read_only=false - google_upload_youtube_video: Upload a completed AdsCove R2 video through Google Ads API v23+ using the approved adwords permission. Defaults to an unlisted Google-managed channel; optionally set channel_id for an advertiser-owned YouTube channel. Then check processing status before creating a paused PMax or Demand Gen draft. calls=1 read_only=false - google_get_youtube_video_upload_status: Check whether a Google Ads video upload is PROCESSED and retrieve its YouTube video ID for PMax or Demand Gen drafts. calls=1 read_only=true - google_create_demand_gen_draft: Create a paused YouTube-only Demand Gen video campaign using YouTube video IDs. The campaign, ad group, and ad remain paused until reviewed and enabled. calls=1 read_only=false - google_update_demand_gen_ad_videos: Swap YouTube videos on a live Demand Gen video ad: pass ad_group_id, ad_id, payload.add_youtube_video_ids and/or payload.remove_youtube_video_ids (at most 5 videos stay on the ad). Missing YouTube video assets are created; headlines, URLs and status stay unchanged. The ad goes back to policy review. calls=1 read_only=false - google_get_ad_policy_status: Show why ads or their assets are disapproved or limited: per-ad approval status and policy topics, plus per-asset (video, image, text) review status, policy topics, impressions and spend. Filter by campaign_id, ad_group_id or ad_id. calls=1 read_only=true - google_create_display_draft: Create a paused basic Display campaign with a responsive display ad and no detailed audience/topic/keyword/placement targeting. Use payload.validate_with_google=true in dry_run for Google validate-only. 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 a Google campaign status. calls=1 read_only=false - google_launch_campaign: Enable a paused Google campaign together with its paused ad groups, ads, and positive keywords in one atomic change and one approval. dry_run lists exactly what will be enabled; payload.exclude_ad_group_ids keeps chosen ad groups paused. calls=1 read_only=false - google_update_ad_group_status: Pause or enable a Google ad group after approval. calls=1 read_only=false - google_create_ad_group: Create a paused ad group under an existing Google campaign. calls=1 read_only=false - google_add_keywords: Add up to 500 paused positive keywords to an existing ad group. calls=1 read_only=false - google_update_keyword: Update a positive keyword's status or CPC bid. calls=1 read_only=false - google_remove_keywords: Remove selected positive keywords from an existing ad group. calls=1 read_only=false - google_update_keyword_status: Pause, enable, or remove a Google keyword after approval. calls=1 read_only=false - google_create_rsa: Create a paused responsive search ad in an existing ad group. calls=1 read_only=false - google_update_rsa: Update the URLs, headlines, descriptions, or paths of an existing responsive search ad. calls=1 read_only=false - google_update_ad_status: Pause, enable, or remove a Google ad after approval. calls=1 read_only=false - google_apply_pmax_brand_exclusion: Attach an existing Google brand list as a negative campaign criterion. calls=1 read_only=false - google_create_pmax_brand_exclusion: Create a reusable brand list from verified Google brand IDs and optionally attach it to a PMax campaign. calls=1 read_only=false - google_list_asset_groups: List Performance Max asset groups with their final URLs, mobile URLs, display paths, status, and ad strength. calls=1 read_only=true - google_get_pmax_listing_groups: Read the Performance Max product group (listing group filter) tree for an asset group, including which products are currently excluded. calls=1 read_only=true - google_update_asset_group: Change a Performance Max asset group's final URLs, final mobile URLs, name, display paths, or status. calls=1 read_only=false - google_update_url_expansion: Turn Performance Max final URL expansion on or off for a campaign without resetting its other asset automation settings. calls=1 read_only=false - google_update_pmax_listing_group: Edit a Performance Max product group tree: exclude products, put excluded products back, or reset the asset group to a single all-products group. calls=1 read_only=false - google_exclude_pmax_products: Exclude Merchant Center item IDs (or brands, product types, custom labels, channels, conditions) from a Performance Max asset group. Works on trees already split by product type or custom label: each advertised product group gets an extra item-ID split, and the rest of the tree is kept. calls=1 read_only=false - google_get_shopping_listing_groups: Read the Standard Shopping product group (listing group) tree for an ad group, including which products are currently excluded. calls=1 read_only=true - google_update_shopping_listing_group: Edit a Standard Shopping product group tree: exclude products, reinstate excluded products, or reset the ad group to a single all-products group. calls=1 read_only=false - google_exclude_shopping_products: Exclude Merchant Center item IDs (or brands, product types, custom labels, channels, conditions) from a Standard Shopping ad group. Works on trees already split by product type or custom label: each advertised product group gets an extra item-ID split, and the rest of the tree is kept. Not for Performance Max — use google_exclude_pmax_products. calls=1 read_only=false - google_update_asset_group_assets: Add or remove headlines, long headlines, descriptions, images, logos, and YouTube videos on a live Performance Max asset group. calls=1 read_only=false - google_search_geo_targets: Resolve location names such as California or Toronto into the geo target constant IDs the campaign and targeting tools require. calls=1 read_only=true - google_get_placement_performance: Return Display, Video, and PMax spend, clicks, conversions, and ROAS by placement, website, app, or YouTube channel. calls=1 read_only=true - google_list_negative_keyword_lists: List reusable negative keyword shared sets with member and campaign reference counts. calls=1 read_only=true - google_update_campaign_targeting: Add or remove campaign locations, excluded locations, and languages, or replace the ad schedule. calls=1 read_only=false - google_update_device_bid_adjustments: Set mobile, desktop, tablet, or connected-TV bid modifiers on a campaign, updating the existing criterion when one is present. calls=1 read_only=false - google_exclude_placements: Exclude websites, mobile apps, YouTube channels, or YouTube videos from a campaign as negative criteria. calls=1 read_only=false - google_create_negative_keyword_list: Create a reusable negative keyword shared set and optionally attach it to a campaign. calls=1 read_only=false - google_apply_negative_keyword_list: Attach an existing negative keyword shared set to a campaign. calls=1 read_only=false - google_update_conversion_action: Change a conversion action's status, name, counting type, lookback windows, or whether it counts as a primary conversion for bidding. calls=1 read_only=false - google_update_conversion_goal: Set whether an account-default or campaign conversion goal (category + origin) is biddable. Use for YouTube-hosted goals that cannot be edited as conversion actions. calls=1 read_only=false - google_update_tracking_urls: Set or clear the tracking template and final URL suffix on a campaign or ad group. 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_research: Alias for google_keyword_research. 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 the paused non-retail google_create_pmax_draft workflow. calls=1 read_only=false - 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 - list_asset_groups: Alias for google_list_asset_groups. calls=1 read_only=true - get_pmax_listing_groups: Alias for google_get_pmax_listing_groups. calls=1 read_only=true - update_asset_group: Alias for google_update_asset_group. calls=1 read_only=false - update_url_expansion: Alias for google_update_url_expansion. calls=1 read_only=false - update_pmax_listing_group: Alias for google_update_pmax_listing_group. calls=1 read_only=false - exclude_pmax_products: Alias for google_exclude_pmax_products. calls=1 read_only=false - get_shopping_listing_groups: Alias for google_get_shopping_listing_groups. calls=1 read_only=true - update_shopping_listing_group: Alias for google_update_shopping_listing_group. calls=1 read_only=false - exclude_shopping_products: Alias for google_exclude_shopping_products. calls=1 read_only=false - update_asset_group_assets: Alias for google_update_asset_group_assets. calls=1 read_only=false - search_geo_targets: Alias for google_search_geo_targets. calls=1 read_only=true - get_placement_performance: Alias for google_get_placement_performance. calls=1 read_only=true - list_negative_keyword_lists: Alias for google_list_negative_keyword_lists. calls=1 read_only=true - update_campaign_targeting: Alias for google_update_campaign_targeting. calls=1 read_only=false - update_device_bid_adjustments: Alias for google_update_device_bid_adjustments. calls=1 read_only=false - exclude_placements: Alias for google_exclude_placements. calls=1 read_only=false - create_negative_keyword_list: Alias for google_create_negative_keyword_list. calls=1 read_only=false - apply_negative_keyword_list: Alias for google_apply_negative_keyword_list. calls=1 read_only=false - update_conversion_action: Alias for google_update_conversion_action. calls=1 read_only=false - update_conversion_goal: Alias for google_update_conversion_goal. calls=1 read_only=false - update_tracking_urls: Alias for google_update_tracking_urls. calls=1 read_only=false - list_search_console_properties: List saved Google Search Console properties connected in AdsCove. Returns connection_id, site_url, domain, and enabled status. calls=0 read_only=true - query_search_console_performance: Read finalized Search Console query/page rows for a saved property. Pass connection_id or site_url; optional date_from/date_to (YYYY-MM-DD) and row_limit (max 1000, default 250). calls=1 read_only=true - shopify_get_store_info: Get Shopify store metadata. calls=0 read_only=true - shopify_get_shipping_coverage: List the countries the store can ship to (checkout-enabled), and check payload.countries (ISO codes) for gaps before targeting ads there. Includes shipping zones and rates when the read_shipping scope is granted. 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 orders, gross sales, AOV, daily trends, and UTM source/medium/campaign attribution from order data. calls=1 read_only=true - shopify_list_collections: List Shopify collections. calls=1 read_only=true - shopify_create_collection: Create a manual or rule-based Shopify collection. calls=1 read_only=false - shopify_update_collection: Update a Shopify collection's title, description, SEO, template, or rules. calls=1 read_only=false - shopify_update_collection_products: Add or remove products from a manual Shopify collection. calls=1 read_only=false - shopify_list_pages: List Shopify pages. calls=1 read_only=true - shopify_get_page: Read a complete Shopify page, including its HTML/Liquid body. calls=1 read_only=true - shopify_create_page_draft: Create an unpublished Shopify page draft. calls=1 read_only=false - shopify_create_page: Compatibility alias for shopify_create_page_draft. Always creates an unpublished Shopify page. calls=1 read_only=false - shopify_delete_page: Delete a Shopify page after approval and return its before snapshot. 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_get_abtest_webhook_readiness: Verify Shopify order and refund webhook coverage for server-side experiment attribution. calls=1 read_only=true - shopify_register_abtest_webhooks: Register the Shopify order and refund webhooks required for server-verified experiment attribution. calls=1 read_only=false - 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. Pass payload.template_json, or payload.source_template_suffix to copy an existing template with optional payload.text_replacements [{find, replace}] (plain text, applied to every string value; each find must match). calls=1 read_only=false - shopify_duplicate_product: Duplicate a Shopify product (images, description, options, template) as a DRAFT copy, not published to any channel. payload: new_title (required), optional handle, template_suffix, seo_title, seo_description, include_images (default true), and product_options + variants (same shape as shopify_create_product_draft) to replace the copy's variants and prices. calls=1 read_only=false - shopify_update_product_copy: Update Shopify product copy, SEO, or assigned product template suffix. Payload fields are strict snake_case; unknown fields are rejected. calls=1 read_only=false - shopify_update_product: Update complete Shopify product fields and variant prices, SKU, barcode, tax, and inventory policy. Payload fields are strict snake_case; unknown fields are rejected. calls=1 read_only=false - shopify_set_product_media: Replace product images: attach new images (HTTPS URL or existing Shopify file_id from direct upload), set the featured image, assign an image to each variant (Google Shopping uses it as that SKU's main image), and detach old images (files stay in Shopify Files). Default is dry_run; use execution_mode=review then approve_action. calls=1 read_only=false - shopify_upload_file: Import an HTTPS image, video, or file URL into Shopify Files. Default is dry_run preview only. To create the file: call with execution_mode=review (or confirmed=true / dry_run=false), then approve_action with the pending execution_id. calls=1 read_only=false - shopify_create_basic_discount: Create a percentage or fixed-amount Shopify discount code. calls=1 read_only=false - shopify_list_discounts: List code and automatic discounts with status, codes, usage counts, and the active window. calls=1 read_only=true - shopify_update_discount: Activate or deactivate a discount code, or change its title, end date, or usage limit. calls=1 read_only=false - shopify_list_files: List images, videos, and files already hosted in Shopify so they can be reused as ad creative. calls=1 read_only=true - shopify_list_locations: List store locations, including which ones ship inventory and fulfill online orders. calls=1 read_only=true - shopify_get_inventory: Read available, on-hand, and committed stock per variant and location. calls=1 read_only=true - shopify_adjust_inventory: Set an absolute available quantity or apply a relative change for one variant at one location. calls=1 read_only=false - shopify_update_page: Update one Shopify page content field set or its SEO title/description as an independently approved atomic operation. 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 a saved TikTok advertiser account. Pass account_id when multiple advertisers are connected; use payload.filtering to narrow results. calls=1 read_only=true - tiktok_list_adgroups: List TikTok ad groups. Pass account_id when needed and payload.filtering for campaign, status, or ID filters. calls=1 read_only=true - tiktok_list_ads: List TikTok ads. Pass account_id when needed and payload.filtering for ad-group, status, or ID filters. calls=1 read_only=true - tiktok_fetch_insights: Fetch TikTok reporting for date_from/date_to. Optional payload fields: data_level, dimensions, and metrics. calls=1 read_only=true - tiktok_get_campaign_performance: Return normalized TikTok campaign spend, conversions, CPA, ROAS, and reported revenue for date_from/date_to. calls=1 read_only=true - tiktok_get_ad_performance: Return normalized TikTok ad-level spend, CTR, CPA, ROAS, and reported revenue for date_from/date_to. calls=1 read_only=true - tiktok_analyze_wasted_spend: Find TikTok campaigns above min_spend with zero conversions or ROAS below min_roas. calls=1 read_only=true - tiktok_search_interests: Recommend TikTok interest keywords for audience planning from query, optional language, and limit. calls=1 read_only=true - tiktok_create_paused_campaign: Create a TikTok campaign with operation_status=DISABLE. Pass campaign_name, daily_budget, and optional payload.objective_type or payload.budget_mode. calls=1 read_only=false - tiktok_create_paused_adgroup: Create a disabled TikTok ad group. Pass campaign_id, ad_group_name, daily_budget, and targeting or placement fields in payload. calls=1 read_only=false - tiktok_upload_video: Upload a video to the TikTok ad library and return its video_id. Pass payload.storage_key from request_video_upload_ticket for a local file, or payload.video_url for a public HTTPS URL. calls=1 read_only=false - tiktok_upload_image: Upload a JPG/PNG to the TikTok ad library and return its image_id. Pass payload.storage_key from request_video_upload_ticket or payload.image_url. calls=1 read_only=false - tiktok_search_videos: List videos in this TikTok advertiser account's own video library (newest first) to recover video_ids. These are the user's own assets, not competitor or public ad-library data. Optional query matches file_name; payload.filtering passes TikTok filters such as video_ids or material_ids. calls=1 read_only=true - tiktok_get_advertiser_info: Read the TikTok advertiser account: status, balance, currency, timezone, and rejection reason. Use it when ads are approved but nothing spends. calls=1 read_only=true - tiktok_get_ad_review_info: Read why TikTok rejected ads: review status and reject reasons/suggestions per ad. Pass ad_id or payload.ad_ids. calls=1 read_only=true - tiktok_get_video_info: Read TikTok ad-library videos (cover URL, duration, size) by video_id or payload.video_ids. calls=1 read_only=true - tiktok_create_paused_ad: Create a disabled TikTok ad under an ad group. Pass adgroup_id, ad_name, and payload.creatives (or flat video_id / image_ids, identity_id, identity_type, ad_text, landing_page_url, call_to_action). When a video creative has no image_ids, its library cover is uploaded and used. The ad is paused right after creation and its id is returned as ad_id. calls=1 read_only=false - tiktok_update_status: Enable or disable TikTok campaigns, ad groups, or ads. Pass resource_type, resource_id or resource_ids, and status (ACTIVE/ENABLE or PAUSED/DISABLE). calls=1 read_only=false - tiktok_update_budget: Update one TikTok campaign or ad-group budget. Pass resource_type, resource_id, and daily_budget. calls=1 read_only=false - tiktok_update_adgroup: Change an existing TikTok ad group in place. Pass adgroup_id and payload fields such as conversion_bid_price (cost cap), bid_price, budget, adgroup_name, age_groups, operating_systems, location_ids, or dayparting. A cost cap must stay below the daily budget. calls=1 read_only=false - tiktok_duplicate_adgroup: Copy an ad group's settings and its enabled ads into a new disabled ad group. Pass adgroup_id (source), ad_group_name, and optional payload overrides such as conversion_bid_price, budget, or schedule_start_time (UTC). Copied ads reuse approved creatives; enable the new ad group with tiktok_update_status. calls=1 read_only=false - tiktok_evaluate_stop_loss: Check enabled ad groups against funnel stop-loss rules and list which to disable. Filter with payload.name_prefix, campaign_id, or payload.adgroup_ids. Default payload.rules: no_add_to_cart_spend 5, no_checkout_spend 10, no_purchase_spend 15, min_cpm 3 and min_ctr 0.5 after 2000 impressions, max_cpa 40 after 45 spend; set a rule to null to skip it. calls=1 read_only=true - tiktok_list_automated_rules: List the advertiser's native TikTok automated rules. calls=1 read_only=true - tiktok_get_automated_rule_results: List recent executions of native TikTok automated rules: which objects were turned off or changed and when. calls=1 read_only=true - tiktok_create_automated_rule: Create native TikTok automated rules that TikTok runs server-side (for example, turn off ad groups whose name starts with a prefix after lifetime cost exceeds X with no conversion). Pass payload.rules with name, apply_objects, conditions, actions, notification, and rule_exec_info in TikTok's optimizer/rule/create format. calls=1 read_only=false - tiktok_update_automated_rule: Replace native TikTok automated rules. Pass payload.rules, each with rule_id and the full rule definition. calls=1 read_only=false - woocommerce_list_products: List WooCommerce products with pagination. calls=1 read_only=true - woocommerce_get_product: Read a WooCommerce product. calls=1 read_only=true - woocommerce_list_variations: Read plug types, bundles and stock variations. calls=1 read_only=true - woocommerce_list_orders: List order summaries without customer address/contact data. calls=1 read_only=true - woocommerce_get_order: Read an order summary without customer contact/address data. calls=1 read_only=true - woocommerce_get_analytics: Summarize paid orders created in a UTC date range, by currency, with refunds. Not profit or payment-date revenue. calls=1 read_only=true - woocommerce_update_product: Preview then require approval to update a product. Variable product prices require variation support and cannot be changed here. calls=1 read_only=false - woocommerce_update_order: Preview then require approval to update order status or customer note. Changing status can trigger customer email and fulfillment. Cannot charge, refund or mark paid. calls=1 read_only=false - woocommerce_update_variation: Preview then require approval to update one plug/bundle variation price or stock. calls=1 read_only=false ## Page index ### AdsCove — AI Growth Agent for Performance Marketing - URL: https://adscove.com/ - Chinese: https://adscove.com/zh - Summary: An AI growth agent for Meta, Google and TikTok ads with real Shopify orders: diagnose spend, generate image and video creatives, launch and optimize campaigns with approval first — or plug it into your own AI via MCP. ### About AdsCove — Approval-Safe AI Advertising Operations - URL: https://adscove.com/about - Chinese: https://adscove.com/zh/about - Summary: Learn what AdsCove builds, how its AI advertising tools are tested, and the product boundaries users should understand before connecting accounts. ### Our Beliefs: Growth Should Compound | AdsCove - URL: https://adscove.com/manifesto - Chinese: https://adscove.com/zh/manifesto - Summary: Why AdsCove keeps campaign conclusions as the starting point for the next test, keeps data, creative, and execution in one loop, and leaves budget decisions with people. ### Connect AdsCove to Your AI Agent - URL: https://adscove.com/agent - Chinese: https://adscove.com/zh/agent - Summary: Copy one prompt to connect AdsCove as a remote MCP server with secure OAuth authorization. ### AdsCove Changelog — Product Updates in Plain Language - URL: https://adscove.com/changelog - Chinese: https://adscove.com/zh/changelog - Summary: See what changed in AdsCove, what each update helps you do, and what you need before using a new feature. ### Pricing: Start Google or Meta Ads MCP Free | AdsCove - URL: https://adscove.com/pricing - Chinese: https://adscove.com/zh/pricing - Summary: Start with one read-only Google or Meta account free, then compare Basic, Pro, and Agency plans for more accounts and approval-gated workflows. Shopify is optional. ### AdsCove Features — Shopify, Meta & Google AI Operations - URL: https://adscove.com/capabilities - Chinese: https://adscove.com/zh/capabilities - Summary: See the AdsCove features customers can use now, plus a simple Coming soon list. ### Meta & Google Ads MCP Guides — Setup, Safety & Comparisons - URL: https://adscove.com/guides - Chinese: https://adscove.com/zh/guides - Summary: Set up Meta Ads MCP and Google Ads MCP servers, compare official and hosted options, and use AI advertising operations with evidence and approval gates. ### Ads MCP Platforms: Google Ads, Meta Ads & Shopify | AdsCove - URL: https://adscove.com/platforms - Chinese: https://adscove.com/zh/platforms - Summary: Every ad and commerce platform AdsCove connects to your AI agent over one MCP endpoint: Google Ads, Meta (Facebook) Ads, TikTok Ads, and optional Shopify. ### AI Client Setup Guides for Ads MCP: Claude, ChatGPT, Cursor | AdsCove - URL: https://adscove.com/clients - Chinese: https://adscove.com/zh/clients - Summary: Setup guides for connecting AdsCove's Google Ads, Meta Ads, and Shopify MCP to Claude, ChatGPT, Cursor, Codex, Gemini, and other AI clients, with auth and verification steps. ### Ads MCP Alternatives: Official vs Hosted vs DIY | AdsCove - URL: https://adscove.com/alternatives - Chinese: https://adscove.com/zh/alternatives - Summary: Compare Meta's hosted Ads MCP, Google's open-source Google Ads MCP, hosted ecommerce MCP, agency AI layers, DIY APIs, and hiring a media buyer by setup, scope, and write control. ### Pipeboard Alternative for Ecommerce: AdsCove vs Pipeboard (Ads MCP) - URL: https://adscove.com/alternatives/pipeboard - Chinese: https://adscove.com/zh/alternatives/pipeboard - Summary: AdsCove vs Pipeboard for ecommerce ad MCP: Shopify revenue beside Meta, Google and TikTok spend, approval-gated writes, and when Pipeboard is the better fit. ### GoMarble Alternative: AdsCove vs GoMarble for Ads MCP - URL: https://adscove.com/alternatives/gomarble - Chinese: https://adscove.com/zh/alternatives/gomarble - Summary: AdsCove vs GoMarble for ad MCP: platform coverage, Shopify data, write approval, self-hosting options, and when GoMarble is the better fit. ### Ads MCP Glossary: MCP, ROAS, MER & Approval Terms | AdsCove - URL: https://adscove.com/glossary - Chinese: https://adscove.com/zh/glossary - Summary: Plain definitions of MCP, remote MCP endpoints, approval gates, idempotency keys, paused drafts, blended ROAS, MER, and attribution gap for AI ad operations. ### /guides/meta-ads-mcp-setup - URL: https://adscove.com/guides/meta-ads-mcp-setup - Chinese: https://adscove.com/zh/guides/meta-ads-mcp-setup ### /guides/google-ads-mcp-setup - URL: https://adscove.com/guides/google-ads-mcp-setup - Chinese: https://adscove.com/zh/guides/google-ads-mcp-setup ### /guides/meta-ads-mcp-vs-adscove - URL: https://adscove.com/guides/meta-ads-mcp-vs-adscove - Chinese: https://adscove.com/zh/guides/meta-ads-mcp-vs-adscove ### /guides/google-ads-mcp-vs-adscove - URL: https://adscove.com/guides/google-ads-mcp-vs-adscove - Chinese: https://adscove.com/zh/guides/google-ads-mcp-vs-adscove ### How AdsCove Reconciles Shopify Revenue with Meta and Google Ad Spend - URL: https://adscove.com/guides/shopify-meta-google-roas - Chinese: https://adscove.com/zh/guides/shopify-meta-google-roas - Summary: The exact AdsCove blended ROAS and attribution-gap formulas, source fields, pagination limits, and interpretation boundaries. ### Meta ROAS vs Shopify: Which Number Should You Trust? | AdsCove - URL: https://adscove.com/guides/meta-roas-vs-shopify - Chinese: https://adscove.com/zh/guides/meta-roas-vs-shopify - Summary: Compare Meta-reported ROAS with Shopify UTM revenue so agents and operators stop scaling on the wrong truth. ### Shopify Meta Google Ads MCP for Ecommerce Agents | AdsCove - URL: https://adscove.com/guides/mcp-for-ecommerce-agents - Chinese: https://adscove.com/zh/guides/mcp-for-ecommerce-agents - Summary: How ecommerce AI agents use MCP to read Shopify truth and Meta/Google ads safely—with approval-gated writes, not blind automation. ### Approval-Gated Ad Changes for Shopify Meta Google Agents | AdsCove - URL: https://adscove.com/guides/approval-gated-ad-changes - Chinese: https://adscove.com/zh/guides/approval-gated-ad-changes - Summary: How AdsCove queues risky ad and Shopify writes behind explicit human approve—so AI agents can plan without blind live mutation. ### Hire a Media Buyer vs AI Ad Agent | AdsCove - URL: https://adscove.com/guides/hire-media-buyer-vs-ai-agent - Chinese: https://adscove.com/zh/guides/hire-media-buyer-vs-ai-agent - Summary: When to hire a media buyer or freelancer vs run Shopify Meta/Google ads with an AI agent—cost, control, approval gates, and an AI-tool checklist. ### Weekly Ecommerce Diagnosis Workflow | AdsCove - URL: https://adscove.com/guides/weekly-ecommerce-diagnosis-workflow - Chinese: https://adscove.com/zh/guides/weekly-ecommerce-diagnosis-workflow - Summary: A Monday checklist to reconcile Shopify cash with Meta/Google spend, flag tracking gaps, and queue only approval-gated next actions—no invented ROAS thresholds. ### AdsCove vs Agency AI MCP: Which Fit for Ecommerce Ops? | AdsCove - URL: https://adscove.com/guides/adscove-vs-agency-ai-mcp - Chinese: https://adscove.com/zh/guides/adscove-vs-agency-ai-mcp - Summary: Compare hosted ecommerce MCP (Shopify truth + approval-gated writes) with agency-oriented multi-client AI MCP layers—pick by account model and who owns the agent. ### Install AdsCove MCP in Cursor or Claude | Ecommerce Agents - URL: https://adscove.com/guides/cursor-claude-ecommerce-mcp-install - Chinese: https://adscove.com/zh/guides/cursor-claude-ecommerce-mcp-install - Summary: Step-by-step: add AdsCove MCP to Cursor or Claude for Shopify, Meta, and Google ecommerce ops—with approval-gated writes. ### Install AdsCove MCP in Claude Desktop | Ecommerce Agents - URL: https://adscove.com/guides/claude-desktop-ecommerce-mcp - Chinese: https://adscove.com/zh/guides/claude-desktop-ecommerce-mcp - Summary: Claude Desktop–specific steps to add AdsCove MCP for Shopify, Meta, and Google—OAuth, verify with list_connections, approval-gated writes. ### Agent approve_action / reject Workflow | AdsCove - URL: https://adscove.com/guides/agent-approve-reject-ad-changes - Chinese: https://adscove.com/zh/guides/agent-approve-reject-ad-changes - Summary: How ecommerce agents review pending AdsCove executions, call approve_action or reject_action, and keep budget/Shopify writes gated. ### Shopify Admin API vs MCP for Agents | AdsCove - URL: https://adscove.com/guides/shopify-admin-api-vs-mcp-agents - Chinese: https://adscove.com/zh/guides/shopify-admin-api-vs-mcp-agents - Summary: When ecommerce agents should use AdsCove Shopify MCP (OAuth, approval-gated writes, multi-platform) vs calling Shopify Admin API for custom apps, bulk scripts, and CI. ### Meta Ads API vs MCP for Agents | AdsCove - URL: https://adscove.com/guides/meta-ads-api-vs-mcp-agents - Chinese: https://adscove.com/zh/guides/meta-ads-api-vs-mcp-agents - Summary: When ecommerce agents should use AdsCove Meta MCP (OAuth, approval-gated writes, multi-platform) vs calling Meta Marketing API / Graph for custom apps, bulk scripts, and CI. ### Google Ads API vs MCP for Agents | AdsCove - URL: https://adscove.com/guides/google-ads-api-vs-mcp-agents - Chinese: https://adscove.com/zh/guides/google-ads-api-vs-mcp-agents - Summary: When ecommerce agents should use AdsCove Google Ads MCP (OAuth, approval-gated writes, multi-platform) vs calling Google Ads API for custom apps, bulk scripts, and CI. ### Shopify + Meta + Google in One MCP Workspace | AdsCove - URL: https://adscove.com/guides/shopify-meta-google-single-mcp-workspace - Chinese: https://adscove.com/zh/guides/shopify-meta-google-single-mcp-workspace - Summary: Run Shopify, Meta, and Google from one AdsCove MCP workspace—one agent, approval-gated writes, Shopify cash as truth vs platform ROAS. ### How to Let an AI Agent Operate Ad Accounts Safely - URL: https://adscove.com/guides/ai-ad-operations-safety - Chinese: https://adscove.com/zh/guides/ai-ad-operations-safety - Summary: A concrete safety model for AI advertising operations: separate reads and writes, create paused drafts, require explicit approval, use idempotency, and retain audit evidence. ### AdsCove Documentation — MCP, REST API & Ecommerce Ad Operations - URL: https://adscove.com/docs - Chinese: https://adscove.com/zh/docs - Summary: Learn how to connect AdsCove to AI clients, authorize Shopify, Meta Ads, and Google Ads, call tools, and approve write operations safely. ### AdsCove Quickstart — Connect an AI Agent in Five Minutes - URL: https://adscove.com/docs/quickstart - Chinese: https://adscove.com/zh/docs/quickstart - Summary: Connect Shopify, Meta Ads, or Google Ads, configure AdsCove in your AI client, verify access, and safely approve the first write. ### AdsCove Pricing, Plans & Account Binding Limits - URL: https://adscove.com/docs/pricing - Chinese: https://adscove.com/zh/docs/pricing - Summary: Understand the free read-only ad-account plan, Stripe-paid Basic, Pro, and Agency plans, optional Shopify bindings, trials, and internal protection counters. ### Security & Audit — AdsCove Docs - URL: https://adscove.com/docs/security - Chinese: https://adscove.com/zh/docs/security - Summary: How AdsCove separates reads from writes, encrypts platform tokens, requires explicit approval, prevents duplicate writes, and records audit history. ### AI Ecommerce Capabilities & Workflows — AdsCove Docs - URL: https://adscove.com/docs/capabilities - Chinese: https://adscove.com/zh/docs/capabilities - Summary: Browse AdsCove playbooks that map ecommerce goals to Shopify, Meta Ads, and Google Ads tools, required inputs, and approval gates. ### AdsCove Skills & Ecommerce Workflows — MCP and Codex - URL: https://adscove.com/docs/skills - Chinese: https://adscove.com/zh/docs/skills - Summary: Install or invoke AdsCove skills for performance reviews, product launches, Meta Ad Library capture, image generation, and paused campaign creation. ### Google, Meta & Optional Shopify AI Tools — AdsCove - URL: https://adscove.com/docs/tools - Chinese: https://adscove.com/zh/docs/tools - Summary: Search the live AdsCove MCP and REST tool registry by platform, task, read/write mode, approval requirement, and example prompt. ### AdsCove REST API — Authentication, Tools, Approvals & Errors - URL: https://adscove.com/docs/api - Chinese: https://adscove.com/zh/docs/api - Summary: Call AdsCove Shopify, Meta Ads, and Google Ads tools over REST with Bearer authentication, idempotency, approval gates, and repairable error codes. ### AdsCove Privacy Policy - URL: https://adscove.com/privacy-policy - Chinese: https://adscove.com/zh/privacy-policy - Summary: How AdsCove collects, uses, secures, retains, disconnects, and deletes account, Shopify, Meta Ads, and Google Ads data. ### AdsCove Data Deletion and Export Instructions - URL: https://adscove.com/data-deletion - Chinese: https://adscove.com/zh/data-deletion - Summary: Disconnect Shopify, Meta Ads, or Google Ads, request deletion of AdsCove account data, or export account and audit records. ### AdsCove Terms of Service - URL: https://adscove.com/terms-of-service - Chinese: https://adscove.com/zh/terms-of-service - Summary: Terms governing authorized AI-agent advertising operations, prohibited content, account responsibility, approval safeguards, and beta service status. ### AdsCove Refund Policy - URL: https://adscove.com/refund-policy - Chinese: https://adscove.com/zh/refund-policy - Summary: How AdsCove reviews Stripe subscription and one-time service refund requests under the published refund windows. ### /platforms/shopify - URL: https://adscove.com/platforms/shopify - Chinese: https://adscove.com/zh/platforms/shopify ### /platforms/meta-ads - URL: https://adscove.com/platforms/meta-ads - Chinese: https://adscove.com/zh/platforms/meta-ads ### /platforms/google-ads - URL: https://adscove.com/platforms/google-ads - Chinese: https://adscove.com/zh/platforms/google-ads ### /platforms/tiktok-ads - URL: https://adscove.com/platforms/tiktok-ads - Chinese: https://adscove.com/zh/platforms/tiktok-ads ### /clients/claude - URL: https://adscove.com/clients/claude - Chinese: https://adscove.com/zh/clients/claude ### /clients/claude-code - URL: https://adscove.com/clients/claude-code - Chinese: https://adscove.com/zh/clients/claude-code ### /clients/cursor - URL: https://adscove.com/clients/cursor - Chinese: https://adscove.com/zh/clients/cursor ### /clients/windsurf - URL: https://adscove.com/clients/windsurf - Chinese: https://adscove.com/zh/clients/windsurf ### /clients/codex - URL: https://adscove.com/clients/codex - Chinese: https://adscove.com/zh/clients/codex ### /clients/gemini-app - URL: https://adscove.com/clients/gemini-app - Chinese: https://adscove.com/zh/clients/gemini-app ### /clients/gemini - URL: https://adscove.com/clients/gemini - Chinese: https://adscove.com/zh/clients/gemini ### /clients/antigravity - URL: https://adscove.com/clients/antigravity - Chinese: https://adscove.com/zh/clients/antigravity ### /clients/openclaw - URL: https://adscove.com/clients/openclaw - Chinese: https://adscove.com/zh/clients/openclaw ### /clients/hermes - URL: https://adscove.com/clients/hermes - Chinese: https://adscove.com/zh/clients/hermes ### /clients/universal - URL: https://adscove.com/clients/universal - Chinese: https://adscove.com/zh/clients/universal ### /clients/chatgpt - URL: https://adscove.com/clients/chatgpt - Chinese: https://adscove.com/zh/clients/chatgpt ### /clients/n8n - URL: https://adscove.com/clients/n8n - Chinese: https://adscove.com/zh/clients/n8n ### /clients/feishu - URL: https://adscove.com/clients/feishu - Chinese: https://adscove.com/zh/clients/feishu ### /clients/deepseek - URL: https://adscove.com/clients/deepseek - Chinese: https://adscove.com/zh/clients/deepseek ### /clients/doubao - URL: https://adscove.com/clients/doubao - Chinese: https://adscove.com/zh/clients/doubao