Changelog

What's new

Public history of gadspilot features, fixes and improvements. Auto-updated on each deploy.

May 2026

Fix manual-244

SEO audits now respect your language preference

SEO audit reports now generate in your preferred language (English, French, or Spanish) instead of always in French. We also improved the error message when Google requires two-step verification during account connection, making it clearer what you need to do to reconnect.
New manual-243

Support inbox management and improved contact page

We've added a complete support inbox admin system that syncs your IMAP mailbox with our database, letting you manage support emails directly in gadspilot. The contact page is now streamlined with a cleaner design. Your support inbox automatically detects folders, deduplicates messages, and keeps everything in sync with your email server.
Security manual-242

Removed insecure legacy token authentication

We've removed the legacy token-in-URL authentication method that exposed your API credentials in logs and browser history. All MCP connections now use secure OAuth and Personal Access Tokens via the Authorization header instead. If you were using the old method, please switch to Personal Access Tokens in your account settings.
New manual-241

What's new page and unread changelog badge

We've added a new What's new page that shows you recent product updates in a clear, organized way grouped by date. A red badge now appears in your sidebar when there are unread updates since your last visit, so you never miss important changes.
New manual-240

Modern toast notifications for instant feedback

Notifications now appear as sleek toasts in the top-right corner and automatically dismiss after a few seconds. You can still close them manually if needed. Status messages appear in green, errors in red, with smooth animations for a polished feel.
Fix manual-239

Modern tabs, unified copy buttons, better token visibility

We've redesigned the dashboard tabs with a cleaner segmented control style and modernized client selection pills. Copy buttons are now consistent across all token, URL, and code snippet fields with clear visual feedback. When you generate a new token, the page stays on the Headless tab and displays a prominent green banner reminding you to copy it—the token is also pre-filled in code snippets for faster setup.
New manual-238

Connected accounts tab in connection hub

The connection hub now displays a dedicated Connected tab showing all your linked accounts and properties with a count. This makes it easier to see at a glance what's already connected alongside options to add new apps or agents.
New manual-237

Improved connection setup and fixed accounts page crash

We've reorganized the connection setup flow into two clear tabs: one for connecting apps via OAuth, and another for headless integrations like scripts and agents. We also fixed a crash on the accounts page that occurred when personal access tokens were present. The page now correctly handles all token types.
New manual-236

Tabbed OAuth and headless connection setup

We've reorganized the connection setup experience with tabbed cards for OAuth apps (Claude.ai, ChatGPT, Claude Desktop, Cursor, Claude Code) and headless agents (n8n, Make, Hermes, OpenClaw, curl). Each tab now includes copyable code snippets and a full setup guide. We've also added helpful tooltips throughout the app to explain each setting, and made it easier to connect additional accounts with a new button at the top of your accounts page.
New manual-235

Personal Access Tokens for headless agents

You can now create Personal Access Tokens to connect headless tools like Hermes, n8n, and cron scripts that can't complete interactive OAuth flows. Each token grants access to a specific data source (Google Ads, Search Console, or Meta Ads) and never expires unless you revoke it. Tokens are displayed once when created, then securely hashed. A new quick-connect interface on your accounts pages makes it easy to generate and manage tokens.
New manual-234

Two-factor authentication now available

Protect your account with optional two-factor authentication. Enable TOTP via authenticator app or receive one-time codes by email during login. Manage your 2FA settings in your profile, and use recovery email codes if needed. Admins can view and reset 2FA status for users.
New manual-233

Sort campaigns by CPA

You can now sort campaigns by cost per acquisition (CPA) in addition to spend, ROAS, and name. Choose between lowest CPA (best efficiency) or highest CPA (worst efficiency). Campaigns with no conversions are automatically placed at the bottom to avoid confusion.
Fix manual-232

Prevent incompatible campaign operations

Fixed a bug where Claude could attempt operations on incompatible campaign types (like adding keywords to video campaigns), which would fail silently or with cryptic errors. The system now validates campaign compatibility before sending requests to Google Ads and warns Claude about these restrictions in real time.
Fix manual-231

Fixed tooltip display in data tables

Tooltips in data tables were appearing as empty black bars due to CSS overflow clipping. We've fixed this by rendering tooltips at the page level with smart positioning that automatically places them above or below content as needed, ensuring they're always visible and properly positioned.
Fix manual-230

Improved tooltips with styled popovers

Tooltips throughout the app now display in a sleek dark popover with an arrow, replacing the browser's default tooltip. The new design matches our modern interface and provides better readability with smooth fade-in animations.
Fix manual-229

Improved campaign metrics with helpful tooltips

We've streamlined the campaign performance table to show the metrics that matter most: Spend, CPA, CPAC (Cost Per All Conversions), ROAS, and Score. Each column header now includes a tooltip that explains what the metric means and how to interpret it, making it easier to understand your campaign performance at a glance.
New manual-228

Sort campaigns by budget, conversions, and CPA

The campaigns table is now sortable by budget, conversions, all conversions, cost per acquisition, and cost per all conversions. You can click any column header to reorder your campaigns and find optimization opportunities faster.
New manual-227

New landing page for Claude + Google Ads integration

We've launched a dedicated landing page highlighting gadspilot's Claude MCP integration for Google Ads. It showcases our unique advantages: 46 writing tools (compared to Google's read-only MCP), complete Performance Max campaign management with 16 exclusive tools, and dry-run safety features for risk-free testing.
Fix manual-226

Fixed skill card collapsing when viewing data

Fixed a bug where clicking 'See data' or 'Apply' buttons would unexpectedly close the skill card panel. Users can now view and apply data without the panel collapsing and requiring them to reopen it.
New manual-225

See action details before applying recommendations

Recommendations now show exactly what will change before you apply them. Click 'See data' on any recommendation to preview the full list of keywords, match types, bids, and other details inline. You'll also see the audit period that generated each recommendation, so you know exactly when the analysis ran.
Fix manual-224

Fix progress bar showing incorrect campaign count

When you selected 'All active campaigns' in a run, the progress bar would display an inflated count (like 60,000 cells) even though the audit was actually processing far fewer campaigns. We now update the progress bar to show the real number of campaigns being audited, so you see accurate progress like '45/300' instead of misleading numbers.
Fix manual-223

Fixed pricing for non-hardcoded AI models

Gadspilot now fetches live pricing directly from OpenRouter for AI models not in our hardcoded list. This fixes a bug where models like DeepSeek v4-flash were priced 30× higher than actual cost. Estimates will now be accurate for all supported models.
New manual-222

Cleaner model selector with fewer outdated options

The model dropdown now filters out obsolete models older than 18 months, reducing clutter from legacy options like Claude 1/2 and GPT-3. Current flagship models remain available so your existing selections continue to work. This makes it easier to find the right model for your campaigns.
Fix manual-221

Fix incorrect cell estimates for 'All' campaigns option

The 'All active campaigns' option was incorrectly multiplying by 9999 instead of your actual active campaign count, showing wildly inflated cost and cell estimates. We now read your true active campaign count and calculate estimates accurately. Options that exceed your active campaign count are also hidden to avoid confusion.
New manual-220

Accurate cost estimates for audit runs

Audit run cost estimates now reflect actual model pricing and token usage. The system reads your configured AI models and calculates costs based on real OpenRouter rates, showing you a realistic range before you run an audit. You'll see estimates like "Top 50 (~10–18€ · 18min · 306 cells)" so there are no surprises on your bill.
Fix manual-219

Improved parsing for complex ad campaigns

Increased token capacity for account-wide ad analysis to prevent parsing failures on verbose campaign data. This fix ensures all your ads and landing page information processes correctly, even for complex accounts with extensive campaign history.
Fix manual-218

Improved audit accuracy for large ad accounts

Fixed a critical issue where audit reports were being truncated for accounts with many campaigns, causing analysis to fail 89% of the time. We increased the token limit to ensure complete audit data is captured, especially for our newer audit tools that analyze search terms, keywords, and geographic performance. This fix particularly helps agencies managing large accounts with dense campaign structures.
New manual-216

Fixed Ads Audit table display and layout issues

The Ads Audit modules table in the admin panel now displays correctly. We fixed detail rows that were stuck open, prevented badge text from wrapping awkwardly, removed stray characters from module descriptions, and added visual separation between modules for better readability.
New manual-215

Smarter loading screen for large data refreshes

When your insights dashboard needs to refresh large amounts of Google Ads data, you'll now see a helpful waiting screen instead of a blank page. It shows your active campaign count, estimates how long the refresh will take, and displays a progress bar. You can skip the wait and load immediately if you prefer.
New manual-214

Refresh button now shows hours in countdown timer

The countdown timer on the Refresh button now displays time in HH:MM:SS format instead of just MM:SS, making it clearer when cache will expire—especially helpful for longer TTLs. The timer also turns orange when less than 5 minutes remain.
Improvement manual-213

Faster insights page after deployments

The insights dashboard now loads much faster after we deploy updates. We improved our cache warming process to pre-load all the data the page needs, so you won't experience slowdowns when checking your ad performance right after we push changes.
New manual-212

Live model catalog and unified audit dashboard

The admin panel now fetches the latest AI models directly from OpenRouter, giving you access to 350+ models instead of a hardcoded list. The ads audit tool has been moved into the general admin dashboard alongside SEO audit for a unified view. You can manually refresh the model catalog from the admin panel, and the system automatically caches updates for 24 hours.
Fix manual-211

Improved audit progress tracking

The audit progress bar now displays information in terms campaigns and skills instead of raw API calls, making it easier to understand what's being analyzed. We also fixed a duplicate notification banner that was appearing twice during audits.
New manual-210

Real-time progress tracking for active audits

Active audits now display a live progress bar showing how many cells have been processed out of the total expected. You'll see a percentage, a cell counter, and a breakdown of what's being analyzed (e.g., "4 account skills + 15 campaigns × 3 skills = 49 expected cells"). The dashboard refreshes every 15 seconds while an audit runs, so you can watch your analysis progress in real time.
New manual-209

One-click Apply buttons for AI recommendations

Recommendations from Claude now include Apply buttons that execute changes directly to your Google Ads account. Preview the change first, then confirm to apply it—no manual copy-pasting needed. Currently supports adding negative keywords, pausing ads, and updating campaign budgets.
New manual-207

Audits now run in the background

Large audits no longer cause browser timeouts. When you run an audit, gadspilot now processes it in the background and shows you an estimated completion time. You can close the tab and come back later—the audit keeps running on our servers.
New manual-206

Enhanced admin user insights

The admin users page now displays richer account information: signup IP address, precise join timestamps with time of day, refined traffic source attribution, and separate Google Ads and Google Search Console connection status. This helps you better understand user onboarding patterns and integration adoption.
Improvement manual-204

Faster negative keywords page load

The negative keywords dashboard now loads significantly faster by limiting the initial display to the top 500 most impactful keywords server-side. You'll see a notice showing how many total keywords match your filters, and you can still refine results using the existing search and filter controls.
New manual-202

Admin insights, audit controls, and loading indicator

The admin system page now shows detailed database table sizes with file paths and human-readable formats. The audit tool lets you configure how many keywords to analyze (5, 15, 30, 50, or all), with estimated costs displayed upfront. A progress bar appears at the top of the page while pages load, so you know gadspilot is working.
New manual-201

New audit dashboard with tabbed interface

The audit view has been redesigned with four tabs: Account shows your account-level audit scores and recommendations; Campaigns displays your top 15 audited campaigns with performance indicators; Synthesis provides a summary report; and History lets you review previous audit runs. Click any campaign to see detailed scores and prioritized recommendations.
Fix manual-200

Fixed missing campaign data in aggregated metrics

Resolved an issue where campaign performance scores were not displaying correctly due to data loss during batch processing. Campaign metrics are now properly preserved and aggregated across all accounts.
Fix manual-199

Fix campaign performance data being ignored in audits

Fixed an issue where campaign performance data was not being fetched during audits if no prompt explicitly requested it. This caused the audit system to skip available campaign data even when it was present, resulting in incomplete analysis. Campaign performance is now always retrieved to ensure comprehensive audit coverage.
Fix manual-198

Fixed date range validation for Google Ads

Corrected a bug where date range parameters were being rejected during Google Ads API calls, causing all signals to fail silently. This was preventing campaign audits from running properly. Date ranges now validate correctly and agents can properly analyze your campaigns.
New manual-196

New audit mockup page for campaign-level analysis

We've added a new audit mockup page at /accounts/{id}/audit-mockup to help you visualize how campaign-level audits will work. The page displays all your active campaigns in a sortable table with performance scores and skill indicators, letting you drill down into individual campaigns to see recommended actions. This is a preview of our upcoming audit redesign—no data is sent to Claude yet.
New manual-195

Comprehensive Ads Audit with AI-Powered Recommendations

Introducing a new Ads Audit feature powered by Claude that analyzes your Google Ads, Search Console, and Meta Ads accounts. Run a full audit to get an executive summary, top 3 priorities, detailed findings by category, and a 7-day action plan. Download audit reports as markdown files, view historical audits, and access recommendations directly from your account insights dashboard. Audits are rate-limited to protect system resources.
New manual-192

Full Ads Audit with parallel AI agents

Gadspilot now runs comprehensive audits on your ad accounts by deploying multiple AI agents in parallel to analyze different aspects of your campaigns. Each audit produces a weighted score from 0–100, a verdict (excellent, good, warning, or critical), and detailed observations saved for future reference. You can track audit history, costs, and token usage from the dashboard.
Fix manual-191

Fixed dashboard table layout display

Resolved an issue where dashboard tables were not displaying correctly due to missing CSS styles. Tables now render properly with the correct layout and formatting.
New manual-190

AI agents now remember past insights and decisions

Your gadspilot AI agents now retain context across audits. When analyzing the same account or campaign multiple times, agents remember previous observations, recommendations, and decisions—eliminating redundant analysis and building on past insights for smarter recommendations.
New manual-189

Simplified dashboard with Google Ads default view

We've streamlined the dashboard to make it easier to get started. Google Ads now appears as your default view when you first log in, and our top recommendations are sorted to the top so you can act on them immediately. We've also added clearer explanations throughout to help you understand what each section does.
New manual-187

Full Ads Audit framework launched

We've built the foundation for comprehensive ads audits across Google Ads, Meta, and other platforms. Like our existing SEO audit, the new system uses consistent parsing rules and idempotent syncing to ensure reliable, repeatable analysis. Audits now categorize issues by platform and type—from keywords and bidding to ad copy and tracking—with weighted scoring to prioritize the most impactful improvements.
Improvement manual-186

Faster keyword matching and improved performance

We've optimized how gadspilot cross-references your Google Ads keywords, reducing processing time from nearly a minute to instant on large accounts. The keyword list is now cached for one hour per account, so the first sync pays the cost while subsequent syncs complete instantly. We've also cleaned up debug logging to eliminate unnecessary overhead in production.
Improvement manual-185

Improved Search Terms performance and stability

Search terms queries now filter out zero-impression terms and apply a 2000-result limit, preventing memory issues and delivering faster results when analyzing your search performance data.
Improvement manual-184

Fixed crash on audience demographics reports

Resolved a memory issue that caused the Audiences and Demographics section of your insights dashboard to crash or time out on large accounts. The fix optimizes how audience, age, and gender data is queried, making these reports load reliably even with thousands of ad groups and historical data.
Fix manual-181

Fixed memory issue on large ad accounts

Resolved an out-of-memory error that occurred when loading performance data for accounts with thousands of ads. The system now limits ad metrics queries to the top 100 ads by performance, preventing excessive data retrieval and memory consumption.
Improvement manual-180

Faster ad performance data loading

Fixed a performance issue that caused slow loading times when fetching ad metrics from Google Ads. The system now filters out days with no impressions, reducing data transfer by up to 70% while keeping all your active ads intact.
Fix manual-179

Fixed timeout errors on large ad accounts

We've resolved an issue where loading accounts with hundreds of ads would occasionally time out and show an error. This was caused by an overly aggressive timeout setting introduced recently. Large accounts should now load reliably without interruption.
New manual-177

Request logging and health monitoring

We've added comprehensive request logging to help us spot and fix issues before they impact you. Every request now logs performance metrics like response time, database queries, and memory usage—plus any errors that occur. This data is automatically cleaned up after 30 days and anonymized for privacy. We've also added a new admin health dashboard so our team can monitor system status in real time. All of this runs defensively: if logging fails, your app keeps working normally.
Fix manual-176

Fixed tool documentation pages crashing

Tool documentation pages were returning 500 errors when displaying parameters that accept multiple types (like number or null). This affected the documentation for account and campaign targeting tools across Google Ads, Search Console, and Meta Ads. The issue is now fixed, and these pages display correctly.
New manual-175

Safer keyword performance reports

Get_keyword_performance now excludes negative keywords and paused ad groups by default, preventing accidental bid increases on inactive keywords. You can still view them with an optional parameter if needed. The report now shows ad group status and negative keyword flags for full transparency.
New manual-174

Set campaign and account targets via Claude

You can now ask Claude to update your Google Ads targets directly. Set CPA, ROAS, or conversion value targets at the account level or bulk-update campaigns—no need to open the dashboard. Supports partial updates, so you only change what you specify.
Didn't find what you were looking for? Reach out to ceo@lws.fr or check the product documentation.
Need help? Ask Léa 💬
gadspilot assistant
Léa
AI assistant · gadspilot
Need a human? Contact support