Session OverviewnnThis was a multi-part session spanning two context windows (April 5-6, 2026) focused on getting Sam's Google Ads account ready to launch 5 campaigns at $500/day total. The session covered: full account audit via Adspirer MCP tools, live landing page audits via Chrome, building a dedicated landing page for paid traffic, creating all 5 Google Ads Editor CSV import files, building a 3,908-term negative keyword list, and getting Sam's approval on the LP design with specific feedback applied.nnGoogle Ads account: 381-391-6687 under MCC 867-659-9345.nn5 campaigns planned:n- Brand Protection: $20/dayn- Louisville Car Accidents: $275/day (2 ad groups)n- Louisville Truck Accidents: $75/dayn- Spanish (Accidentes): $50/dayn- Louisville DMA Auto: $80/day (5 ad groups: motorcycle, pedestrian/bicycle, rideshare, delivery vehicle, hit-and-run)nn## What Was Accomplishednn### 1. Live Account Data Pull (Adspirer MCP)nnAll 18 existing campaigns are PAUSED. Zero active campaigns, zero live search term data.nnCached performance data (54 days):n- Total spend: $23,477 | 70 conversions | $335 CPAn- Brand campaign: 20.95% CTR, $1.33 CPC, 28 conversions, 14.11x ROAS (excellent)n- EXACT match: $449 spent, 17 conversions, 5.50% conv rate (clear winner)n- PHRASE match: $14,237 spent, 6 conversions (terrible)n- BROAD match: $4,279 spent, 0 conversions ("pgmei" and "das Mei" garbage keywords burned the budget)nnConversion tracking audit: Grade C. 32 conversion actions exist. Need to demote all to observation except Signed Case. Signed Case Non-Brand counting mode is wrong (MANY_PER_CLICK, should be ONE_PER_CLICK). "Calls from Smart Campaign Ads" action needs removal.nn### 2. Landing Page Audit (Chrome, actual page reads)nnAudited all 4 candidate practice area pages via Chrome browser tools (WebFetch blocked by CloudFlare, 403):nnCar Accident Page (/practice-areas/car-accidents/): Title "Kentucky Car Accident Cases" is a message mismatch for Louisville-targeted ads. 3,000+ words of SEO content, too long for paid clicks. 30+ internal links mean paid click leakage. No forms visible. Verdict: great SEO page, not suitable for paid traffic.nnTruck Accident Page (/practice-areas/truck-accident/): 5,000+ words of comprehensive FMCSR/HOS content. Uses (502) 427-1068, not the brand number (502) 888-8888. Even more of an SEO page.nnSpanish Page (/espanol/): Shorter, closer to LP format but has design inconsistency (mixed CSS prefixes). Uses "Consulta Gratis" ("free consultation" is banned in English copy). Closest to usable but still needs work.nnDecision: All practice area pages are SEO pages. Dedicated landing pages must be built for paid traffic. This was a critical finding. The previous session had recommended sending traffic to practice area pages without actually looking at them, and Sam correctly called that out as lazy.nn### 3. Louisville Car Accident Landing Page (Built and Approved)nnFile: /Projects/Adspire/Paid Ads/landing-pages/lp-louisville-car-accident-v1.htmlnnStandalone HTML landing page, brand-compliant, conversion-first design:n- Zero exit links (no navigation, no internal links, no footer links)n- Phone CTA + form (dual conversion paths)n- Mobile sticky CTA bar (appears on screens under 768px)n- Navy (#0B212D) / Orange (#F89C22) / White color scheme, Poppins fontn- noindex/nofollow meta tag (paid traffic only, not for organic indexing)n- CallRail DNI placeholder comment included for WordPress deploymentn- Hero: "Louisville Car Accident Lawyer" with orange accent on "Car Accident"n- Badge: "Forbes Best-In-State Top Lawyer" ("2025" removed per Sam's request)n- Trust bar: Forbes Best-In-State | 1,000+ Five-Star Reviews | $0 Out-Of-Pocket Forever | Bigger Share Guarantee(R)n- Value props: BSG, $0 Out-Of-Pocket, 3-Person Dedicated Team, Under 7 Month Avg Settlementn- Insurance callout section (dark navy card)n- 3 review cards with Google "G" SVG logo, centered stars, author names in "- Amanda L." formatn- Form section (dark navy card): name, phone, email, description fieldsn- Bottom CTA with phone numbern- Trust footer with checkmarksnnSam's feedback applied:n1. Added Google logo SVG to each review card's star rown2. Centered the stars with flexbox, Google logo inlinen3. Changed author format from "Amanda L. - Google Review" to "- Amanda L." (centered)n4. Removed "2025" from Forbes badge and trust bar (now just "Forbes Best-In-State")n5. Sam approved the design: "LP looks good"nn### 4. Google Ads Editor CSVs (All 5 Campaigns, QA Verified)nnAll files in /Projects/Adspire/Paid Ads/google-ads-editor-csvs/:nnSAIL-Brand-Protection-2026.csv: 1 ad group (Brand Terms), 15 headlines, 4 descriptions. H1 PIN 1: "Sam Aguiar Injury Lawyers", H7 PIN 3: "Call (502) 888-8888". "Louisville and Lexington KY" headline removed (geo-redundant since campaigns are geotargeted).nnSAIL-Louisville-Car-Accidents-2026.csv: 2 ad groups (Car Accident Lawyer Louisville + Personal Injury Louisville). Final URL: /lp/louisville-car-accident/. H1 PIN 1 varies by ad group, H7 PIN 3: phone.nnSAIL-Louisville-Truck-Accidents-2026.csv: 1 ad group (Truck Accident Louisville). Final URL: /lp/truck-accident/. Includes TTLA, DOT camera, FMCSA messaging.nnSAIL-Accidentes-Spanish-2026.csv: 1 ad group (Abogado Accidente). Final URL: /lp/accidente-de-auto/. Spanish-native copy, BSG kept in English. "Louisville y Lexington KY" headline removed (geo-redundant).nnSAIL-Louisville-DMA-Auto-2026.csv: 5 ad groups (Motorcycle, Pedestrian/Bicycle, Rideshare, Delivery Vehicle, Hit-and-Run). "Louisville, Kentucky" headline removed from all 5 ad groups (geo-redundant).nnCSV format: UTF-8 BOM encoding, QUOTE_ALL for commas in values like "1,000+".nnQA results: 150 headlines verified (all 30 chars or under), 40 descriptions verified (all 90 chars or under), zero banned words, zero em dashes. One fix applied during QA: Pedestrian D3 description was 91 chars, shortened from "Hit by a car while walking or cycling? You focus on recovery. We handle the rest. Call now." to "Hit by a car while walking or cycling? You focus on recovery. We handle it." (75 chars).nn### 5. Shared Negative Keyword ListnnFile: /Projects/Adspire/Paid Ads/negative-keywords-shared-list-2026-04-05.csv (also .txt version)nn3,908 unique negatives merged from:n- Truck campaign export: 4,131 keywords extractedn- Master negative list: 1,539 keywordsn- New additions: practice area exclusions (med mal, workers comp, etc.), 30+ competitor names, geographic exclusions (Indiana, major out-of-state cities), job/career terms, informational queriesnnFormat: keyword + match type (Phrase for multi-word, Exact for single-word). Google Ads Editor compatible.nn### 6. Updated Launch DocumentnnFile: /Projects/Adspire/LAUNCH-READINESS-AND-CAMPAIGN-ARCHITECTURE-2026-04-05.mdnnComprehensive launch document with all 5 campaign architectures, RSA copy, budget allocations, bidding rationale, negative keyword strategy, phased launch sequence, and extensions. LP section completely rewritten from "use existing practice area pages" to "dedicated LPs required" with audit findings. All campaign LP URLs updated to /lp/ paths.nn## What Was Tried and Didn't WorknnWebFetch blocked by CloudFlare: The site returns 403 to WebFetch tool. Workaround: used Chrome MCP tools (navigate + get_page_text) to read all page content. This worked reliably.nnUploaded files not on disk: Three files appeared as uploads (Connections & Account Switcher Widget, Connected Account Information, optimize_google_campaign_messages.json) but weren't found at /mnt/uploads/. These were Adspirer MCP interface context, not actual file uploads.nnAdspirer search term data: Cannot pull search term reports because all 18 campaigns are paused. Search term data only exists while campaigns are actively serving.nn## Decisions Made and Reasoningnn1. Dedicated LPs over practice area pages: Practice area pages are SEO assets with 3,000-5,000 words, 30+ internal links, and no conversion focus. Paid traffic needs zero-exit-link, message-matched pages with phone + form. This is the single most important decision of the session.nn2. Manual CPC at launch, no Smart Bidding: Google's automated bidding needs conversion data to optimize. With zero active campaigns and no GCLID pipeline, Smart Bidding would waste budget. Manual CPC lets us control bids by keyword while building the conversion dataset.nn3. EXACT match is the winner: Historical data shows 5.50% conversion rate on exact match vs. near-zero on broad. Launch should heavily favor exact + phrase. No broad match keywords.nn4. No competitor name bidding: Sam's explicit instruction. Not bidding on any competitor firm names.nn5. No Indiana targeting: Sam's explicit instruction. Louisville DMA only, Kentucky side.nn6. Geo-redundant headlines removed from all CSVs: Sam pointed out that since campaigns are geotargeted to Louisville DMA, headlines like "Louisville and Lexington KY" waste character space. Removed from Brand, Spanish, and all 5 DMA Auto ad groups.nn7. "2025" removed from Forbes reference: Sam wants just "Forbes Best-In-State" without the year on landing pages.nn8. Word "experts" permanently banned: Sam caught this in an early draft. Added to the banned words list for all ad copy and LP content.nn9. Only "wheels" cases: Sam is aggressive on negative keywords. The firm only wants motor vehicle crash cases. Everything else (med mal, workers comp, slip and fall, dog bite, etc.) gets negative-keyworded.nn## Files and LocationsnnAll files in /Projects/Adspire/:nn| File | What It Is | State |n|---|---|---|n| LAUNCH-READINESS-AND-CAMPAIGN-ARCHITECTURE-2026-04-05.md | Master launch document with all campaign specs | Final, updated with LP audit findings |n| Paid Ads/landing-pages/lp-louisville-car-accident-v1.html | Dedicated LP for car accident paid traffic | Final, Sam approved |n| Paid Ads/google-ads-editor-csvs/SAIL-Brand-Protection-2026.csv | Brand campaign RSA + keywords | Final, QA verified |n| Paid Ads/google-ads-editor-csvs/SAIL-Louisville-Car-Accidents-2026.csv | Car accident campaign (2 ad groups) | Final, QA verified |n| Paid Ads/google-ads-editor-csvs/SAIL-Louisville-Truck-Accidents-2026.csv | Truck campaign RSA + keywords | Final, QA verified |n| Paid Ads/google-ads-editor-csvs/SAIL-Accidentes-Spanish-2026.csv | Spanish campaign RSA + keywords | Final, QA verified |n| Paid Ads/google-ads-editor-csvs/SAIL-Louisville-DMA-Auto-2026.csv | DMA Auto (5 ad groups) | Final, QA verified |n| Paid Ads/negative-keywords-shared-list-2026-04-05.csv | 3,908 shared negatives | Final |n| Paid Ads/negative-keywords-shared-list-2026-04-05.txt | Same list, text format | Final |nn## Current State of Everythingnn**DONE:n- Account audit and historical performance analysisn- Landing page audit of all 4 practice area pagesn- Louisville Car Accident dedicated LP: built, Sam-approved, ready for WordPress deploymentn- All 5 Google Ads Editor CSVs: built, QA verified, ready for importn- 3,908-term negative keyword list: merged, deduplicated, formattedn- Launch architecture document: complete and currentnnNOT STARTED:n- Truck Accident dedicated LP (/lp/truck-accident/): needs to be built using car accident LP as template, adapted with TTLA/DOT camera/FMCSA messagingn- Spanish Accident LP (/lp/accidente-de-auto/): same structure, full Spanish translationn- DMA Auto LPs: decision needed on whether one shared LP or separate per sub-type (motorcycle, pedestrian, rideshare, delivery, hit-and-run)n- WordPress deployment of any LPn- CSV import into Google Ads (via Editor or Adspirer)n- Negative keyword list application at account leveln- Conversion tracking fixesn- GCLID pipeline (CallRail to Litify to Google Ads offline upload)nnNEEDS SAM'S INPUT:**n- Phone number confirmation: the truck and Spanish practice area pages use (502) 427-1068, while the brand number is (502) 888-8888. Which are CallRail tracking numbers? Which should go on the paid LPs?n- DMA Auto LP strategy: one shared LP for all 5 sub-types, or separate LPs per sub-type?nn## Open Questions and Unresolved Issuesnn1. Phone numbers: (502) 427-1068 appears on existing truck/Spanish pages. (502) 888-8888 is the brand number used in ad copy. Sam needs to confirm which are CallRail tracking numbers and which should be on the paid LPs. CallRail DNI may make this moot (dynamic number insertion replaces the displayed number), but the base number still matters.nn2. DMA Auto LP strategy: The DMA Auto campaign has 5 ad groups (motorcycle, pedestrian/bicycle, rideshare, delivery vehicle, hit-and-run). Options: (a) one shared LP like "/lp/louisville-auto-accident/" that covers all sub-types, or (b) separate LPs per sub-type for better message match. Separate LPs would mean 5 more pages to build and maintain.nn3. GCLID pipeline not flowing: CallRail captures GCLIDs from paid clicks, but there's no automation sending them to Litify or back to Google Ads for offline conversion tracking. This is critical for eventually moving to Smart Bidding. Needs: CallRail API integration, Litify matching logic, Google Ads offline upload.nn4. Conversion tracking cleanup: 32 conversion actions exist in the account. Most need to be demoted to observation-only. Signed Case should be the only primary conversion. Signed Case Non-Brand counting mode is MANY_PER_CLICK (wrong, should be ONE_PER_CLICK). "Calls from Smart Campaign Ads" action should be removed entirely.nn5. Forbes "2025" in ad copy: Sam removed "2025" from the LP. The Google Ads Editor CSVs still reference "Forbes 2025 Best-In-State" in some headlines and descriptions. Sam may want these updated to just "Forbes Best-In-State" for consistency, or may want the year kept in ad copy for credibility. Needs confirmation.nn## Pickup Prompt for Next Sessionnn\nI'm continuing Google Ads campaign launch work for Sam Aguiar Injury Lawyers. This is a multi-session project. Full session notes are in Notion: <https://www.notion.so/33a1018df1f5816a8213d7b292f133d3\n\nRead> the Notion page first for complete context, then read these key files in /Projects/Adspire/:\n\n1. Launch doc: LAUNCH-READINESS-AND-CAMPAIGN-ARCHITECTURE-2026-04-05.md (master reference for all 5 campaigns)\n2. Approved LP template: Paid Ads/landing-pages/lp-louisville-car-accident-v1.html (Sam approved this design)\n3. Google Ads Editor CSVs: Paid Ads/google-ads-editor-csvs/ (5 files, all QA verified)\n4. Negative keywords: Paid Ads/negative-keywords-shared-list-2026-04-05.csv (3,908 terms)\n\nWhat's been done:\n- Full account audit via Adspirer (account 381-391-6687 under MCC 867-659-9345)\n- All practice area pages audited and rejected for paid traffic (too many links, too much content, no forms)\n- Louisville Car Accident LP built and approved by Sam (zero exit links, phone + form, mobile sticky CTA, noindex)\n- All 5 Google Ads Editor CSVs built and QA verified (150 headlines, 40 descriptions, all within char limits)\n- 3,908 negative keywords merged and formatted\n- Launch architecture document complete\n\nWhat's next (priority order):\n1. Build Truck Accident LP (/lp/truck-accident/) using approved car accident LP as template. Key differentiators: TTLA top 10, DOT camera footage access, FMCSA violations, \"we take on trucking giants.\" Use the truck CSV for messaging alignment.\n2. Build Spanish LP (/lp/accidente-de-auto/) using same template structure, full Spanish translation. BSG stays in English.\n3. Ask Sam about DMA Auto LP strategy: one shared LP or separate per sub-type (motorcycle, pedestrian, rideshare, delivery, hit-and-run)?\n4. Ask Sam to confirm phone numbers: (502) 427-1068 vs (502) 888-8888 for paid LPs.\n5. Deploy all LPs to WordPress at /lp/ URLs with CallRail DNI.\n6. Import CSVs into Google Ads via Editor or Adspirer tools.\n7. Apply negative keyword list at account level.\n8. Fix conversion tracking (demote all to observation except Signed Case, fix counting modes).\n\nDecisions already made (do not revisit):\n- Dedicated LPs, not practice area pages, for paid traffic\n- Manual CPC at launch (no Smart Bidding without GCLID data)\n- EXACT match is the winner (5.50% conv rate vs near-zero on broad)\n- No competitor name bidding\n- No Indiana targeting\n- No broad match keywords\n- Geo-redundant headlines already removed from all CSVs\n- \"2025\" removed from LP Forbes references\n- Word \"experts\" is banned\n\nBrand rules: No em dashes. Banned words: justice, fair, compassion/compassionate, advocate, expert/experts, specialize, help you, guide you, fight for you, promise, navigate, reasonable, free consultation, assist, knowledgeable. No fee percentages. \"Car accident\" not \"car crash.\" Bigger Share Guarantee(R) always with (R). $0 Out-Of-Pocket Forever always hyphenated. Phone: Louisville (502) 888-8888, Lexington (859) 888-8000. Orange (#F89C22) never as background. No green for dollar amounts.\n\nSite is blocked to WebFetch (CloudFlare 403). Use Chrome MCP tools to read pages.\n\nLoad credentials: set -a; source .credentials/vault.env; set +a\nLoad skills: ad-deploy, google-ads-optimizer\n