Custom domains
By default, VibeAds funnels serve at your-subdomain.localad.app. That works, but a branded domain converts better and boosts Google Ads Quality Score (landing page experience).
Why use a custom domain
- Higher click-through rate (your domain in the ad URL display)
- Higher Quality Score (landing page experience component)
- Stronger brand consistency
- Lower bounce rate (visitors trust your domain)
- Better SEO if you ever decide to rank the page organically
Setup
From /app/domains:
- Click "Connect domain"
- Enter the hostname (e.g.
quote.acmeplumbing.com) - Pick which campaign(s) it should route
- VibeAds gives you DNS records to add at your registrar (CNAME pointing to
edge.localad.app) - Once DNS propagates (5 min to a few hours), VibeAds detects the change and provisions SSL automatically
- Status flips from "Pending DNS" to "Connected"
Auto-polls every 10 seconds for pending domains. Most domains connect in under 30 minutes.
SSL
Cloudflare provisions SSL certs automatically using ACME + Let's Encrypt. You do not handle certs. Cert renewal is also automatic.
If your domain has a CAA record restricting which CAs can issue certs, add Let's Encrypt to the allowed list. Otherwise SSL provisioning will fail and you will see a "SSL pending" status that does not resolve.
Multi-campaign routing
One domain can route multiple campaigns. The funnel for a given campaign is selected by URL path:
acmeplumbing.com/drain-cleaning→ drain cleaning campaign funnelacmeplumbing.com/water-heater→ water heater campaign funnelacmeplumbing.com/emergency→ emergency hybrid landing page
The custom_domain_campaigns junction table maps path patterns to campaigns. Cache TTL: 5 minutes (negative caching for invalid domains).
Robots.txt and crawling
VibeAds serves three robots.txt variants:
- Subdomain: the
.localad.appsubdomain blocks all crawling (these are paid traffic only). - Bare domain: blocks crawling but allows AdsBot-Google (Google ad crawler).
- Custom domain: default to allowing search indexing, configurable per campaign in the Tracking tab.