Hellyeah

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" \
  --brand-colors '["#ff4d2e","#111827"]'

Check completeness:

hellyeah profile get

All eight text fields are required before you can launch. Brand colors and logos are optional for current creative generation; include them when available and omit them when they are not. Platform-specific launch flows can still require additional assets. 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 submitted launch debits its budget from the wallet.

hellyeah wallet topup --amount 70

This opens Stripe Checkout in your browser for the amount you passed. You approve the charge and enter card details. The CLI polls until the payment is confirmed.

Verify:

hellyeah wallet balance

This 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 --reference mercury --size all

--size all generates the full display kit (landscape + square) in one call. Both commands lock to your profile, so saved brand colors, logos, and business context come from the saved profile and cannot be overridden via flags. Brand colors and logos are optional for current creative generation; generation still works when they are not set. Launch integrations can still enforce platform-specific asset requirements.

Poll image jobs with:

hellyeah creative status --job-id <jobId> --watch

4. 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

CLI launch uses a lifetime total budget, and --end-date is always required so the API has a delivery window for pacing. --budget-type is optional; if you include it, the only accepted value is total. Dates accept either YYYY-MM-DD or a full ISO 8601 timestamp with Z.

--yes is mandatory. The agent will ask you to confirm before money moves. When you submit, Hellyeah debits the full campaign budget and places the funded request in internal review.

Submission is durable and idempotent: the API snapshots your creatives, records the wallet transaction, completes the debit, and then returns a campaign id in pending_internal_review. It does not assign an ad account or create anything in Google Ads until the request is approved.

The CLI safely retries one dropped response with the same launch key. If it still cannot tell whether submission completed, follow the returned retry command: it includes --idempotency-key so a new CLI process resumes the same campaign and debit. Omit that flag when you intentionally want a separate campaign.

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>

# After approval, pause or resume delivery; cancel at any stage
hellyeah campaign pause <campaign-id>
hellyeah campaign resume <campaign-id>
hellyeah campaign cancel <campaign-id> --yes

Withdrawing a request before a Google Ads campaign exists refunds the full debited budget immediately. After a campaign reaches Google Ads, cancellation waits through the 48-hour platform settlement window and then refunds the unspent amount 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 reference-led full display kit (`hellyeah creative generate image --reference <id> --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 --amount <usd>`.
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.

On this page