Google Ads audit · essential-studio
2026-11-12 15:47 · success · score 50· by sarathkumarvenkatesan · reviewed by sarathkumarvenkatesan on 2026-11-12· backend claude-code 2.1.322 (claude-opus-5-5)
Checklist: demand-gen/paid/ads-account-audit.md
Summary
Headline
The Essential Studio Google Ads account (syncfusion.com, 9780479270, USD) spent $41,042.24 between 2026-10-15 and 2026-11-11, down 26.99% on the prior 28 days. It recorded 7 conversions (6 ES Product Signup, 1 Request demo), down from 27, which is about $5,863.18 per conversion. Campaigns with zero conversions spent about $26,536.13. Targeting hygiene is good: Presence geo, Search Partners and Display off, no broad match, auto-apply off, brand excluded and large shared negative lists. The gaps are measurement and bidding. No CRM stage is imported, so no campaign can bid on qualified pipeline, and 11 of 12 enabled ES Search campaigns don't bid on conversions at all (9 Manual CPC, 2 Maximize Clicks). Competitor ads also carry unsourced superlatives.
Score
50 / 100 (7 of 14 scored items passed; a warn counts as not passed; 1 n/a and 1 not-checked item are excluded)
- Pass: 7 | Warn: 4 | Fail: 3 | n/a: 1 | Not checked: 1
Top 3 actions
- Start importing qualified CRM stages (B3, B4). Capture GCLID, GBRAID and WBRAID on every form, create an offline conversion action, and import qualified lead, opportunity and closed-won daily as primary goals. Owner: sales ops and the paid search lead.
- Cut spend on campaigns with zero conversions and tie bidding to the pricing model (B5). UI Components US & Canada ($7,237.92) and Doc SDK US & Canada ($7,093.86) recorded 0 conversions on Manual CPC. Review their budgets now, then move them to conversion-based bidding once step 1 is live.
- Clean up competitor ad claims (C4, C1). Source or remove "Industry-Leading .NET PDF APIs" and "the best alternative to …". Match "G2 Top-Rated" to the current homepage badge wording, and confirm that using competitor names in ad text is permitted.
Findings
Ads account audit: essential-studio, syncfusion.com (9780479270), 2026-11-12
Period: 2026-10-15 to 2026-11-11 (28 days), compared with 2026-09-17 to 2026-10-14 | Run by: Claude
| ID | Item | Result | Evidence | Est. monthly waste | Proposed fix |
|---|---|---|---|---|---|
| A1 | Broad match without negatives | Pass | No broad keyword in an enabled campaign had impressions. AI Max is off on every enabled Search campaign. | n/a | None. |
| A2 | Search Partners and Display bleed | Pass | All 12 enabled ES Search campaigns have Partners and Display off. 8 paused Search campaigns have Partners on. Separately, 3 .NET MAUI Demand Gen campaigns spent $1,008.52 for 24,005 clicks and 0 conversions. | unknown | Turn Partners off on the paused campaigns before re-enabling them. Review the Demand Gen campaigns. |
| A3 | No student/free/job-seeker negatives | Warn | "Non-Buyer Intent" (on all enabled ES Search campaigns) covers free, tutorial(s), course(s), job(s), career(s), salary, internship, crack and torrent. "student" is missing from every list. "free" is negated even though there is a trial and a Community License. | unknown | Add student and students. Confirm the "free" negative is intended. |
| A4 | Geo "presence or interest" | Pass | All enabled campaigns use Presence. More than 40 paused campaigns still use Presence or interest. | n/a | Switch the paused campaigns before re-enabling them. |
| A5 | Search-term waste | Warn | Top 50 terms: $3,294.88, 1 conversion. Irrelevant: "mkdocs flowchart" ($40.52) and "vsto excel addin" ($39.81). Open-source library names ("chart js", "react table", "excel js", "xlsx js") and how-to queries ("read pdf file in c#", $109.66) recorded 0 conversions. | unknown (≥ $80.33 clearly irrelevant in the top 50) | Add mkdocs and vsto as negatives. Decide on the open-source library terms. |
| A6 | Audience Network (Microsoft Ads) | Not checked | No Microsoft Ads source was connected. | unknown | Check manually. |
| B1 | Auto-applied recommendations | Pass | All 24 recommendation subscriptions are PAUSED. No GOOGLE_ADS_RECOMMENDATIONS changes in the period. | n/a | None for Google Ads. |
| B2 | PMax cannibalizing brand | n/a | All 10 PMax campaigns are paused with $0 spend. There is no brand campaign. | n/a | Add brand exclusions before re-enabling any PMax campaign. |
| B3 | Wrong conversion goals | Fail | The primary goals are all web tags: ES Product Signup, Request demo, Contact sales/quote, Licensee key claimed and Purchase. No CRM-imported qualified stage exists. Page views are correctly secondary. The 7 conversions were 6 sign-ups and 1 demo request. | unknown | Import CRM stages as primary. Keep sign-ups secondary. |
| B4 | Offline conversion import | Fail | No offline upload summary and no UPLOAD_CLICKS conversion action. Form click-ID capture can't be seen from the API. | unknown | Set up GCLID, GBRAID and WBRAID capture and a daily import. |
| B5 | CPA vs pricing model | Warn | No tCPA or tROAS anywhere. 9 Manual CPC, 2 Maximize Clicks and 1 Maximize Conversions (no target). $5,863.18 per conversion. About $26,536.13 went to campaigns with 0 conversions. | unknown | Review zero-conversion budgets. Use conversion-based bidding once B3 and B4 are live. |
| B6 | Brand exclusion | Pass | "syncfusion" (broad) is on the account-level negative list attached to the account. No search term containing "syncfusion" served. There is no brand campaign. | n/a | Confirm that having no brand campaign is intentional. |
| C1 | Competitor trademark issues | Warn | The 4 competitor RSAs name Nutrient, Apryse/PDFtron, Aspose and IronPDF in headlines. Tone is positive. Everything is approved, with no limited or disapproved ads. No record of permission was found. | n/a | Product marketing to confirm permission. |
| C2 | Landing page mismatch | Pass | The top 60 ads map to matching product pages. Competitor ads go to the competitive-upgrade page, MAUI ads to /maui-controls/migration. No ad sends traffic to the home page. The buyer-fit audit was not run. | n/a | Run the buyer-fit audit on the top pages. |
| C3 | Disapproved or limited ads | Pass | No enabled ad is disapproved, limited or area-of-interest-only. | n/a | None. |
| C4 | Claims | Fail | Competitor RSAs say "G2 Top-Rated .NET PDF Library", "Industry-Leading .NET PDF APIs", "100% Royalty-Free PDF Solution" and "the best alternative to …". No prices. Only competitor ads were checked. | n/a | Source or remove the superlatives, match the G2 wording, then review all RSAs. |
Score
- Pass: 7 | Fail: 3 | n/a: 1 (also Warn: 4, Not checked: 1)
Proposed changes (need human approval before applying)
See "Proposed changes (need approval)" below.
Remember to add these results to the team's shared results log (location TBD).
Not checked
- A6 Audience Network (Microsoft Ads): no Microsoft Ads data source was connected. The Microsoft Ads half of B1 was not checked for the same reason.
- B4, form click-ID capture: whether forms store GCLID, GBRAID and WBRAID can't be seen from the Google Ads API. It needs a CRM or form check.
- B3, goal biddability: the
customer_conversion_goal.biddablefield was requested but not returned, so which goal categories are biddable was not confirmed. Primary status was read fromconversion_action.primary_for_goal. - C1 and C4 cover only the 4 competitor RSAs. Ad copy in the other campaigns was not pulled.
- C2, website buyer-fit audit of the landing pages was not run. It is a separate skill.
- A1: a match-type breakdown of all keywords was too large to read. The check relies on the query for broad keywords with impressions in enabled campaigns, which returned none.
- Date range: the checklist default is 90 days vs. the prior 90. This run used the 28-day range pbmaintain supplied.
- Waste estimate:
ads.wasted_spend_estis null. Account data alone can't separate wasted spend from zero-conversion developer-research spend. The two clearly irrelevant top-50 terms total $80.33. - Account choice: the run picked account 9780479270 ("syncfusion.com") as Essential Studio's. It also holds 2 enabled BoldCreate AI Search campaigns ($0 spend) and paused BoldDocServer campaigns. Those were excluded from scoring.
Proposed changes (need approval)
None of these has been applied. Each one needs approval from the paid search lead in chat.
- Conversion tracking: no offline import → capture GCLID, GBRAID and WBRAID on forms, create an offline (UPLOAD_CLICKS) conversion action and import qualified CRM stages daily. Reason: B4.
- Account conversion goals: web sign-up, demo, contact and purchase tags are primary → make the imported qualified stages primary, and keep ES Product Signup and Licensee key claimed secondary or value-weighted. Reason: B3.
- ES | UI Components | US & Canada ($7,237.92, 0 conv) and ES | Doc SDK | US & Canada ($7,093.86, 0 conv): Manual CPC at the current budgets → paid search lead to review the budgets now, then move to conversion-based bidding with targets from the Essential Studio pricing section once change 2 is live. Reason: B5.
- Competitor RSAs (ads 778806545500, 778898038286, 778806545512, 778898036591): "Industry-Leading", "the best alternative" and "G2 Top-Rated" → remove them or replace with sourced wording that matches the homepage G2 badge. Reason: C4.
- Competitor RSAs: competitor names in ad text → product marketing to confirm this is permitted. Reason: C1.
- "Non-Buyer Intent" shared list: no student negatives → add "student" and "students" (phrase). Reason: A3.
- "free" phrase negative (Non-Buyer Intent, Online/Tool Seeker): blocks "free trial" queries → paid search lead decides whether to keep it. Reason: A3.
- UI Components US & Canada and Doc SDK US & Canada: "mkdocs flowchart" and "vsto excel addin" matched → add "mkdocs" and "vsto" as negatives. Decide on open-source library terms (chart js, react table, excel js, xlsx js). Reason: A5.
- .NET MAUI Demand Gen campaigns (Emerging EU, US, UK & DE): $1,008.52, 24,005 clicks, 0 conversions → review targeting and whether to continue. Reason: A2 (observation).
- Paused campaigns: 8 paused Search campaigns have Search Partners on, and more than 40 paused campaigns use Presence or interest → fix both before re-enabling any of them. Add brand exclusions to any PMax before it is re-enabled. Reason: A2, A4, B2.
- Brand coverage: no brand campaign, and "syncfusion" is an account-level negative → paid search lead to confirm this is intentional. Reason: B6.
Data sources
- Google Ads API through the
google-adsMCP server (list_accounts,run_gaql, read-only), customer 9780479270 "syncfusion.com", currency USD, time zone America/New_York. Queried 2026-11-12. - Resources queried:
customer,campaign(includingai_max_setting),keyword_view,search_term_view,shared_set,shared_criterion,campaign_shared_set,customer_negative_criterion,conversion_action,customer_conversion_goal,offline_conversion_upload_client_summary,recommendation_subscription,change_event,ad_group_ad. - Raw exports in
raw/:campaigns.csv,search_terms_top50.csv,negatives.csv,account_and_conversions.json,ads_landing_pages.csv,ad_copy_competitor.json. Costs are in micros, as the API returns them. Dollar figures in this summary are micros ÷ 1,000,000, rounded to cents. Cost per conversion is spend ÷ conversions. - Checklist:
demand-gen/paid/ads-account-audit.md. Strategy reference:demand-gen/paid/google-ads-strategy.md. Claims reference:_reference/positioning/essential-studio.md,_reference/pricing-and-licensing.md.
Findings
| ID | Item | Status | Severity | Effort | Recommendation | Checklist |
|---|---|---|---|---|---|---|
| B3 | Wrong conversion goalsneeds approval Primary actions counted in Conversions are all website tags: ES Product Signup, Request demo, Contact sales/quote, Licensee key claimed and Purchase. No CRM-imported qualified-lead or opportunity stage exists (no UPLOAD_CLICKS conversion action). Page-view and engagement actions are correctly secondary. In the period, Conversions = 6 ES Product Signup + 1 Request demo = 7. Purchase, Contact sales and Licensee key claimed recorded 0. BoldCreate and BoldDocServer sign-up actions also live in this account (secondary). | fail | high | L | Import qualified CRM stages (qualified lead, opportunity, closed-won) and make them primary. Keep sign-ups and demo requests as secondary or value-weighted. | demand-gen/paid/ads-account-audit.md#checklist |
| B4 | Offline conversion importneeds approval offline_conversion_upload_client_summary returned no rows and there is no UPLOAD_CLICKS conversion action, so no offline import is running. Auto-tagging is on, so GCLIDs are generated. Whether forms capture GCLID, GBRAID or WBRAID can't be seen from the Ads API. | fail | high | L | Sales ops: capture GCLID, GBRAID and WBRAID on every form into the CRM, create an offline conversion action and import qualified stages daily. | demand-gen/paid/ads-account-audit.md#checklist |
| C4 | Claimsneeds approval The competitor RSAs (the only ads whose copy was pulled) contain 'G2 Top-Rated .NET PDF Library', 'Industry-Leading .NET PDF APIs', '100% Royalty-Free PDF Solution', 'Need the Best PDF Library?' and 'Syncfusion Offers the best alternative to ...'. _reference/positioning/essential-studio.md says to quote the current G2 wording from the homepage. That wording was not checked, and 'Industry-Leading' and 'the best alternative' have no source. No prices appear in these ads. | fail | medium | M | Product marketing to source or remove 'Industry-Leading' and 'best alternative', and to match the G2 wording to the current homepage badge. Review copy in every non-competitor RSA. | demand-gen/paid/ads-account-audit.md#checklist |
| B5 | CPA vs pricing modelneeds approval No campaign has a target CPA or ROAS. 9 enabled ES Search campaigns use Manual CPC, 2 use Maximize Clicks (TARGET_SPEND) and only ES | All Products | Tier3 uses Maximize Conversions, with no target. Spend was $41,042.24 for 7 conversions (about $5,863.18 per conversion). Campaigns with 0 conversions spent about $26,536.13, including UI Components US & Canada ($7,237.92) and Doc SDK US & Canada ($7,093.86). No single target is applied, but bidding is not tied to the product's pricing model either. | warn | high | M | Once qualified conversions import (B3, B4), move high-spend campaigns to conversion-based bidding with targets set from the Essential Studio section of pricing and licensing. Until then, review budgets on zero-conversion campaigns. | demand-gen/paid/ads-account-audit.md#checklist |
| A5 | Search-term wasteneeds approval Top 50 search terms by spend reviewed: $3,294.88 total (about 8% of spend), 1 conversion ('react data grid' in Tier3). Mostly relevant developer and competitor terms. Clearly irrelevant: 'mkdocs flowchart' ($40.52, UI Components US & Canada) and 'vsto excel addin' ($39.81, Doc SDK US & Canada). Open-source library names that likely attract free-library seekers: 'chart js' ($67.86 + $38.44), 'charts js' ($51.77), 'react table' ($139.61 + $73.43), 'excel js' ($57.69 + $47.76), 'xlsx js' ($38.42). How-to queries such as 'read pdf file in c#' ($109.66) and 'create excel using c#' ($56.97) also appear with no conversions. | warn | medium | S | Add 'mkdocs' and 'vsto' as negatives. Paid search lead to decide whether open-source library names (chart js, react table, excel js, xlsx js) stay, given zero conversions. | demand-gen/paid/ads-account-audit.md#checklist |
| C1 | Competitor trademark issues The 4 competitor RSAs use competitor names in headlines and descriptions: 'Alternative to Nutrient PDF', 'Apryse PDF vs Syncfusion', 'Syncfusion vs PDFtron', 'Alternative to Aspose PDF C#', 'Alternative to C# IronPDF' and others. Tone is positive. Every asset is APPROVED and no enabled ad is limited or disapproved, so there are no open trademark complaints. No record of permission to use these trademarks was found in this run. | warn | medium | S | Product marketing to confirm that using competitor names in ad text is permitted, and to soften 'the best alternative' wording. | demand-gen/paid/ads-account-audit.md#checklist |
| A3 | No student/free/job-seeker negativesneeds approval The 'Non-Buyer Intent' list (attached to all 12 enabled ES Search campaigns) has phrase negatives free, tutorial(s), course(s), job(s), career(s), salary, internship, crack and torrent. The account-level list adds job, salary (broad), tutorial and course (phrase). No negative containing 'student' exists in any list. 'free' is a phrase negative although Essential Studio has a 30-day trial and a Community License (_reference/pricing-and-licensing.md). | warn | low | S | Add 'student' and 'students' as phrase negatives to Non-Buyer Intent. Paid search lead to confirm the 'free' negative is intended (it also blocks 'free trial' queries). | demand-gen/paid/ads-account-audit.md#checklist |
| A6 | Audience Network (Microsoft Ads) No Microsoft Ads data source was connected for this run (only the google-ads MCP server). | not-checked | medium | S | Check the Audience Network setting manually in Microsoft Ads. | demand-gen/paid/ads-account-audit.md#checklist |
| B1 | Auto-applied recommendations All 24 recommendation_subscription entries (including USE_BROAD_MATCH_KEYWORD, SEARCH_PARTNERS_OPT_IN, KEYWORD, RESPONSIVE_SEARCH_AD) are PAUSED. change_event shows no changes by GOOGLE_ADS_RECOMMENDATIONS between 2026-10-15 and 2026-11-11. Microsoft Ads not checked. | pass | high | S | None for Google Ads. Check Microsoft Ads auto-apply manually. | demand-gen/paid/ads-account-audit.md#checklist |
| A1 | Broad match without negatives No BROAD keyword in an enabled campaign had impressions between 2026-10-15 and 2026-11-11 (keyword_view query returned no rows). AI Max is off on every enabled Search campaign. Most campaigns use Manual CPC or Maximize Clicks, so broad match would not be appropriate here anyway. | pass | medium | S | Keep exact and phrase match until qualified conversion data exists. | demand-gen/paid/ads-account-audit.md#checklist |
| A2 | Search Partners and Display bleedneeds approval All 12 enabled ES Search campaigns (and the 2 enabled BoldCreate Search campaigns) have target_search_network and target_content_network False. 8 paused Search campaigns have Search Partners on (for example JavaScript Components US Conversion, Blazor Telerik US & Canada, JavaScript Tier3 Conversion). The 3 enabled Demand Gen campaigns (.NET MAUI) spent $1,008.52 for 24,005 clicks and 0 conversions; they are not Search campaigns, so they are noted but not scored here. | pass | medium | S | Turn Search Partners off on the paused campaigns before re-enabling them. Review whether the .NET MAUI Demand Gen campaigns produce qualified pipeline. | demand-gen/paid/ads-account-audit.md#checklist |
| A4 | Geo presence or interestneeds approval All enabled campaigns use PRESENCE. More than 40 paused campaigns (Search, Display and PMax) still use PRESENCE_OR_INTEREST, for example Angular DataGrid US Conversion, React Charts US Conversion, ES | Display Retargeting | US and three PMax campaigns. | pass | medium | S | Switch paused campaigns to Presence before re-enabling them. | demand-gen/paid/ads-account-audit.md#checklist |
| B6 | Brand exclusion 'syncfusion' (broad) is in the account-level negative list, which is attached to the account (customer_negative_criterion NEGATIVE_KEYWORD_LIST). No search term containing 'syncfusion' served in the period. There is no brand campaign, so brand queries are not bought at all. | pass | medium | S | No exclusion change needed. Paid search lead to confirm that running no brand campaign is intentional (the strategy says to fund brand fully). | demand-gen/paid/ads-account-audit.md#checklist |
| C2 | Landing page mismatch The top 60 enabled ads by spend all point to the matching product page (for example JS PDF Viewer to /pdf-viewer-sdk/javascript-pdf-viewer and React Charts to /react-components/react-charts). Competitor ads go to /pages/pdf-library-competitive-upgrade/ and .NET MAUI Demand Gen goes to /maui-controls/migration. One Tier3 ad group sends traffic to https://react-data-table.syncfusion.com/. No ad sends traffic to the home page. The website buyer-fit audit was not run in this run. | pass | medium | M | Run the website buyer-fit audit on the top landing pages. | demand-gen/paid/ads-account-audit.md#checklist |
| C3 | Disapproved or limited ads No enabled ad in an enabled ad group and campaign has approval status DISAPPROVED, APPROVED_LIMITED or AREA_OF_INTEREST_ONLY. | pass | medium | S | None. | demand-gen/paid/ads-account-audit.md#checklist |
| B2 | PMax cannibalizing brand All 10 Performance Max campaigns are PAUSED and spent $0 in both periods. There is no brand campaign in this account, so brand impression share can't be tracked. | n-a | medium | S | Before re-enabling any PMax campaign, add brand exclusions. The account-level 'syncfusion' negative does not reliably cover PMax. | demand-gen/paid/ads-account-audit.md#checklist |
Metrics
| Metric | Value | Previous | Change | Period | Dimensions |
|---|---|---|---|---|---|
| Ad spend ads.spend | 41,042 | 56,218 | -27.0% | 2026-10-15 – 2026-11-11 | platform: google-ads, account: 9780479270, currency: USD |
| Estimated monthly waste ads.wasted_spend_est | – | – | – | 2026-10-15 – 2026-11-11 | platform: google-ads, account: 9780479270, currency: USD |
| Audit items passed ads.audit_pass_rate | 50.0% | – | – | 2026-10-15 – 2026-11-11 | platform: google-ads, account: 9780479270, basis: 7 pass of 14 scored items (n/a and not-checked excluded; warn counts as not passed) |
| Ad clicks ads.clicks | 31,101 | 9,901 | +214.1% | 2026-10-15 – 2026-11-11 | platform: google-ads, account: 9780479270, note: includes 24,005 Demand Gen clicks |
| Conversions ads.conversions | 7 | 27 | -74.1% | 2026-10-15 – 2026-11-11 | platform: google-ads, account: 9780479270 |
| Cost per conversion ads.cpa | 5,863 | 2,082 | +181.6% | 2026-10-15 – 2026-11-11 | platform: google-ads, account: 9780479270, currency: USD |
Folder: reports/publish/essential-studio/google-ads-audit/20261112-1547_google-ads-audit_essential-studio_e7e5