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 demographic research (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 (587 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
Ad copy goes through several steps before it is final. For each ad group, AI writes about 30 headline candidates and the descriptions, seeded with the ad group's keywords, the category, the business name and the service area. If that model fails for an ad group, a second model writes it instead. VibeAds then picks the final headlines with its own checks: each must fit Google's width once keyword and location insertion render, the set must give different reasons to click instead of repeating one, enough of them must use the ad group's keywords word for word, and any line that states a fact your business details don't back is dropped. Once campaigns run, the weakest headlines are swapped out one at a time.
The pinned first headline is the ad group's service plus a call to action, so every ad leads with what was searched for.
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).