On this page7
Connect LinkedIn Campaign Manager to Claude through Otto's hosted MCP server (connect Claude to Otto MCP) with one otto_mcp__ token to run eight live workflows: ad-set spend audits, GA4 and Google Ads attribution, PageSpeed checks, WordPress or GitHub landing-page fixes, and DRAFT campaign staging. In Otto MCP, LinkedIn Ads campaigns and ad sets start as DRAFT, activating or pausing requires confirm=true plus a Reviewer or Admin, $0 budgets are rejected, and querying metrics cuts token usage by 80–90% across 227 tools across 15 integrations in Otto MCP.
Copy-paste Claude prompts for LinkedIn Ads (start here)
The five LinkedIn Ads prompts below audit performance, verify landing-page speed, check GA4 attribution, and stage campaigns without manual spreadsheet exports.
1. 30-day LinkedIn Ads ad-set audit
Query my LinkedIn Ads account for the last 30 days using adAnalytics. Pull impressions, clicks, landingPageClicks, costInLocalCurrency, and externalWebsiteConversions broken down by ad set. Identify any ad set that spent over $300 with zero externalWebsiteConversions, calculate the cost per landing-page click for each ad set, and rank ad sets by conversion rate.
2. Post-click drop-off and GA4 reconciliation
Compare LinkedIn Ads landingPageClicks against GA4 landing-page sessions for the last 30 days on our top three destination URLs. Flag any page where GA4 engaged sessions are more than 25% lower than LinkedIn landing-page clicks, and check if UTM tracking parameters match across both systems.
3. Cross-channel B2B paid media comparison
Pull paid media metrics for the last 30 days across LinkedIn Ads, Meta Ads, and my read-only Google Ads account. Report spend, impressions, outbound or landing-page clicks, cost per click, and reported conversions for each network in a single markdown table. Highlight which channel produced the lowest cost per qualified lead.
4. Destination URL Core Web Vitals audit and draft fix
Run psi_analyze_url on the destination URL of our highest-spending LinkedIn ad set. Report mobile Lighthouse performance scores along with 28-day CrUX real-user metrics: FCP, INP, LCP, and CLS. If mobile LCP exceeds 2.5 seconds or CLS exceeds 0.1, diagnose the root cause and draft a WordPress page revision or GitHub pull request to fix it.
5. Scaffolding a new DRAFT LinkedIn campaign
Stage a new LinkedIn Ads Sponsored Content campaign named "Q1 B2B Decision Makers" targeting US accounts with a daily budget of $50 in local currency. Create the campaign and initial ad set in DRAFT status. Do not activate the campaign, and confirm that the budget is non-zero.Running LinkedIn Ads by hand in Campaign Manager vs. DIY Marketing API vs. Claude + Otto MCP
B2B marketing teams manage LinkedIn Ads through three primary routes: manual web sessions, custom developer applications, or a managed Model Context Protocol server.
| Dimension | Manual Campaign Manager Exports | DIY LinkedIn Marketing API Setup | Claude + Otto MCP |
|---|---|---|---|
| Token usage | 40,000 to 80,000 Claude tokens per 3,000-row CSV turn | Variable; depends on custom API queries | 80–90% lower token usage via aggregated endpoint queries |
| API credentials & auth | None (manual CSV exports and tab switching) | Custom OAuth 2.0 app handling r_ads and rw_ads scopes per Microsoft Learn's LinkedIn Ads getting started guide | Single otto_mcp__ bearer token; OAuth credentials stay on server |
| Setup complexity | Zero API setup; heavy manual labor across tabs | Apply for Development and Standard tiers per LinkedIn marketing access tier rules and track version sunsets | Direct connection at https://otto.islaintel.com/api/mcp (Connect LinkedIn Ads to Otto setup guide) |
| Write safeguards | Manual button clicks inside Campaign Manager | High risk; all API calls at both tiers run against live production data per LinkedIn tier documentation | Campaigns create as DRAFT; activates require confirm=true and Reviewer/Admin |
| Landing-page fixes | Open separate browser tabs for WordPress or GitHub | Requires building custom CMS integrations from scratch | Native execution via 29 WordPress tools or GitHub PRs with Vercel previews |
| Documentation | Campaign Manager UI help center | LinkedIn Marketing API documentation | How to Connect Claude to Otto MCP documentation |
According to remote server specifications from Model Context Protocol, remote MCP connections eliminate local per-device installations for services that rely on server-side authentication. Otto MCP operates over HTTP at https://otto.islaintel.com/api/mcp, keeping OAuth secrets secure on Otto's server while Claude communicates using an organization-scoped bearer token.
Otto MCP
Ask your AI assistant what changed in your ads
Connect Claude or ChatGPT to Otto, then ask about Meta Ads, Google Ads, GA4, and Search Console in the same chat. The logins stay in Otto.
Workflows 1–3: Ad-set waste audits, click-to-landing-page reconciliation, and cross-channel B2B attribution
Workflow 1: Ad-set spend and conversion audit via adAnalytics
Exporting raw Campaign Manager performance sheets into Claude consumes between 40,000 and 80,000 tokens on a single 3,000-row file. Querying aggregated metrics through Otto MCP cuts token usage by 80–90% versus uploading that CSV into the chat window.
Under LinkedIn's analytics architecture, requests must specify required metrics explicitly in the fields query parameter, supporting up to 20 metrics per call per Microsoft Learn's LinkedIn Ads reporting documentation. If you omit the fields parameter, LinkedIn returns only impressions and clicks by default.
To conduct a spend audit, connect your account following the Connect LinkedIn Ads to Otto setup guide and instruct Claude:
Query adAnalytics for my LinkedIn account over the previous 30 days. Request explicit fields: impressions, clicks, landingPageClicks, costInLocalCurrency, externalWebsiteConversions, reactions, and shares. List all ad sets with spend above $250 that produced zero conversions, and rank remaining ad sets by cost per conversion.
After you run the prompt, Claude should return a table of ad sets with spend above your threshold and zero conversions, plus a ranked list of remaining ad sets by cost per conversion—the shape the prompt specifies.
Workflow 2: Reconciling LinkedIn landing-page clicks against GA4 sessions
LinkedIn ad clicks often fail to register as completed site visits. A high click count paired with a low GA4 session count signals slow page-load speeds, unhandled mobile redirects, or broken tracking scripts.
Using the GA4 paid landing pages dashboard workflow, Claude queries both LinkedIn's landingPageClicks metric and GA4's read-only landing-page reports.
Pull landingPageClicks for each active LinkedIn ad set over the last 14 days. Next, query GA4 landing-page sessions and bounce rates for the corresponding UTM destination paths. Flag any ad set where GA4 sessions represent less than 75% of LinkedIn landing-page clicks.
For a hypothetical scenario, say your ad set reports 500 landing-page clicks but GA4 records only 220 sessions: Claude highlights the tracking drop-off so you can inspect page scripts before allocating additional budget.
Workflow 3: Cross-channel paid media comparison across LinkedIn, Meta, and Google Ads
Evaluating B2B lead acquisition costs across fragmented ad networks requires switching between multiple dashboards. The Otto AI Paid Ads Manager provides Claude with unified access across channels.
In Otto MCP, Google Ads data is read-only, preventing unwanted account adjustments or budget changes. Meta Ads allows management through Reviewer or Admin roles, and full multi-channel setups can reference our guide on 10 Claude workflows for Meta Ads in 2027.
Generate a cross-channel performance report for the past 30 days comparing LinkedIn Ads, Meta Ads, and my Google Ads account. Query spend, clicks, average CPC, and reported conversion events. Break out the data by platform and calculate the blended customer acquisition cost across all paid channels.
Claude queries each API via 227 tools across 15 integrations in Otto MCP and presents a consolidated spend summary.
Workflows 4–6: Mobile Core Web Vitals checks (psi_analyze_url), Search Console topic mining, and landing-page draft fixes
Workflow 4: Auditing destination URLs with psi_analyze_url
High LinkedIn cost-per-click bids are wasted when mobile landing pages load slowly. As detailed in our guide on how Core Web Vitals drift causes revenue leaks on paid traffic, slow load times degrade mobile conversion rates.
Otto MCP includes a native PageSpeed Insights tool, psi_analyze_url, which checks performance on any URL using Otto's platform key without requiring a user Google API key. The tool inspects 28-day Chrome User Experience Report (CrUX) field data—including First Contentful Paint (FCP), Interaction to Next Paint (INP), Largest Contentful Paint (LCP), and Cumulative Layout Shift (CLS) at the 75th percentile—alongside Lighthouse diagnostics per Google's PageSpeed Insights documentation.
Run psi_analyze_url for mobile on https://example.com/demo. Report LCP, INP, CLS, and the overall Lighthouse performance score. Highlight opportunities to compress oversized hero images or defer render-blocking scripts.
Under Otto v1.1.5, newly uploaded images compress automatically, and existing media assets receive re-processing during routine maintenance passes to safeguard mobile speeds. Read the Connect PageSpeed Insights to Otto documentation to configure URL monitoring.
Workflow 5: Mining Google Search Console queries for LinkedIn content angles
Prospects reveal their business challenges through organic search queries. Claude can extract these high-intent phrases from Google Search Console and turn them into LinkedIn Sponsored Content concepts.
Google Search Console operates as a read-only integration inside Otto MCP.
Query Google Search Console for the top 25 non-brand queries over the last 60 days that generated high impressions but a click-through rate below 3%. Group these queries into three B2B pain-point clusters and write two LinkedIn single-image Sponsored Content ad copy variants for each cluster.
Claude isolates search demand from verified query data, producing ad copy grounded in authentic market intent.
Workflow 6: Fixing landing-page message match via WordPress drafts or GitHub pull requests
When LinkedIn ad copy promises a specific guide or feature, the landing page must reflect that messaging immediately. Unlike ad-only reporting platforms, Otto Webmaster bridges ad auditing with direct website updates.
Otto connects to your existing website infrastructure through the Otto AI Website Manager. For WordPress sites, Otto provides 29 tools (15 read tools and 14 write tools), where all new posts and pages default to draft status. For custom web applications, Otto connects with GitHub and Vercel to open pull requests with preview deployments.
Enrique Gomez, owner of Enzo Maverick Pilates and Experiences Sensory, notes: "Otto has been pivotal for us. The ease of making website changes on the fly lets us sharpen our brand and revise as fluidly as we need." Other verified organizations using Otto include Sensory Pilates & Wellness, Wyn Wellness, Complex Physical Therapy & Performance, Urban Boxing, and Tapper Training.
Compare the headline and primary CTA of our top-spending LinkedIn ad set against the hero section of its destination page. Draft an updated WordPress page revision that aligns the page headline with the ad copy, stages the revision as a DRAFT, and returns the preview link for review.
Otto drafts the WordPress update or submits a GitHub pull request, keeping production pages untouched until you confirm the change.
Workflows 7–8: DRAFT-first LinkedIn campaign scaffolding and the Monday executive briefing
Workflow 7: Scaffolding LinkedIn campaigns in DRAFT status
Creating LinkedIn ad structures manually involves repetitive inputs across campaign groups, campaigns, and ad sets. Claude can generate these structures via Otto MCP while adhering to platform validation rules.
LinkedIn supports campaign formats including SPONSORED_UPDATES, SPONSORED_INMAILS, and TEXT_AD, requiring a minimum target audience of 300 members per Microsoft Learn's LinkedIn Campaign Management documentation. Because all LinkedIn Advertising API calls execute on live production data per LinkedIn marketing tier policies, Otto MCP enforces strict account protections:
- New LinkedIn Ads campaigns and ad sets are created as
DRAFTby default. - Switching status to
ACTIVEorPAUSEDrequires explicitconfirm=trueand Reviewer or Admin privileges on the Master plan. - Budgets entered as
$0are rejected immediately by server validation.
For Meta campaign staging rules, refer to how to connect Claude to Meta Ads in 2027.
Stage a new LinkedIn Sponsored Content campaign named "Enterprise Tech Directors" targeting an audience over 300 members. Set the daily budget to $75 in local currency. Ensure the campaign status is DRAFT and output the staged campaign parameters for review.
Claude creates the draft entity in Campaign Manager; the campaign stays in DRAFT until a Reviewer or Admin activates it with confirm=true on the Master plan.
Workflow 8: Automating the Monday executive paid and organic briefing
Compiling weekly client or internal reports often consumes hours of spreadsheet formatting. Claude can combine paid media performance and website activity into a single briefing.
Otto MCP includes the otto_get_change_log tool to review recent site updates and deploys. Since v1.2.0, Otto generates automated weekly SEO reports tracking keyword positioning over time, while v1.1.0 introduced WhatsApp integration enabling one-tap approvals for proposed changes without visiting the web dashboard.
Generate our Monday executive briefing. Summarize LinkedIn Ads spend and conversion totals for the past seven days, report organic keyword shifts from the weekly SEO report, and call otto_get_change_log to list all website updates deployed during the week.
Claude compiles the briefing, giving leadership full visibility into advertising spend, search visibility, and site modifications.
How Otto's approval gates protect your LinkedIn Ads and Google Ads budget
Connecting an AI agent to live ad accounts introduces financial risk if permissions are unmanaged. Per Microsoft Learn's LinkedIn access tier documentation, LinkedIn offers two access tiers: Development and Standard. Critically, API calls across both tiers execute against live production data rather than a sandbox environment.
Otto MCP implements structural safeguards to protect production accounts:
- LinkedIn Ads safety defaults: Campaigns and ad sets instantiate in
DRAFTstatus. Budgets configured at$0are rejected. Moving a campaign toACTIVEorPAUSEDrequires passingconfirm=truealongside a verified Reviewer or Admin role on the Master plan. - Strictly read-only platforms: Google Ads, Google Analytics 4, Google Search Console, Google Business Profile, YouTube, Google Sheets, Shopify, and PageSpeed Insights cannot receive write operations or configuration changes through Otto MCP.
- Draft-first website updates: New WordPress posts and pages stage as drafts. GitHub edits generate pull requests with preview links. In Otto core, sensitive assets including checkout, contact, and legal pages always require explicit human authorization.
- Direct publishing exceptions: Unlike WordPress drafts or LinkedIn draft scaffolding, social posts published to Facebook Pages and Instagram via Otto MCP go live immediately and require Reviewer or Admin permissions.
- Credential isolation: Sensitive OAuth secrets remain on Otto's backend servers; Claude connects using an organization-scoped bearer token prefixed with
otto_mcp__.
Every outbound dollar and production asset change remains under direct human management.
Otto Webmaster vs. Opteo, Madgicx, Synter, and Ryze AI: plans, limitations, and FAQs
Single-channel tools manage individual ad networks but cannot fix destination landing pages or audit post-click technical issues.
| Tool | Core Focus | Ad Networks Covered | Website & CMS Updates | Claude MCP Support |
|---|---|---|---|---|
| Otto Webmaster | AI webmaster managing sites, search, and paid media | LinkedIn, Meta, Google (read-only), X, ChatGPT | 29 WordPress tools, GitHub PRs, Vercel previews | HTTP MCP server (https://otto.islaintel.com/api/mcp) |
| Opteo | Google Ads bid and search-term recommendations | Google Ads only | None | No MCP integration |
| Madgicx | Creative analytics and automated bidding | Meta Ads and e-commerce channels | None | No MCP integration |
| Synter | Paid media reporting connectors | 40+ ad networks | None | Yes (ad metrics only) |
| Ryze AI | Paid ad automation and SEO/GEO workflows | Meta, Google Ads | None (no GitHub PRs or WordPress edits) | Proprietary AI assistant |
A detailed feature comparison is available in our analysis of the 7 best Ryze AI alternatives for paid ads and SEO in 2027.
Plans and pricing
Otto MCP shares the same pricing structure as Otto core rather than charging an isolated fee:
- $1 Trial (3 Days): Full access to website updates, SEO management, read-only analytics for ads and socials, and an included homepage redesign crafted from your business assets with human review before launch.
- Pro ($199/month, or $99/month billed annually): Full website management, ongoing SEO maintenance, and read-only monitoring across paid ads and social channels.
- Master ($3,500/month, or $3,000/month billed annually): Adds write access to paid ads and organic socials with human approval controls on every live modification. Users can cancel anytime.
Review plan features on our Otto Trial, Pro, and Master pricing page.
Honest limitations
- Ad write access requires Master: Trial and Pro tiers provide read-only monitoring for LinkedIn Ads and Meta Ads; staging campaigns and adjusting ad sets through Claude requires the Master plan.
- Read-only Google ecosystem: Google Ads, GA4, Search Console, and PageSpeed Insights cannot be altered via Otto MCP; they function purely as diagnostic inputs.
- Platform support boundaries: Otto does not support unannounced platforms such as Wix, Webflow, or TikTok in its live MCP server. Otto is not Otto The Agent (travel software) or OttoKit, and the Otto CLI for terminal environments is coming soon.
- No ranking promises: Otto never promises Google Map Pack placement, search rankings, or ChatGPT mentions; it structures websites, schema, listings, and reviews so search engines and AI assistants can read the business.
- White-label portal constraints: White-label agency client portals remain limited.
Frequently asked questions
How do I handle rolling LinkedIn Marketing API sunsets?
Per Microsoft Learn's deprecation schedule, LinkedIn deprecates versioned Marketing APIs on a rolling cycle; for instance, Marketing Version 202511 sunsets on November 16, 2026. Custom DIY integrations require ongoing version upgrades in your own Developer Portal app. With Otto MCP, you connect LinkedIn through Otto's hosted server using one organization-scoped otto_mcp__ bearer token, so you avoid building and maintaining your own LinkedIn OAuth application stack.
Why does adAnalytics return only clicks and impressions?
As documented by LinkedIn's reporting guide, the adAnalytics endpoint requires explicit naming of requested metrics in the fields query parameter. Without specifying fields like landingPageClicks or costInLocalCurrency, the API omits them by default. List the metrics you need in your Claude prompt—the same fields you would pass to adAnalytics—as in the Workflow 1 copy-paste block above.
Can Claude activate a LinkedIn campaign without my knowledge?
No. LinkedIn campaigns and ad sets stage as DRAFT by default. Changing a campaign status to ACTIVE requires passing confirm=true and requires verified Reviewer or Admin credentials on the Master plan.
Otto AI Paid Ads Manager
The ad should match the page.
Otto watches the accounts next to the live site. Creative and budget stay drafts until you approve them. The weekly note says what the spend did.
See how Otto does it