Skip to main content

Tool Types

  • Read Safe to run anytime. Pulls data, analyzes performance, provides insights. No spending impact.
  • Write Requires user confirmation. Creates campaigns, updates budgets, modifies targeting. Affects spend.

LinkedIn Ads Tools (30+)

Meta Ads Tools (21)

TikTok Ads Tools (31)

Audit Tools (1)

Tool NameTypeDescription
audit_conversion_trackingReadAudit conversion tracking health across platforms. Checks Meta Pixel (event volume, CAPI, dedup), LinkedIn (conversion rules, CAPI, Insight Tag), and Google Ads (conversion actions, enhanced conversions, attribution). Returns health score (0-100), grade (A-F), and actionable recommendations.

Automation Tools (8)

System Tools (4)

Tool NameTypeDescription
get_connections_statusReadShow all connected ad platforms and account IDs
switch_primary_accountWriteChange active ad account (for users managing multiple accounts)
get_usage_statusReadCheck Adspirer plan limits (tool calls used/remaining this month)
get_business_profileReadView user’s Adspirer account details and subscription info

Tool Call Best Practices

  • Always start with get_connections_status: Verify the correct ad account is active before using platform-specific tools
  • Chain Read tools before Write tools: Research, validate, then create. Never jump straight to campaign creation.
  • Ask for user confirmation before Write tools: Present the plan, get approval, then execute.
  • Never retry Write tools on error: If a campaign creation fails, report the error and wait for user input. Don’t auto-retry.
  • Format results as tables: Performance data should be scannable (columns: metric, value, change vs. previous period)

Input Format Requirements

Follow these rules when calling Adspirer tools to avoid validation errors:

IDs Must Be Strings

All IDs (campaign_id, ad_account_id, video_id, image_hash, ad_group_id, keyword_id, organization_id, creative_id) must be passed as quoted strings, never as bare integers.
// ✅ Correct
{"existing_video_id": "1333064875515942"}

// ❌ Wrong
{"existing_video_id": 1333064875515942}

Never Modify IDs

Copy IDs exactly as returned by list/discover tools. Do not round, truncate, or change any digits.

Always Call List/Discover Before Create/Update

Many tools require IDs from prior tool calls:
  • list_campaigns → get campaign_id before update/pause/structure
  • get_campaign_structure → get ad_group_id before keyword operations
  • discover_existing_assets → get image_hash, video_id before campaign creation
  • get_linkedin_organizations → get organization_id and account_id

Text Length Limits

The server will reject text that exceeds platform limits:
FieldPlatformMax Characters
HeadlineGoogle Ads30
DescriptionGoogle Ads90
Sitelink textGoogle Ads25
CalloutGoogle Ads25
primary_textMeta Ads125
HeadlineMeta Ads40

Meta Ad Copy Formatting

Meta primary_text supports emojis, line breaks (\n), and bullet points for higher engagement:
🔥 Limited Time Offer!

✅ Free Shipping
✅ 30-Day Returns
✅ Best Price Guarantee

👉 Shop now before it's gone!
Use emojis strategically (🔥 ✅ 🎯 💰 ⚡ 🚀 👉 ⭐ 💡 📈) and structure copy with line breaks and bullet points (•, ✅, ▸) for readability.

Enum Values Are Case-Insensitive

The server auto-normalizes casing. Common enum values:
  • status: ENABLED, PAUSED, ACTIVE, ARCHIVED
  • objective: OUTCOME_TRAFFIC, OUTCOME_SALES, OUTCOME_LEADS
  • match_type: EXACT, PHRASE, BROAD
  • date_range: last_7_days, last_30_days, last_90_days
  • campaign_type: search, pmax, image, video, carousel

Budgets Are Numbers

Pass budget fields as numbers, not strings. Budget is in the account’s local currency (not cents).

Keywords Format

For add_negative_keywords, each keyword must be an object with text and match_type fields:
// ✅ Correct
{"keywords": [{"text": "free", "match_type": "BROAD"}]}

// ❌ Wrong
{"keywords": ["free", "cheap"]}
Last modified on April 8, 2026