Marketing
Marketing is a prebuilt app for paid search. Its Marketing lead reads your Google Ads account every morning, says what was spent and what it bought, and proposes every change as a card you approve. Nothing that spends money changes without a person.
# workspace.yaml
plugins: [marketing]
The plugin adds the Marketing lead, its team, the daily update mission, its automations and two skills. The app opens at /dashboard/marketing.
Setting it up for a client on Vocion Cloud, from their own ad account to the first daily update? Follow Marketing for a Cloud client.
Connect Google Ads
On the Connectors page, log in with Google and allow Google Ads. Then set the source's Customer ID (the ten digits at the top of Google Ads), and the Manager account ID only if your login reaches the account through a manager account.
No developer token. Google retired Ads API developer tokens in September 2026. Access now follows the Google Cloud project that owns the login's OAuth client: it needs Explorer access (approved automatically in most cases) or Basic or Standard, applied for in Cloud Console under Google Ads API Overview. A project still on Test access is refused on a real account, and the message names that page.
A pasted credential (OAuth client ID, secret and refresh token) works too.
The pages
- Campaigns: spend, clicks, CTR, cost per click, conversions and cost per conversion over 7 and 30 days, sortable by any column.
- A campaign: spend by day, its keywords, and its ads with Google's review status.
- Search terms: what people searched before they clicked. Exclude adds a negative and Add keyword adds it as a keyword; your tap is the approval.
Every read is live from Google Ads; nothing is stored.
What the agent reads
| Tool | What it answers |
|---|---|
ads_campaigns, ads_performance | Campaigns and ad groups with status and budget; impressions, clicks, spend and conversions over a range |
ads_report | Named reports with typed dates: campaigns, campaign_daily, keywords, search_terms (with whether each is already a keyword or a negative), ads (approval and policy topics), conversions, budget_pacing |
The agent picks a report by name. It never writes its own Google Ads query.
Every change waits for you
| Change | Undo |
|---|---|
google_ads.set_budget | the old budget back |
google_ads.add_negatives | removes exactly the negatives added |
google_ads.add_keywords | removes exactly the keywords added |
google_ads.set_keyword_status | the keyword's old status |
google_ads.edit_ad_text | the old headlines and descriptions |
google_ads.create_search_campaign | removes the campaign |
ads.set_status (campaign or ad group) | the old status |
Whoever proposes a change, it waits in Review. On approval Google checks the whole change first, it is applied in one batch, the result is read back, and what Undo needs is recorded. A new search campaign can carry its own conversion goal, so an account whose default goals count another product's leads does not judge it by them.
The daily update
Every weekday at 6
on the workspace's clock, the Marketing lead checks the Daily marketing update mission and publishes a briefing:- what was spent yesterday and this week against budget, and what it bought
- search terms that spent with no conversion, proposed as negatives
- ads Google disapproved or limited, with the fix
- the proposals waiting on you
- one recommendation, as a card
The mission's deliver: {email: true} mails the briefing to the workspace's accountable person when the check finishes. A failed check sends a short note instead of an older update. On Saturday at 9am a shorter summary covers the week.
Between mornings, a guard runs every four hours without a model. It raises ads.ad_limited, ads.pacing_off and ads.first_conversion, each once, and an automation on those events has the lead explain what happened in three lines and propose the fix. See Missions, workflows and automations.
The skills
- Search terms review: waste becomes negatives on its campaign, and winners become exact keywords. Every proposal carries its clicks, spend and conversions.
- Launch a search campaign: a landing page becomes one campaign proposal: keywords, negatives, an ad whose every claim is on the page, tracking, and the conversion the page is for.