Launch your first ad
End-to-end walkthrough.
Five steps from zero to a live Google Ads campaign. In practice your coding agent runs all of this for you. What follows is what it does, command by command, and where it pauses for your approval.
1. Set your profile
The profile is your business identity. Every creative anchors to it.
hellyeah profile update \
--business-name "Acme" \
--website-url "https://acme.com" \
--industry "e-commerce" \
--description "Acme sells premium widgets to small businesses" \
--target-audience "Small business owners in the US" \
--tone "professional, approachable" \
--value-proposition "High-quality widgets at wholesale prices" \
--main-goal "Drive online sales"Check completeness:
hellyeah profile getAll eight fields are required before you can launch. The agent usually researches your website to fill these in, then asks you to approve the draft.
2. Fund your wallet
Hellyeah is prepaid. Every launch reserves budget against a wallet balance.
hellyeah wallet topupThis opens Stripe Checkout in your browser. You approve the amount and enter card details. The CLI polls until the payment is confirmed.
Verify:
hellyeah wallet balanceThis is the first of two moments where money moves and the human is in the loop.
3. Generate creatives
# Ad copy (synchronous, returns variants in one round trip)
hellyeah creative generate text --hook curiosity_gap --tone playful
# Image (asynchronous, returns a jobId to poll)
hellyeah creative generate image --hook before_after --size all--size all generates the full display kit (landscape + square) in one call. Both commands lock to your profile, so brand colors, logos, and business context come from the saved profile and cannot be overridden via flags.
Poll image jobs with:
hellyeah creative status --job-id <jobId> --watch4. Launch the campaign
hellyeah campaign launch \
--name "Q2 Launch" \
--text-id <text-job-id> \
--image-id <landscape-job-id> \
--image-id <square-job-id> \
--budget 500 \
--budget-type total \
--end-date "2026-08-31T00:00:00Z" \
--keyword "premium widgets" \
--location "United States" \
--yes--end-date is required for total budgets. It's the window the API spreads spend across. Use --budget-type daily instead if you'd rather cap spend per day.
--yes is mandatory. The agent will ask you to confirm before money moves. This is the second and final human-in-the-loop moment.
The launch is atomic: the API snapshots your creatives, reserves the budget, creates the Google Ads campaign, and returns a campaign id.
Google Ads is the supported launch platform today. The campaign uses your approved plan: budget, audience, locations, selected creatives, and any X-Ray conversion signals you've connected through Tracking.
5. Watch it run
# Status + cached performance metrics (spend, clicks, conversions)
hellyeah campaign status <campaign-id>
# Pause, resume, cancel as needed
hellyeah campaign pause <campaign-id>
hellyeah campaign resume <campaign-id>
hellyeah campaign cancel <campaign-id> --yesCancellation schedules a refund of unspent budget 48 hours later. That's the settlement window during which Google Ads may still post delayed spend. After that window, unspent cents are credited back to your wallet automatically.
Vibe mode vs Workflow mode. In vibe mode the agent runs through all five steps autonomously, pausing only at funding and launch approval. In workflow mode it stops between each step for your confirmation.
Prompt for your agent
Drop this into your agent to drive the full five-step flow end-to-end:
Launch a Google Ads campaign for the business at <YOUR_URL>.
Budget: $<AMOUNT> total. Audience: <ONE_LINE>. Primary goal: <SIGNUPS | PURCHASES | LEADS>.
Steps:
1. Research the site and propose a profile via `hellyeah profile update`. Show me the draft and wait for approval.
2. Run `hellyeah profile get` and confirm all eight fields are populated.
3. Generate ad copy (`hellyeah creative generate text`) and a full display kit (`hellyeah creative generate image --size all`). Poll image jobs with `hellyeah creative status --watch`.
4. Show me the wallet balance. If insufficient, pause and ask before running `hellyeah wallet topup`.
5. Draft the final `hellyeah campaign launch` command with `--yes` omitted. Show it to me. Only run it after I reply "go".
Use `hellyeah campaign status <id>` after launch to track spend and performance.