Skip to main content
The agent builds and runs Google Ads Search campaigns for your own site. It does the research, writes the campaign and watches it once it runs. You set the monthly budget and approve every yes that spends money. Ad spend is paid to Google, from your own Google Ads billing. It is not our fee and it never comes out of your credits.

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 1,520becomesadailybudgetof1,520 becomes a daily 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,500campaignfiled,asecond1,500 campaign filed, a second 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: Each gets 403 Forbidden with the reason 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.
Approving gives you a Google Ads Editor import file. Nothing is written to your Google Ads account by us.
  1. In Work, choose Download import file. Each download is a fresh link.
  2. Import the file with Google Ads Editor. The campaign imports paused, so nothing spends until you turn it on in Google Ads.
  3. Choose Mark imported. The campaign becomes Imported and its item in Work closes.
The file holds the campaign, its locations and languages, ad groups, keywords, negative keywords and a responsive search ad per ad group. The generated images are not part of it.On this path Google’s own budget is the only cap. We cannot see or pause a campaign in an account we cannot read.Marking it imported never makes it Live: we cannot see an account we cannot read. If we can later read the account, and you have marked the campaign imported, the daily sync finds it by the tag at the end of its name ([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.
If the path changes after a campaign is drafted, nothing is sent the other way. A campaign approved as an import file is never written to your account, and one approved to be created in it is never handed off as a file instead: it comes back to you to draft or approve again as what will actually happen.

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.
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.
In Act they go out without waiting, and count toward your change caps like any other change made without you. In Ask or Draft they wait in Work for your yes, which you can also give over the API or MCP.
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.
These are never approved automatically, and are approved only in the app (see above). Any change the classifier does not recognise is treated the same way.

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.
The pause can only set the campaign to paused. It runs in every approval mode with no approval behind it, because stopping spend can be undone and waiting for a yes is how a cap is overrun. It is recorded in the activity log as Spend guard and raised as a row in Work with its reason. If Google refuses the pause, the row in Work says so and asks you to pause the campaign yourself. The guard never turns anything on. Once a campaign it paused has room under its budget again, for example in a new month, it files “turn it back on?” for your approval, and a signed-in person decides. On the import-file path, the guard cannot see the campaign until we can read your account, and Google’s budget is the only cap.

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.
Campaigns you built yourself in the same account are labelled Yours, not managed by us wherever they are listed, and left out of every total. We do not change them.

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 (the ads_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.

When something goes wrong

The sync runs once a day from 06:00 on the ad account’s clock, and again about 15 minutes after any change we make. Nothing it finds is silent: each problem is a line in loop health or a row in Work, and the ones you can fix are always a row in Work.

What we do not promise

Google decides where, when and how often an ad shows. We do the work: research, drafting, the daily reads and the optimizer’s changes. We do not promise clicks, conversions or a position, and we do not claim that running ads changes what AI models say about you. Only Search campaigns are built. Performance Max and Display campaigns are not.