Building a campaign
Ask for one in a chat, for example “Draft a Google Ads Search campaign for our pricing page, US only, and don’t send anything to Google until I approve it.” The agent works in three steps, and none of them writes to Google.1
Research the keywords
It looks up up to 50 keywords at a time in one market: searches a month, average cost per click, the top-of-page bid range and paid competition. They are shown as a table, with amounts in the currency the data source reports. A number the data source does not have reads unknown, never zero.
2
Draft the campaign
It reads the landing page and writes the campaign: ad groups and keywords, exactly 15 headlines and 4 descriptions, two display paths, negative keywords and up to two generated images (landscape 1.91:1 and square 1:1). The draft is checked against the rules below and shown to you as a preview. Nothing is filed yet.
3
File it for your approval
When you are happy with the draft, the agent files it as one item in Work, shown in the chat as an approval card. The card and the row in Work are two views of the same item: approving either one is the same yes.
The budget is yours
The agent asks you how much you want to spend on Google a month, and drafts with the amount you gave. It cannot choose a budget for you: a monthly budget you did not state in that conversation is refused, and so is one a web page it read tried to talk it into. The daily budget is set so a month of it stays under your monthly figure. Google counts a month as 30.4 days, so a monthly budget of 50. Your monthly figure is what you spend on Google in total, across every campaign in the workspace. A campaign holds its budget from the moment it is filed for your approval until you stop it or decline it. A campaign the spend guard paused still holds its budget, because it is offered back next month, and so does one Google stopped serving (a suspended billing account, for example), because it goes back to running when Google serves it again. So a second campaign is drafted and filed only when you have said a monthly total that covers it on top of what the others hold: with one 1,500 one needs you to say $3,000. Otherwise the agent asks you. A higher daily budget the optimizer proposes is a separate yes: approving it raises your total by that much. Drafting and filing need a person in the conversation to set the budget, so they happen in a chat you are part of, never in a scheduled automation. Keyword research is available to automations too.What a draft must pass
A draft that breaks any of these rules is repaired once. If it still breaks one, it is refused, and the agent tells you which rule.
Every campaign bids to maximize conversions, with your target cost per conversion when you give one. A campaign we create in your account shows to people in the places you chose, not people interested in them. The import file does not carry that setting, so Google Ads Editor gives the campaign its own default, which also reaches people interested in those places; change it in Editor if you want presence only.
Approving a campaign
The approval card says, before you answer: the daily budget and about what it comes to a month, how the campaign will reach Google, what Google said about it when it could check it, how many headlines, keywords and ad groups it has, and that ad spend is paid to Google. You can approve the proposed daily budget, or start at the lower budget the card offers beside it, which is half. The lower budget is the one stored with the draft. Nobody can approve a budget higher than the one you read.Spend is approved in the app, by a person
Approving a campaign, or any change that can make Google charge more or cannot be taken back, must be a signed-in person’s own yes in the Attensira app. It is refused from anywhere else:- an API key, including
POST /v1/inbox/{id}/approve; - an assistant over MCP, including
approve_work_item; - a client reviewer link.
spend_approval_in_app and a message saying where in the app to approve it. This holds in every approval mode, Act included, and no setting changes it.
The agent never approves its own campaign. It files the item and stops.
How a campaign reaches Google
There are two paths. Which one a campaign takes depends on whether we can write to your Google Ads account at the moment it is filed, and the approval card says which.- Import file
- Created in your account
Approving gives you a Google Ads Editor import file. Nothing is written to your Google Ads account by us.
- In Work, choose Download import file. Each download is a fresh link.
- Import the file with Google Ads Editor. The campaign imports paused, so nothing spends until you turn it on in Google Ads.
- Choose Mark imported. The campaign becomes Imported and its item in Work closes.
[att-…]) and takes it over as a campaign we manage; from then on its status, spend and the spend guard apply to it. Keep the tag in the campaign name, or we cannot match it.Connecting Google Ads
Google Ads is connected as a connector on the workspace (see Plugins). It is read-only to the agent: no agent tool can write to your Google Ads account, in any mode. An approved item is the only way anything is created or changed there. One Google login often reaches several Google Ads accounts, such as your own and the clients under a manager account. The account is where the money is spent, so you choose it. When the login reaches exactly one account it is chosen for you; otherwise a row in Work asks you to pick, and nothing is guessed. Without a connection, every campaign takes the import-file path.Campaign status
A campaign’s status is the server’s, read from Google. Approving a campaign never makes it Live: only the sync does, from Google reporting that the campaign is on and serving.What runs on its own, and what always asks
Once a campaign runs, the agent reads what it spent on every day and proposes changes. The rules are fixed and deterministic. A language model writes only the one-line “because” each change carries, from the figures the rule used. Each change is classed from the campaign’s state before and after it, never from what the agent says about it.Can run on its own, in Act mode only
Can run on its own, in Act mode only
Changes that can only narrow where your ads show or lower spend, and can be undone:
- adding negative keywords;
- pausing keywords;
- pausing a campaign;
- lowering the daily budget or the target cost per conversion;
- promoting an ad variant that already ran, with copy you already approved.
Always asks a signed-in person, in every mode
Always asks a signed-in person, in every mode
Anything that can make Google charge more, or that says something new in your name:
- creating or turning on a campaign;
- raising the daily budget or the target cost per conversion, or removing the target;
- adding keywords, or turning a keyword or the first ad in a campaign on;
- removing a negative keyword;
- new ad copy.
The rules the optimizer runs
The optimizer runs once a day, after the account’s sync. It leaves a campaign alone for its first 72 hours of serving, and reads the last 14 complete account days.
The last two rules need a target cost per conversion on the campaign and conversion data: a cost per conversion is judged over at least 3 conversions, and both rules are off for an account that tracks no conversion action. A campaign drafted without a target gets the low-intent rule only.
The optimizer files at most one change per campaign, per day, per kind of change: the two negative-keyword rules share one change, which adds at most 20 negatives. A change still waiting for you is revised in place the next day rather than joined by a second one.
The spend guard
Your monthly budget is held two ways when we can read your account. Each campaign is held to its own approved budget, and because those budgets together fit inside the total you set, holding each one holds the total.- Google’s budget. The daily budget is at most your monthly budget over 30.4 days, so Google’s own monthly charging limit holds the month.
- Our spend guard. Google may spend up to twice a daily budget on a busy day, and reports cost a few hours late. So once an hour the guard reads each managed campaign’s month to date from Google, adds what it could have spent in the last 3 hours unreported, and pauses the campaign when that reaches 95% of the monthly budget you approved it at: its approved daily budget over 30.4 days. If you approved the lower starting budget, that is the figure the guard holds it to.
Only campaigns we manage count
A campaign is managed when we built it, or when you imported it from our file and the sync matched it by its tag. Only managed campaigns:- count toward ad spend figures;
- are held to a budget by the spend guard;
- are touched by the optimizer.
Ad spend
- Paid to Google, not our fee. You pay Google from your own Google Ads billing.
- In your ad account’s currency. Figures are in the currency of the Google Ads account and are never converted. Accounts in two currencies are never added together.
- Its own line. Wherever ad spend is shown, it is on its own line, marked as paid to Google and not our fee, and it is never added into your budget, your credit spend or any other total.
- Managed campaigns only, as above.
The numbers
Every Google Ads figure comes from one daily table, read from Google. When you ask the agent about ad performance it reads the same rows (theads_spend, ads_impressions, ads_clicks and ads_conversions metrics), so its answers and every other Google Ads figure come from the same days.
- A day is the ad account’s day, in its own time zone, the day Google bills and reports by.
- A day Google has not reported is a gap, never a zero. See gaps are gaps.
- The last 3 days are read again on every sync, so recent figures can still change as Google settles late conversions and refunds invalid clicks.
- Every figure carries its as-of time: when Google last reported it.
- No conversion action tracked shows a dash for conversions and cost per conversion, and switches off the optimizer’s cost-per-conversion rules.
Where you see them
- Analytics → Ads shows the window’s spend and this month’s, clicks and conversions by day, every campaign (ours and the ones you run yourself) with its status, and the search terms, costliest first. A workspace without Google Ads sees why there is nothing to show, not zeros.
- Beside a project’s feed, a project whose team runs Google Ads shows what its work cost this month against the project’s cap, and its ad spend on a separate line, with its campaigns.