# Synter Media — Full MCP Tool Reference > Synter is the AI Agent Operator for Ads. Complete documentation for every tool exposed by the Universal Ads MCP server. > For a quick overview, see https://syntermedia.ai/llms.txt - MCP Endpoint: https://mcp.syntermedia.ai - Auth: Browser OAuth for the hosted endpoint. API keys are an advanced local-client fallback. - All tools return JSON. Credits are deducted on successful execution only. - SOLO is $20/month or $200/year. See https://syntermedia.ai/pricing --- ## Table of Contents 1. Legacy Onboarding Helpers (Authenticated) 2. Performance Reporting 3. TikTok Ads Management 4. Query Tools 5. Google Analytics 4 (Free) 6. Campaign Management 7. Campaign Creation (via execute) 8. AI Creative Generation (via execute) 9. Google Tag Manager & GA4 Management (via execute) 10. YouTube (via execute) 11. Conversion Tracking (via execute) 12. Audience Management 13. Landing Pages 14. Google Docs & Sheets 15. Competitive Intelligence (via execute) 16. Forecasting & Optimization Engine 17. Growth Engine 18. Skills 19. Account Management (Free) --- ## 1. Legacy Onboarding Helpers `synter_onboarding_start` and `synter_onboarding_status` are callable BEFORE authentication — they exist to get you a credential and never return one (they hand back a device code plus a URL for your human, then the browser-OAuth install flow at https://syntermedia.ai/get-started?step=install). Every other tool requires authentication. No subscription is required for reads; paid plans unlock campaign execution. ### synter_onboarding_start Send a secure email magic link for the legacy onboarding handoff. | Parameter | Type | Required | Description | |-----------|--------|----------|--------------------------| | email | string | Yes | Your work email address | **Credits:** Free **Example input:** ```json { "email": "alice@acme.com" } ``` **Example output:** ```json { "success": true, "sessionToken": "sess_abc123...", "message": "Magic link sent to alice@acme.com. Check your inbox..." } ``` **Common errors:** - `INVALID_EMAIL` — Email must contain @. --- ### synter_onboarding_status Check legacy onboarding progress. Poll only until the user has verified their email. `pollingComplete: true` means stop polling, open the secure install guide, and complete browser OAuth. | Parameter | Type | Required | Description | |---------------|--------|----------|------------------------------------------------| | session_token | string | Yes | Session token from synter_onboarding_start | **Credits:** Free **Example input:** ```json { "session_token": "sess_abc123..." } ``` **Example output (email verified; installation still required):** ```json { "success": true, "step": "INSTALL_OAUTH", "pollingComplete": true, "installUrl": "https://syntermedia.ai/get-started?step=install&onboarding=signup&source=mcp", "verificationTool": "get_credit_balance", "message": "Email verified. Stop polling, open the secure install guide, connect with browser sign-in, then verify with get_credit_balance." } ``` **Common errors:** - `MISSING_TOKEN` — Provide the session_token from synter_onboarding_start. --- ## 2. Performance Reporting ### pull_google_ads_performance Get Google Ads campaign metrics: impressions, clicks, cost, conversions, ROAS. | Parameter | Type | Required | Default | Description | |--------------|--------|----------|------------|--------------------------------------------------| | days | int | No | 30 | Lookback period (1-365) | | level | string | No | campaigns | Granularity: campaigns, ad-groups, keywords, ads, search-terms | | account_id | string | No | — | Specific Google Ads customer ID | | account_name | string | No | — | Account name for disambiguation | **Credits:** 2 **Example input:** ```json { "days": 7, "level": "campaigns" } ``` **Example output:** ```json { "success": true, "campaigns": [ { "campaign_name": "Brand Search", "campaign_id": "12345678", "status": "ENABLED", "impressions": 15234, "clicks": 892, "cost": 456.78, "conversions": 34, "cpa": 13.43, "roas": 4.2 } ] } ``` **Common errors:** - `OAUTH_REAUTH_REQUIRED` — Reconnect Google at syntermedia.ai/settings/credentials. - days must be between 1 and 365. --- ### pull_meta_ads_performance Get Meta (Facebook/Instagram) Ads campaign metrics. | Parameter | Type | Required | Default | Description | |--------------|--------|----------|----------|--------------------------------------------| | days | int | No | 30 | Lookback period (1-365) | | level | string | No | campaign | Granularity: campaign, ad-set, ad | | account_id | string | No | — | Specific Meta ad account ID | | account_name | string | No | — | Account name for disambiguation | **Credits:** 2 **Example input:** ```json { "days": 14, "level": "ad-set" } ``` **Common errors:** - `OAUTH_REAUTH_REQUIRED` — Reconnect Meta at syntermedia.ai/settings/credentials. --- ### pull_linkedin_ads_performance Get LinkedIn Ads campaign metrics. | Parameter | Type | Required | Default | Description | |--------------|--------|----------|---------|-----------------------------------------| | days | int | No | 30 | Lookback period (1-365) | | account_id | string | No | — | Specific LinkedIn ad account ID | | account_name | string | No | — | Account name for disambiguation | **Credits:** 2 --- ### pull_x_ads_performance Get X (Twitter) Ads campaign metrics. | Parameter | Type | Required | Default | Description | |--------------|--------|----------|---------|-----------------------------------------| | days | int | No | 30 | Lookback period (1-365) | | account_id | string | No | — | Specific X Ads account ID | | account_name | string | No | — | Account name for disambiguation | **Credits:** 2 --- ### pull_reddit_ads_performance Get Reddit Ads campaign metrics. | Parameter | Type | Required | Default | Description | |--------------|--------|----------|---------|-----------------------------------------| | days | int | No | 30 | Lookback period (1-365) | | account_id | string | No | — | Specific Reddit ad account ID | | account_name | string | No | — | Account name for disambiguation | **Credits:** 2 --- ### pull_tiktok_ads_performance Get TikTok Ads campaign metrics (basic). For detailed video metrics, use tiktok_ads_get_insights. | Parameter | Type | Required | Default | Description | |--------------|--------|----------|---------|-----------------------------------------| | days | int | No | 30 | Lookback period (1-365) | | account_id | string | No | — | Specific TikTok advertiser ID | | account_name | string | No | — | Account name for disambiguation | **Credits:** 2 --- ## 3. TikTok Ads Management ### tiktok_ads_get_insights Performance report with TikTok-specific video engagement metrics per campaign/adgroup/ad. | Parameter | Type | Required | Default | Description | |--------------|--------|----------|------------------|--------------------------------------------------| | days | int | No | 7 | Lookback period (1-365) | | data_level | string | No | AUCTION_CAMPAIGN | AUCTION_CAMPAIGN, AUCTION_ADGROUP, or AUCTION_AD | | account_id | string | No | — | Specific TikTok advertiser ID | | account_name | string | No | — | Account name for disambiguation | **Credits:** 2 **Example input:** ```json { "days": 7, "data_level": "AUCTION_AD" } ``` **Example output:** ```json { "success": true, "data": [ { "campaign_name": "Summer Sale", "spend": 234.50, "impressions": 89000, "clicks": 1200, "ctr": 1.35, "conversions": 45, "video_play_actions": 67000, "video_watched_2s": 45000, "video_views_p100": 12000, "vtr": 13.48 } ] } ``` --- ### tiktok_ads_get_adgroup Get full TikTok ad group configuration: targeting, budget, bid, pixel, optimization goal. | Parameter | Type | Required | Description | |--------------|--------|----------|------------------------------------| | adgroup_id | string | Yes | The ad group ID to fetch | | account_id | string | No | Specific TikTok advertiser ID | | account_name | string | No | Account name for disambiguation | **Credits:** 2 --- ### tiktok_ads_get_campaign Get full TikTok campaign configuration: name, objective, budget, status, timestamps. | Parameter | Type | Required | Description | |--------------|--------|----------|------------------------------------| | campaign_id | string | Yes | The campaign ID to fetch | | account_id | string | No | Specific TikTok advertiser ID | | account_name | string | No | Account name for disambiguation | **Credits:** 2 --- ### tiktok_ads_list_adgroups List all TikTok ad groups, optionally filtered by campaign. | Parameter | Type | Required | Description | |--------------|--------|----------|------------------------------------| | campaign_id | string | No | Campaign ID filter | | account_id | string | No | Specific TikTok advertiser ID | | account_name | string | No | Account name for disambiguation | **Credits:** 2 --- ### tiktok_ads_list_ads List all TikTok ads, optionally filtered by ad group. | Parameter | Type | Required | Description | |--------------|--------|----------|------------------------------------| | adgroup_id | string | No | Ad group ID filter | | account_id | string | No | Specific TikTok advertiser ID | | account_name | string | No | Account name for disambiguation | **Credits:** 2 --- ### tiktok_ads_update_adgroup Update a TikTok ad group: status, budget, locations, age targeting, bid, languages, audiences, optimization goal, pixel tracking. | Parameter | Type | Required | Description | |----------------------|--------|----------|-----------------------------------------------------------------| | adgroup_id | string | Yes | The ad group ID to update | | status | string | No | ENABLE or PAUSE | | budget | float | No | Daily budget in dollars | | locations | string | No | Space-separated location IDs (e.g. "6252001 2635167") | | age_min | int | No | Minimum age (e.g. 25) | | age_max | int | No | Maximum age (use 0 for no upper limit) | | bid | float | No | Bid price in dollars | | bid_type | string | No | BID_TYPE_NO_BID or BID_TYPE_CUSTOM | | languages | string | No | Space-separated language codes (e.g. "en fr de") | | audience_ids | string | No | Comma-separated custom audience IDs to include | | excluded_audience_ids| string | No | Comma-separated custom audience IDs to exclude | | optimization_goal | string | No | CLICK, CONVERT, SHOW, REACH, VIDEO_VIEW, etc. | | pixel_id | string | No | Pixel ID for conversion tracking | | conversion_event | string | No | Conversion event name (e.g. CompleteRegistration, Purchase) | | account_id | string | No | Specific TikTok advertiser ID | | account_name | string | No | Account name for disambiguation | **Credits:** 5 (requires paid plan) **Example input:** ```json { "adgroup_id": "17294019", "status": "PAUSE", "budget": 100 } ``` --- ## 4. Query Tools ### run_gaql_query Execute a Google Ads Query Language (GAQL) query for advanced reporting and diagnostics. | Parameter | Type | Required | Description | |--------------|--------|----------|--------------------------------------------| | query | string | Yes | GAQL query string | | account_id | string | No | Google Ads customer ID | | account_name | string | No | Account name for disambiguation | **Credits:** 2 **Example input:** ```json { "query": "SELECT campaign.name, metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.cost_micros DESC LIMIT 10" } ``` **Example output:** ```json [ { "campaign.name": "Brand Search", "metrics.impressions": 15234, "metrics.clicks": 892, "metrics.cost_micros": 45678000 } ] ``` --- ## 5. Google Analytics 4 (Free) ### ga4_list_properties List your Google Analytics 4 properties. | Parameter | Type | Required | Description | |------------|--------|----------|--------------------------| | account_id | string | No | Specific GA4 account ID | **Credits:** Free **Example output:** ```json { "success": true, "properties": [ { "property_id": "properties/123456", "display_name": "My Website" } ] } ``` --- ### ga4_run_report Run a GA4 report with custom metrics and dimensions. | Parameter | Type | Required | Default | Description | |------------|--------|----------|-----------------------------------|------------------------------------------| | metrics | string | No | sessions,totalUsers,conversions | Comma-separated GA4 metrics | | dimensions | string | No | date | Comma-separated GA4 dimensions | | days | int | No | 28 | Lookback period (1-365) | | account_id | string | No | — | Specific GA4 property ID | **Credits:** Free **Example input:** ```json { "metrics": "sessions,totalUsers,screenPageViews", "dimensions": "sessionSource,sessionMedium", "days": 14 } ``` --- ### ga4_list_conversions List all conversion events configured in your GA4 property. | Parameter | Type | Required | Description | |------------|--------|----------|--------------------------| | account_id | string | No | Specific GA4 property ID | **Credits:** Free --- ## 6. Campaign Management ### list_campaigns List campaigns for any ad platform. | Parameter | Type | Required | Description | |------------|--------|----------|----------------------------------------------------------| | platform | string | Yes | google, meta, linkedin, reddit, microsoft, tiktok, or x | | account_id | string | No | Specific account ID | | status | string | No | Filter: ENABLED, PAUSED, REMOVED | **Credits:** 2 **Example input:** ```json { "platform": "google", "status": "ENABLED" } ``` **Example output:** ```json { "success": true, "campaigns": [ { "campaign_id": "12345678", "campaign_name": "Brand Search", "status": "ENABLED", "daily_budget": 50.0, "campaign_type": "SEARCH" } ] } ``` --- ### pause_campaign Pause a campaign on any ad platform. | Parameter | Type | Required | Description | |-------------|--------|----------|--------------------------------------------------------| | platform | string | Yes | google, meta, linkedin, reddit, microsoft, tiktok, x | | campaign_id | string | Yes | Campaign ID to pause | | account_id | string | No | Specific account ID | **Credits:** 5 (requires paid plan) **Example input:** ```json { "platform": "google", "campaign_id": "12345678" } ``` **Common errors:** - `MANAGED_ACCOUNT_NOT_ALLOWED` — Campaign management on Synter managed accounts is not available via MCP. Connect your own account. --- ### update_campaign_budget Update a campaign's daily budget. | Parameter | Type | Required | Description | |--------------|--------|----------|------------------------------------------------------| | platform | string | Yes | google, meta, linkedin, reddit, microsoft, tiktok, x | | campaign_id | string | Yes | Campaign ID to update | | daily_budget | float | Yes | New daily budget in account currency (0.01-1000000) | | account_id | string | No | Specific account ID | **Credits:** 5 (requires paid plan) **Example input:** ```json { "platform": "meta", "campaign_id": "23851234567890", "daily_budget": 75.0 } ``` --- ## 7. Campaign Creation (via execute) All campaign creation tools are accessed through the universal `execute` tool. Requires a paid plan. ### execute Execute any Synter action: create campaigns, generate AI images/videos, manage GTM/GA4, and more. | Parameter | Type | Required | Description | |------------|----------|----------|--------------------------------------------------------------| | action | string | Yes | Action name (e.g. "google_ads_create_search_campaign") | | platform | string | No | Auto-detected from action name if omitted | | args | string[] | No | Command-line arguments as a list | | account_id | string | No | Specific ad account ID to use | **Credits:** Varies by action (see below) **Example input:** ```json { "action": "google_ads_create_search_campaign", "args": ["--campaign-name", "Q1 Brand", "--daily-budget", "50"] } ``` ### Campaign Creation Actions (200 credits each) | Action | Platform | Description | |-----------------------------------------|------------|----------------------------------------------| | google_ads_create_search_campaign | Google Ads | Create a Search campaign with keywords | | google_ads_create_display_campaign | Google Ads | Create a Display campaign with images | | google_ads_create_demand_gen_campaign | Google Ads | Create Demand Gen for YouTube/Discover/Gmail | | google_ads_create_pmax_campaign | Google Ads | Create Performance Max campaign | | meta_ads_create_campaign | Meta | Create a Meta campaign (any objective) | | linkedin_ads_create_campaign_complete | LinkedIn | Create LinkedIn campaign with targeting | | reddit_ads_create_campaign | Reddit | Create a Reddit Ads campaign | | reddit_ads_activate_campaign | Reddit | End-to-end: campaign + ad group + post + ad | | tiktok_ads_create_campaign | TikTok | Create a TikTok campaign | | x_ads_create_campaign | X | Create an X Ads campaign | ### Ad Creation Actions (10 credits each) | Action | Platform | Description | |------------------------------------|------------|------------------------------------------| | meta_ads_create_ad | Meta | Create image/video/carousel ad | | meta_ads_create_adset | Meta | Create ad set with targeting | | google_ads_create_display_ad | Google Ads | Create responsive display ad | | google_ads_create_rsa | Google Ads | Create responsive search ad | | google_ads_upload_image_asset | Google Ads | Upload image as asset (2 credits) | | google_ads_update_pmax_assets | Google Ads | Update PMax asset group | | tiktok_ads_create_ad | TikTok | Create ad in ad group | | reddit_ads_create_post | Reddit | Create a promoted post | | reddit_ads_create_ad | Reddit | Attach post to ad group | ### Ad Group / Line Item Actions (5 credits each) | Action | Platform | Description | |-------------------------------|------------|------------------------------------| | tiktok_ads_create_adgroup | TikTok | Create ad group with targeting | | reddit_ads_create_ad_group | Reddit | Create Reddit ad group | | google_ads_create_ad_group | Google Ads | Create ad group | | meta_ads_create_ad_set | Meta | Create ad set (alias) | --- ## 8. AI Creative Generation (via execute) ### Image Generation (60-80 credits) | Action | Credits | Description | |-----------------|---------|------------------------------------------------------| | generate_image | 60 | Generate images with Nano Banana 2, Imagen 4, or Flux | **Example:** ```json { "action": "generate_image", "args": ["--prompt", "Modern SaaS dashboard with analytics charts", "--size", "1200x628", "--name", "Display Hero"] } ``` **Supported sizes:** 1200x628 (landscape), 1200x1200 (square), 1080x1920 (story), or custom WxH. ### Video Generation (130-1100 credits) | Action | Credits | Description | |---------------------------|---------|------------------------------------------| | generate_video_veo | 1100 | Google Veo 3.1 (8s, highest quality) | | generate_video_creatify | 900 | Creatify UGC-style video (30s) | | generate_video_runway | 450 | Runway Gen-3 (5s) | | generate_video_luma | 130 | Luma Dream Machine (5s, fastest) | | generate_video_ad | 1100 | Generate video ad (defaults to Veo) | | generate_synter_video_ad | 1100 | Generate video + create Demand Gen campaign | **Example:** ```json { "action": "generate_video_ad", "args": ["--concept", "problem-solution", "--product", "Acme Analytics", "--platform", "youtube"] } ``` ### Competitor-Inspired Creatives (18 credits) | Action | Credits | Description | |-------------------------------|---------|--------------------------------------------------| | competitor_inspired_creative | 18 | Scrape Meta Ads Library + generate inspired creative | **Example:** ```json { "action": "competitor_inspired_creative", "args": ["--competitor", "ridge wallet", "--output-type", "image", "--brand-name", "MyBrand"] } ``` --- ## 9. Google Tag Manager & GA4 Management (via execute) | Action | Credits | Description | |-----------------------------|---------|---------------------------------------------| | gtm_list_accounts | Free | List GTM accounts and containers | | gtm_list_tags | Free | List all tags in a container | | gtm_create_conversion_tag | 5 | Create Google Ads conversion tag in GTM | | gtm_create_trigger | 5 | Create a GTM trigger | | gtm_attach_trigger | 2 | Attach trigger to tag | | gtm_publish | 5 | Publish GTM container changes | | gtm_update_tag | 5 | Update any Custom HTML tag | | ga4_list_properties | Free | List GA4 properties | | ga4_list_conversions | Free | List GA4 conversion events | | ga4_get_google_ads_links | Free | List GA4-to-Google Ads links | **Example — Create conversion tag:** ```json { "action": "gtm_create_conversion_tag", "args": ["--conversion-id", "AW-17935166998", "--conversion-label", "abc123", "--tag-name", "Signup Conversion", "--publish"] } ``` --- ## 10. YouTube (via execute) | Action | Credits | Description | |-----------------------|---------|---------------------------------------| | youtube_upload_video | 2 | Upload video to YouTube | | youtube_delete_video | 2 | Delete a YouTube video | | youtube_channel_report| 2 | Get YouTube channel analytics | | youtube_list_videos | Free | List videos on channel | **Example — Upload video:** ```json { "action": "youtube_upload_video", "platform": "YOUTUBE", "args": ["--url", "https://example.com/video.mp4", "--title", "Product Demo", "--description", "Watch our demo", "--privacy", "public"] } ``` --- ## 11. Conversion Tracking (via execute) | Action | Credits | Description | |------------------------------------|---------|----------------------------------------------| | verify_website_tracking | 2 | Check if pixel/gtag is installed on a URL | | google_ads_create_conversion | 5 | Create a Google Ads conversion action | | meta_ads_enable_pixel_tracking | 5 | Enable Meta pixel on ad sets | | meta_ads_manage_pixel | 5 | Configure Meta pixel settings | | google_ads_check_enhanced_conversions | 2 | Check enhanced conversion setup | | google_ads_conversion_breakdown | 2 | Get conversion action breakdown | **Example — Create conversion:** ```json { "action": "google_ads_create_conversion", "args": ["--name", "Signup", "--value", "50"] } ``` **Example output:** ```json { "success": true, "resource_name": "customers/123/conversionActions/456", "conversion_id": "AW-17935166998", "conversion_label": "abcXYZ123" } ``` --- ## 12. Audience Management ### sync_audience Upload audience data (emails, companies) to ad platforms. Supports batch mode for Clay.com row-by-row workflows. | Parameter | Type | Required | Default | Description | |------------------|--------|----------|---------|----------------------------------------------------------| | platform | string | Yes | — | google, meta, linkedin, reddit, tiktok, microsoft, trade_desk, stackadapt, amazon_dsp, x | | audience_name | string | Yes* | — | Name for the audience (* optional for batch finalize) | | emails | string | No | — | Comma-separated email addresses | | company_names | string | No | — | Comma-separated company names (LinkedIn only) | | company_domains | string | No | — | Comma-separated company domains | | audience_type | string | No | EMAIL | EMAIL, COMPANY, or LOOKALIKE | | account_id | string | No | — | Specific ad account ID | | batch_action | string | No | — | "stage" (free) or "finalize" (10 credits) | | batch_key | string | No | — | Stable batch identifier (required with batch_action) | **Credits:** 10 for direct upload or batch finalize. Batch stage is free. **Direct upload example:** ```json { "platform": "google", "audience_name": "Q1 Enterprise Leads", "emails": "alice@acme.com,bob@corp.com,carol@startup.io" } ``` **Returns async job_id.** Poll with `get_job_status(job_id="...")`. **Batch mode (for Clay.com row-by-row):** Step 1 — Stage each email (free, called per row): ```json { "platform": "google", "audience_name": "Q1 Leads", "emails": "alice@acme.com", "batch_action": "stage", "batch_key": "q1_leads_mar2026" } ``` Step 2 — Finalize batch (10 credits, called once after all rows): ```json { "platform": "google", "audience_name": "Q1 Leads", "batch_action": "finalize", "batch_key": "q1_leads_mar2026" } ``` --- ### list_audiences List existing custom/matched audiences on an ad platform. | Parameter | Type | Required | Description | |------------|--------|----------|------------------------------------------------------------| | platform | string | Yes | google, meta, linkedin, reddit, tiktok, microsoft, trade_desk, stackadapt, amazon_dsp, x | | account_id | string | No | Specific ad account ID | **Credits:** 2 --- ### create_campaign_for_audience Create a campaign targeting an existing audience. Great for ABM and retargeting. | Parameter | Type | Required | Default | Description | |---------------|--------|----------|---------|--------------------------------------| | platform | string | Yes | — | Ad platform | | campaign_name | string | Yes | — | Campaign name | | audience_id | string | Yes | — | Audience ID from sync_audience | | daily_budget | float | No | 25.0 | Daily budget in USD | | headline | string | No | — | Ad headline | | description | string | No | — | Ad description | | final_url | string | No | — | Landing page URL | | account_id | string | No | — | Specific ad account ID | **Credits:** 200 (requires paid plan) --- ### get_job_status Check the status of an async job (e.g. audience sync). | Parameter | Type | Required | Description | |-----------|--------|----------|------------------------------------| | job_id | string | Yes | Job ID (UUID) from async tool call | **Credits:** Free **Example output (completed):** ```json { "job_id": "abc-123-def", "status": "succeeded", "success": true, "result": { "audience_id": "12345", "size": 150 } } ``` **Example output (in progress):** ```json { "job_id": "abc-123-def", "status": "queued", "success": true, "message": "Job is still processing. Poll again in 5-10 seconds." } ``` --- ## 13. Landing Pages ### create_landing_page Generate an AI landing page hosted at syntermedia.ai/lp/{slug}. | Parameter | Type | Required | Default | Description | |-----------|--------|----------|-------------|------------------------------------------------| | title | string | Yes | — | Page title / brand name | | prompt | string | Yes | — | Description of the landing page (max 5000 chars)| | cta_url | string | Yes | — | URL the CTA button links to | | cta_text | string | No | Get Started | CTA button text | | style | string | No | modern | Design style: modern, minimal, or bold | | slug | string | No | auto | URL slug (auto-generated from title if omitted)| **Credits:** 10 (requires paid plan) **Example input:** ```json { "title": "Zero Connector Fees", "prompt": "Landing page explaining Synter's zero per-connector fee model versus agency retainers. Target audience: in-house growth marketers. Key benefits: 27 ad platforms, no connector fees, self-serve setup.", "cta_url": "https://syntermedia.ai/sign-up", "cta_text": "Get Started" } ``` **Example output:** ```json { "success": true, "slug": "zero-fees", "preview_url": "https://syntermedia.ai/lp/zero-fees", "title": "Zero Connector Fees" } ``` --- ## 14. Google Docs & Sheets ### create_google_doc Create a Google Doc from markdown or HTML content. Requires Google Drive connection. | Parameter | Type | Required | Description | |-----------|--------|----------|----------------------------------------------| | title | string | Yes | Document title | | content | string | No | Markdown content | | html | string | No | Raw HTML content (alternative to markdown) | **Credits:** 5 **Example input:** ```json { "title": "Q1 Campaign Plan", "content": "# Overview\n\nOur Q1 strategy focuses on...\n\n## Budget\n\n- Google: $5,000/mo\n- Meta: $3,000/mo" } ``` **Example output:** ```json { "success": true, "doc_id": "1abc...", "doc_url": "https://docs.google.com/document/d/1abc.../edit" } ``` --- ### create_google_sheet Create a Google Sheet from tabular data. Requires Google Drive connection. | Parameter | Type | Required | Description | |-----------|----------|----------|----------------------------------------------------| | title | string | Yes | Spreadsheet title | | headers | string | No | Comma-separated column headers | | rows | string[] | No | List of comma-separated row data | | json_data | string | No | JSON array of objects (alternative to headers+rows) | **Credits:** 5 **Example input (headers + rows):** ```json { "title": "Campaign Performance", "headers": "Campaign,Spend,Clicks,Conversions,ROAS", "rows": ["Brand Search,$5000,2340,156,4.2", "Display,$3200,18900,89,2.8"] } ``` **Example input (JSON):** ```json { "title": "Budget Allocation", "json_data": "[{\"Platform\":\"Google\",\"Budget\":5000},{\"Platform\":\"Meta\",\"Budget\":3000}]" } ``` --- ## 15. Competitive Intelligence (via execute) ### SpyFu Research | Action | Credits | Description | |-------------------------------------|---------|--------------------------------------------------| | research_competitor_spyfu | 18 | Full competitor PPC strategy analysis | | analyze_keyword_gap_spyfu | 45 | Keyword gap between domains | | get_keyword_data_spyfu | 9 | Keyword search volume and CPC data | | get_competitor_ad_copy_spyfu | 18 | Competitor ad copy for creative inspiration | | get_competitor_landing_pages_spyfu | 36 | Competitor landing page analysis | | benchmark_ppc_budgets_spyfu | 45 | PPC budget comparison across competitors | | expand_keywords_spyfu | 45 | Expand seed keywords with related terms | | analyze_channel_mix_spyfu | 36 | SEO vs PPC channel mix analysis | **Example:** ```json { "action": "research_competitor_spyfu", "args": ["--domain", "competitor.com"] } ``` ### SimilarWeb Competitive Intelligence | Action | Credits | Description | |--------------------------------|---------|-----------------------------------------| | similarweb_analyze_domain | 30 | Full domain traffic analysis | | similarweb_compare_domains | 60 | Compare traffic across multiple domains | | similarweb_keyword_analysis | 40 | Keyword-level competitive analysis | --- ## 16. Forecasting & Optimization Engine ### forecast_campaign Forecast campaign KPIs (spend, CPA, ROAS, clicks, conversions) with confidence intervals. | Parameter | Type | Required | Default | Description | |-------------|--------|----------|---------|-------------------------------------------------| | metric | string | No | spend | spend, cpa, roas, clicks, conversions, ctr, cpc | | horizon | int | No | 14 | Forecast horizon: 7, 14, or 30 days | | campaign_id | string | No | — | Specific campaign ID (all if omitted) | | platform | string | No | — | Platform filter | **Credits:** 2 --- ### optimize_budget Cross-channel budget allocation using diminishing returns modeling. | Parameter | Type | Required | Description | |--------------|--------|----------|-----------------------------------------------------------| | total_budget | float | Yes | Total daily budget in USD | | target | string | No | conversions or roas (default: conversions) | | constraints | string | No | JSON of per-channel min/max constraints | **Credits:** 5 **Example input:** ```json { "total_budget": 500, "target": "conversions", "constraints": "{\"google\": {\"min\": 100, \"max\": 300}, \"meta\": {\"min\": 50}}" } ``` --- ### test_creatives Multi-armed bandit creative experiment using Thompson sampling. | Parameter | Type | Required | Default | Description | |---------------|--------|----------|---------|----------------------------------------------| | campaign_id | string | Yes | — | Campaign ID for the experiment | | platform | string | Yes | — | Ad platform (GOOGLE, META, etc.) | | action | string | No | status | start, status, or stop | | reward_metric | string | No | ctr | ctr, conversion_rate, or roas | **Credits:** 3 --- ### get_attribution Multi-touch attribution analysis using Markov chains. | Parameter | Type | Required | Default | Description | |-----------------|--------|----------|---------------|----------------------------------------| | date_range | string | No | last_30_days | last_7_days, last_30_days, last_90_days| | conversion_type | string | No | — | Filter for specific conversion type | **Credits:** 5 --- ### measure_incrementality Measure incremental ad impact via geo-lift or synthetic control. | Parameter | Type | Required | Default | Description | |-----------------|--------|----------|----------|------------------------------------------| | platform | string | Yes | — | Ad platform (GOOGLE, META, etc.) | | method | string | No | geo_lift | geo_lift or synthetic_control | | test_regions | string | No | — | Comma-separated test region codes | | control_regions | string | No | — | Comma-separated control region codes | **Credits:** 10 --- ### build_lookalike_audience Build ML-based lookalike audience from seed customers. | Parameter | Type | Required | Default | Description | |------------------|--------|----------|---------|-----------------------------------------| | seed_audience | string | Yes | — | Source audience ID or name | | platform | string | Yes | — | Target platform | | expansion_factor | int | No | 5 | Expansion multiplier (1-10x seed size) | **Credits:** 10 --- ## 17. Growth Engine ### growth_discover Discover hiring companies and placement opportunities. | Parameter | Type | Required | Default | Description | |---------------|--------|----------|-----------------|----------------------------------------------| | discover_type | string | No | all | jobs, listicles, podcasts, or all | | query | string | No | Head of Growth | Job title search query | | limit | int | No | 25 | Max results per discovery type | **Credits:** 5 --- ### growth_enrich Full domain enrichment — PPC spend, keywords, competitors, tech stack, contact emails. | Parameter | Type | Required | Description | |-----------|--------|----------|---------------------------------| | domain | string | Yes | Domain to enrich (e.g. acme.com)| **Credits:** 5 --- ### growth_run_pipeline Run the full growth pipeline: discover leads, enrich, generate outreach. | Parameter | Type | Required | Default | Description | |-----------|--------|----------|----------------|---------------------------------------------------------| | mode | string | No | discover | discover, followups, x-scan, x-post, listicle-discover | | query | string | No | Head of Growth | Job title search query | | limit | int | No | 20 | Max leads per run | | channel | string | No | email | Outreach channel: email or both | **Credits:** 10 --- ## 18. Skills ### list_skills List all available Synter platform skills with descriptions. **Credits:** Free **Example output:** ```json { "success": true, "skills": [ { "slug": "google-ads-mcp", "name": "Google Ads MCP", "description": "Manages Google Ads campaigns..." }, { "slug": "campaign-preflight", "name": "Campaign Preflight", "description": "Pre-flight checks..." } ], "count": 45 } ``` --- ### load_skill Load detailed instructions for a specific skill. | Parameter | Type | Required | Description | |------------|--------|----------|------------------------------------------------| | skill_slug | string | Yes | Skill slug (e.g. "google-ads-mcp") | **Credits:** Free --- ## 19. Account Management (Free) ### list_connected_accounts See all connected accounts: ad platforms, analytics, CRM, and more. **Credits:** Free **Example output:** ```json { "success": true, "accounts": [ { "platform": "GOOGLE", "account_id": "1234567890", "account_name": "My Business", "status": "ACTIVE", "is_primary": true }, { "platform": "GA4", "account_id": "properties/123456", "account_name": "My Website", "status": "ACTIVE" } ], "total": 8, "active_total": 7 } ``` --- ### get_connection_status Check ALL platform connections categorized by type. Also returns workspace_website and workspace_name. Call this first in every conversation. **Credits:** Free **Example output:** ```json { "success": true, "workspace_website": "https://acme.com", "workspace_name": "Acme Inc", "active_platforms": ["GOOGLE", "META", "GA4", "GTM"], "by_category": { "ad_platforms": { "connected": { "GOOGLE": [...], "META": [...] }, "missing": ["LINKEDIN", "REDDIT", "TIKTOK", "X"] }, "analytics": { "connected": { "GA4": [...], "GTM": [...] }, "missing": ["GSC", "POSTHOG"] } }, "connect_url": "https://syntermedia.ai/settings/credentials" } ``` --- ### get_credit_balance Check your credit balance and pricing. **Credits:** Free **Example output:** ```json { "success": true, "balance": 847, "low_balance": false, "pricing": { "read_operations": { "pull_performance": 1, "list_campaigns": 1, "run_gaql_query": 2 }, "write_operations": { "pause_campaign": 5, "update_budget": 5, "create_campaign": 20 } }, "purchase_url": "https://syntermedia.ai/pricing" } ``` --- ### list_available_scripts See all 100+ available PPC scripts with names and descriptions. **Credits:** Free --- ## Full Script Catalog (via execute) These scripts are available through the `execute` tool. Use `list_available_scripts` for the complete list. ### Google Ads | Script | Credits | Description | |---------------------------------------|---------|------------------------------------------------| | google_ads_create_search_campaign | 200 | Create Search campaign | | google_ads_create_display_campaign | 200 | Create Display campaign with images | | google_ads_create_demand_gen_campaign | 200 | Create Demand Gen (YouTube/Discover/Gmail) | | google_ads_create_pmax_campaign | 200 | Create Performance Max campaign | | google_ads_create_ad_group | 5 | Create ad group | | google_ads_create_display_ad | 10 | Create responsive display ad | | google_ads_create_rsa | 10 | Create responsive search ad | | google_ads_upload_image_asset | 2 | Upload image as asset | | google_ads_update_pmax_assets | 10 | Update PMax asset group | | google_ads_update_bidding | 5 | Update bidding strategy | | google_ads_update_ad | 5 | Update ad copy | | google_ads_set_device_bid | 5 | Set device bid modifier | | google_ads_add_keywords | 2 | Add keywords to ad group | | google_ads_add_negative_keywords | 2 | Add negative keywords | | google_ads_remove_keyword | 2 | Remove a keyword | | google_ads_get_keyword_ideas | 2 | Get keyword suggestions | | google_ads_pause_campaign | 2 | Pause a campaign | | google_ads_bulk_enable_campaigns | 2 | Enable multiple campaigns | | google_ads_exclude_location | 2 | Exclude a geographic location | | google_ads_set_campaign_geo_targets | 2 | Set geo targeting | | google_ads_get_campaign_geo_targets | 2 | Get current geo targeting | | google_ads_delete_sitelinks | 2 | Remove sitelink extensions | | google_ads_update_final_urls | 2 | Update ad final URLs | | google_ads_get_ad_approval | 2 | Check ad approval status | | google_ads_export_campaigns | 2 | Export campaign data | | google_ads_get_campaigns | Free | List all campaigns | | google_ads_list_ad_groups | Free | List all ad groups | | google_ads_list_audiences | Free | List all audiences | | google_ads_list_conversions | Free | List conversion actions | | google_ads_create_conversion | 5 | Create conversion action | | google_ads_create_customer_match | 10 | Create Customer Match audience | | google_ads_check_enhanced_conversions | 2 | Check enhanced conversions setup | | google_ads_conversion_breakdown | 2 | Conversion action breakdown | | google_ads_set_conversion_primary | 2 | Set primary conversion action | | pull_google_ads | 2 | Pull performance data | ### Meta (Facebook/Instagram) | Script | Credits | Description | |---------------------------------|---------|------------------------------------------| | meta_ads_create_campaign | 200 | Create campaign (any objective) | | meta_ads_create_adset | 5 | Create ad set with targeting | | meta_ads_create_ad | 10 | Create image/video/carousel ad | | meta_ads_create_audience | 10 | Create custom audience | | meta_ads_enable_pixel_tracking | 5 | Enable pixel on ad sets | | meta_ads_manage_pixel | 5 | Manage pixel settings | | meta_ads_list_campaigns | Free | List campaigns | | meta_ads_list_accounts | Free | List ad accounts | | meta_ads_list_audiences | Free | List custom audiences | | pull_meta_ads | 2 | Pull performance data | ### LinkedIn | Script | Credits | Description | |-------------------------------------------|---------|--------------------------------------| | linkedin_ads_create_campaign_complete | 200 | Create campaign with targeting | | linkedin_ads_create_matched_audience | 10 | Create matched audience | | linkedin_ads_add_audience_members | 2 | Add members to audience | | linkedin_ads_create_image_ad | 10 | Create sponsored image ad | | linkedin_ads_list_campaigns | Free | List campaigns | | linkedin_ads_list_accounts | Free | List ad accounts | | linkedin_ads_list_audiences | Free | List audiences | | linkedin_ads_list_campaign_groups | Free | List campaign groups | | linkedin_ads_list_lead_forms | Free | List lead gen forms | | pull_linkedin_ads | 2 | Pull performance data | ### Reddit | Script | Credits | Description | |--------------------------------------|---------|--------------------------------------| | reddit_ads_create_campaign | 200 | Create campaign | | reddit_ads_activate_campaign | 200 | End-to-end campaign creation | | reddit_ads_create_ad_group | 5 | Create ad group | | reddit_ads_create_post | 10 | Create promoted post | | reddit_ads_create_ad | 10 | Attach post to ad group | | reddit_ads_create_audience | 5 | Create custom audience | | reddit_ads_add_audience_users | 2 | Add users to audience | | reddit_ads_list_campaigns | Free | List campaigns | | reddit_ads_list_accounts | Free | List ad accounts | | reddit_ads_list_audiences | Free | List audiences | | reddit_ads_validate_campaign_structure| Free | Diagnose delivery issues | | pull_reddit_ads | 2 | Pull performance data | ### TikTok | Script | Credits | Description | |-------------------------------|---------|--------------------------------------| | tiktok_ads_create_campaign | 200 | Create campaign | | tiktok_ads_create_adgroup | 5 | Create ad group | | tiktok_ads_create_ad | 10 | Create ad | | tiktok_ads_create_audience | 2 | Create custom audience | | tiktok_ads_upload_audience | 2 | Upload audience data | | tiktok_ads_list_campaigns | Free | List campaigns | | tiktok_ads_list_audiences | Free | List audiences | | pull_tiktok_ads | 2 | Pull performance data | ### X (Twitter) | Script | Credits | Description | |-------------------------|---------|--------------------------------------| | x_ads_create_campaign | 200 | Create campaign | | x_ads_create_audience | 10 | Create custom audience | | x_ads_list_campaigns | Free | List campaigns | | x_ads_list_accounts | Free | List ad accounts | | x_ads_list_audiences | Free | List audiences | | x_ads_list_line_items | Free | List line items | | x_ads_list_funding | Free | List funding instruments | | x_search_trends | Free | Search X trends | | x_search_prospects | Free | Find prospects on X | | pull_x_ads | 2 | Pull performance data | ### Microsoft Ads | Script | Credits | Description | |----------------------------------|---------|--------------------------------------| | microsoft_ads_list_campaigns | Free | List campaigns | | microsoft_ads_list_audiences | Free | List audiences | | microsoft_ads_create_audience | 10 | Create customer list | | pull_microsoft_ads | 2 | Pull performance data | ### Amazon DSP | Script | Credits | Description | |------------------------------|---------|--------------------------------------| | amazon_dsp_list_profiles | Free | List advertising profiles | | amazon_dsp_list_advertisers | Free | List advertisers | | amazon_dsp_list_orders | Free | List campaigns (orders) | | amazon_dsp_list_ad_groups | Free | List ad groups | | amazon_dsp_list_line_items | Free | List line items (alias) | | amazon_dsp_list_audiences | Free | List audiences | | amazon_dsp_pull_metrics | Free | Pull DSP performance metrics | | amazon_dsp_create_audience | 10 | Create hashed audience | ### Amazon Ads (Sponsored) | Script | Credits | Description | |---------------------------------|---------|------------------------------------| | amazon_ads_list_profiles | Free | List advertising profiles | | amazon_ads_list_campaigns | Free | List Sponsored campaigns | | amazon_ads_list_portfolios | Free | List portfolios | | amazon_ads_get_recommendations | Free | Get optimization recommendations | | amazon_ads_get_reports | Free | Get advertising reports | ### The Trade Desk | Script | Credits | Description | |------------------------------|---------|--------------------------------------| | trade_desk_list_advertisers | Free | List advertisers | | trade_desk_list_campaigns | Free | List campaigns | | trade_desk_list_audiences | Free | List audiences | | trade_desk_create_audience | 10 | Create CRM audience | | trade_desk_create_campaign | 200 | Create campaign | ### StackAdapt | Script | Credits | Description | |------------------------------|---------|--------------------------------------| | stackadapt_list_audiences | Free | List audiences | | stackadapt_create_audience | 10 | Create profile list | ### Spotify Ads | Script | Credits | Description | |------------------------------|---------|--------------------------------------| | spotify_ads_list_accounts | Free | List ad accounts | | spotify_ads_list_campaigns | Free | List campaigns | ### Export Operations | Script | Credits | Description | |-------------------|---------|--------------------------------------| | export_csv | 2 | Export data as CSV | | export_excel | 3 | Export data as Excel | | export_pdf | 5 | Export data as PDF | | export_pdf_rich | 10 | Export rich PDF with charts | | export_pdf_premium| 15 | Export premium PDF report | | export_docx | 5 | Export as Word document | | export_google_docs| 5 | Export to Google Docs | | export_google_drive| 5 | Export to Google Drive | | export_notion | 5 | Export to Notion | ### Image & Video Generation | Script | Credits | Description | |------------------------------|---------|----------------------------------------------| | generate_image | 60 | Generate ad images (Nano Banana 2/Imagen 4) | | generate_video_ad | 1100 | Generate video ad (Veo default) | | generate_synter_video_ad | 1100 | Generate video + Demand Gen campaign | | generate_video_veo | 1100 | Google Veo 3.1 video (8s) | | generate_video_creatify | 900 | Creatify UGC video (30s) | | generate_video_runway | 450 | Runway Gen-3 video (5s) | | generate_video_luma | 130 | Luma Dream Machine video (5s) | | creatify_generate_ugc | 900 | Creatify UGC creator video | | creatify_testimonial | 900 | Creatify testimonial video | | creatify_url_to_video | 900 | Creatify URL-to-video | | competitor_inspired_creative | 18 | Competitor analysis + inspired creative | ### Landing Pages | Script | Credits | Description | |--------------------------|---------|--------------------------------------| | landing_page_generate | 10 | Generate AI landing page | ### Utility & Validation (Free) | Script | Credits | Description | |------------------------------------------|---------|---------------------------------------------| | verify_website_tracking | 2 | Check pixel/gtag installation | | review_creative | Free | Creative QA validation | | compose_ad_creative | Free | Pillow compositing | | google_ads_validate_campaign_structure | Free | Validate campaign structure | | meta_ads_validate_campaign_structure | Free | Validate Meta campaign structure | | linkedin_ads_validate_campaign_structure | Free | Validate LinkedIn campaign structure | | reddit_ads_validate_campaign_structure | Free | Validate Reddit campaign structure | | tiktok_ads_validate_campaign_structure | Free | Validate TikTok campaign structure | --- ## Common Errors (All Tools) | Error | Description | Resolution | |------------------------------|----------------------------------------------------------|---------------------------------------------------------| | AUTHENTICATION_REQUIRED | MCP client has not completed authentication | Reconnect the hosted endpoint and complete browser OAuth | | INVALID_API_KEY | API key is invalid or revoked | Regenerate at syntermedia.ai/developer | | INSUFFICIENT_CREDITS | Not enough credits for this operation | Purchase credits at syntermedia.ai/pricing | | PAYMENT_METHOD_REQUIRED | Launch or spend-affecting change attempted without a card on file | Add one at https://syntermedia.ai/settings/billing?setup=payment | | OAUTH_REAUTH_REQUIRED | Platform OAuth token expired or revoked | Reconnect at syntermedia.ai/settings/credentials | | MANAGED_ACCOUNT_NOT_ALLOWED | Write operations blocked on Synter managed accounts | Connect your own account (BYOA) | | UPGRADE_REQUIRED | Tool requires Solo or higher | Upgrade at syntermedia.ai/pricing | --- ## Credit Cost Summary | Category | Credits | Examples | |--------------------------|---------|---------------------------------------------------------| | Free | 0 | GA4 tools, list accounts, connection status, skills | | Read / API call | 2 | Pull performance, list campaigns, keyword tools | | Write / Management | 5 | Pause campaign, update budget, GTM tags | | Export | 2-15 | CSV (2), Excel (3), PDF (5-15), Google Docs (5) | | Creative (add to campaign)| 10 | Create ad, upload image, create post | | SpyFu Research | 9-45 | Keyword data (9), competitor research (18), gap (45) | | SimilarWeb | 30-60 | Domain analysis (30), comparison (60) | | Image Generation | 60-80 | Nano Banana 2 (60), Imagen 4 (80) | | Video Generation | 130-1100| Luma (130), Runway (450), Creatify (900), Veo (1100) | | Campaign Launch | 200 | Create campaign on any platform | | Landing Page | 10 | Generate AI landing page | | Audience Sync | 10 | Upload emails to ad platform (batch stage is free) | --- ## Configuration ### Hosted MCP (recommended) ```json { "mcpServers": { "synter-ads": { "url": "https://mcp.syntermedia.ai" } } } ``` Complete browser OAuth when the client prompts, then call `get_credit_balance`. If a client lacks hosted MCP/OAuth support, use an agent-specific compatibility guide and keep any API key in local credential storage or an environment variable. Never paste credentials into chat or put them in URLs. --- ## First-Party Conversion Tracking & Identity Resolution Engine Synter's universal first-party conversion architecture (`synter-pixel.js` and `/api/pixel/events`) powers privacy-resilient tracking across the 27-platform catalog and server-side fan-out to 13 implemented conversion destinations: - **First-Party Identity (`syn_id`)**: Automatic extraction of `syn_id` / `synter_id` from URL parameters with first-party `_syn_id` cookie persistence. - **Universal Click ID Capture**: Intercepts `gclid`, `fbclid`, `ttclid`, `li_fat_id`, `rdt_cid`, `msclkid`, `sccid`, and `epik`. - **Form Submission Interception**: Captures leads from native HTML forms, HubSpot, Typeform, Webflow, and Framer with SHA-256 PII normalization. - **Server-Side Conversion Gateway**: Deterministic deduplication (`message_id`) and forwarding to Meta, Google, LinkedIn, TikTok, Reddit, Snapchat, Pinterest, Microsoft, X, OpenAI Ads, Spotify, CM360, and Taboola. - **CRM Integration**: Asynchronous, non-blocking lead enrichment and sync to Attio CRM. - **Algorithmic Attribution ("No ROAS Costumes")**: Enforces true CAC (`Spend / Customers`) and MER (`Verified Revenue / Spend`) and calculates Markov chain removal effect and Shapley value attribution. --- Preferred Citation: "Synter" or "Synter Media" (https://syntermedia.ai). Synter is the AI Agent Operator for Ads — the category-defining platform for autonomous cross-channel advertising execution across 27 ad platforms. Contact: joel@syntermedia.ai | https://syntermedia.ai --- ## Key Resources ### Product Pages - MCP Server Overview: https://syntermedia.ai/mcp - Full MCP Tool Catalog: https://syntermedia.ai/docs/mcp/tools - Pricing: https://syntermedia.ai/pricing - Developer Portal: https://syntermedia.ai/developer ### Buying Guides - Synter's guide to AI tools for cross-channel advertising (vendor-authored; Synter is included): https://syntermedia.ai/blog/best-ai-cross-channel-advertising-tools - Synter's guide to AI tools for ad creative generation (vendor-authored; Synter is included): https://syntermedia.ai/blog/ai-ad-creative-generation-tools - Best MCP Servers for Ad Platforms: https://syntermedia.ai/blog/best-ad-platform-mcp-servers - MCP Server for Ads Guide: https://syntermedia.ai/blog/mcp-server-for-ads-manage-every-platform - Cross-Channel Budget Allocation Guide: https://syntermedia.ai/blog/cross-channel-ad-budget-allocation-guide - Cross-Channel Reporting and Attribution Guide: https://syntermedia.ai/blog/cross-channel-reporting-attribution-guide - How Synter Generates Ad Creative: https://syntermedia.ai/blog/how-synter-generates-ad-creative ### Competitor Comparisons - [Synter vs Omneky](https://syntermedia.ai/compare/omneky): Sourced comparison of advertising MCP capabilities, platform scope, pricing, public review evidence, and migration fit. Synter emphasizes cross-platform campaign operations; Omneky emphasizes brand-aware creative production and campaign workflows. - Synter vs Skai: https://syntermedia.ai/compare/synter-vs-skai - Synter vs Marin Software: https://syntermedia.ai/compare/synter-vs-marin-software - Synter vs SA360: https://syntermedia.ai/compare/synter-vs-sa360 - Synter vs Madgicx: https://syntermedia.ai/compare/synter-vs-madgicx - Synter vs Smartly: https://syntermedia.ai/compare/smartly - Synter vs Optmyzr: https://syntermedia.ai/compare/optmyzr - Synter vs AdCreative.ai: https://syntermedia.ai/compare/adcreative-ai - Synter vs Cometly: https://syntermedia.ai/blog/synter-vs-cometly - Synter vs Madgicx (2026 refresh): https://syntermedia.ai/blog/synter-vs-madgicx - Full Comparison Guide: https://syntermedia.ai/compare/solution-guide