AI campaign strategy

VibeAds combines deterministic knowledge bases with AI generation. The deterministic layer handles what we know about each service category. The AI layer handles the creative synthesis. Both run in 30 to 90 seconds.

Inputs

Three things drive the strategy:

  • Service category. Plumber, HVAC, dentist, etc. Drives the knowledge base lookup.
  • Locations. Cities, states, counties, zip codes, or AI demographics (Max).
  • Daily budget. Caps the number of ad groups and informs bid suggestions.

Optional inputs (business website, business profile, competitor list, custom ad groups) refine the output but are not required.

The knowledge base

For each of 30+ categories, VibeAds stores:

  • Typical services (used for structured snippet padding)
  • Average CPC and CPC range
  • Estimated lead value (plumber $350, HVAC $500, roofer $800, etc.)
  • Audience segments (Affinity, In-Market, Detailed Demographic)
  • Per-ad-group keyword seeds (556 ad groups × 6 to 8 seeds)
  • Seasonal demand factors per month
  • Default ad schedule (24/7 for emergency, business hours for others)
  • Emergency hybrid landing page mapping (for high-intent ad groups)

Keyword research

Real Google Ads KeywordPlanIdeaService data drives per-ad-group keyword selection. The research runs at strategy generation time, geo-scoped to your target locations.

A bigram + category-anchor relevance filter keeps seeds and adds top-N by volume-weighted score. Results are cached fleet-wide for 90 days keyed on (sorted seeds × sorted geos × language) so common combos (plumber × Chicago) hit cache after the first campaign in that geo.

Per-ad-group max CPC bids are derived from the average midpoint of the top-3 highest-volume researched keywords × 1.2 buffer, clamped between $1 and $100.

Ad group structure

Ad groups are intent-based, not service-based. A plumber campaign might have:

  • Emergency Plumber (intentPriority 1, emergency hybrid landing page, 24/7 schedule)
  • Drain Cleaning (intentPriority 2, standard funnel)
  • Water Heater (intentPriority 2)
  • Plumber Near Me (intentPriority 3)

Plus a Brand ad group (auto-added on paid tiers) with EXACT match brand keywords, misspellings via Gemini, and PHRASE fragments. CPC at 50% of category average. Brand ad groups do not count toward the tier's ad group limit.

Competitor ad groups can be added optionally. They use a trademark-safe template with 3 angles (comparison, value, trust) and a clean URL.

Ad copy generation

Phase 2 generates 30 RSA headline candidates per ad group via Gemini, seeded with keywords + category + business name + service area. Phase 2.5 has Claude Opus score pairs and select the best 12 to 14 with a pinned headline. Phase 44 swaps underperforming headlines in-flight as campaigns mature.

Headlines are keyword-relevant by construction: the AI prompt enforces "the pinned headline = service theme + CTA" and the validator rejects candidates that drift off-topic.

Extensions

For every campaign:

  • 6 sitelinks (mix of intent sub-paths and pricing)
  • 6 to 8 callouts (free quotes, same-day, licensed, insured, etc.)
  • 2 structured snippet sets (Services, Service Types)
  • 1 call extension (when business_phone is set)

If your Google Ads account has existing account-level sitelinks and callouts, they auto-populate as a toggle option. Pick "AI Generated" or "Your Assets." User assets are preserved across publishes (marked with intent_slug = "user-asset").

Audience segments

Per-category audience segments apply at the ad-group level in observation mode (no targeting bid modifier; data only). Three types:

  • Affinity: long-term interests.
  • In-Market: active shoppers.
  • Detailed Demographic: household income, education, etc.

Policy compliance

Multi-layer defense against Google Ads policy violations:

  • AI prompt rules forbid phone numbers in ad copy, health scares, shock tactics, misleading claims.
  • Push sanitization strips phone numbers from headlines and descriptions before mutation.
  • Structured snippet validation enforces minimum 3 values and auto-pads from the knowledge base.
  • "Near me" keywords are stripped per editorial policy.
  • Policy auto-exemption retry handles exemptible policies (LOCAL_SERVICES, HEALTH_IN_PERSONALIZED_ADS).
  • Advanced Verification warnings on restricted categories (locksmith, garage door).