Supervised agent for paid advertising
What this application is. A web service that manages Google Ads advertising accounts on behalf of their owners. It connects to an advertising account through the Google Ads API with the owner's permission.
Who it is for. Small businesses that advertise on Google and have no in-house specialist: shops, clinics, salons, repair services, cafes.
What it does. Reads the advertising account daily, finds wasted spend, and writes a change proposal with the numbers behind it. The owner approves or rejects each proposal in Telegram. Approved changes are applied through the Google Ads API and then read back from the account to confirm the result. The service also builds a free one-page website for advertisers who do not have one, so their ads have somewhere to lead.
Target by DS Labs watches an advertising account continuously, finds waste, and writes a change proposal with the numbers behind it. It cannot apply that change on its own. Every operation that costs money stops at a human signature, and every applied change is read back from the account to confirm what actually happened.
Campaign #2 · proposed 09:12 · expires 17:00
The approval card as an operator sees it. Nothing reaches the advertising account until Apply is pressed. Proposals expire; an expired proposal is recalculated against fresh data rather than applied late.
Plainly, without marketing
Checks spend against a written daily and monthly ceiling, watches for sudden cost spikes, clicks that produce nothing, disapproved ads, and landing pages that stop responding. When a threshold is crossed it pauses delivery and notifies the operator. This part does not ask permission, because stopping spend cannot cost money.
Reads search terms, campaign structure, and performance history, then writes proposals such as negative keywords, pausing an ad group that has produced nothing, or moving budget between campaigns. Each proposal carries the figures it was derived from, the amount of money at risk, and how to undo it.
Minimum evidence thresholds are enforced in ordinary code, not by the language model: a keyword decision needs impressions, an ad decision needs clicks, a creative judgement needs conversions, and nothing is judged on less than seven days. Below the threshold the answer is "not enough data" — never "probably".
After every applied change the account is read again and compared against the intent. A successful API response is not treated as proof. Inputs, rule version, prompt, proposal, approval, API response, verification result, and the undo plan are all written to an audit log.
Three tiers · monthly · per advertising account
The tiers differ in one thing: how often a full analysis of the account runs. They are not a feature ladder. Spend limits, safety stops, hourly data collection and alerts run continuously on every tier, at no extra cost, because they do not use a language model.
Tier 1
$29
per advertising account, per month
One full analysis a day
A complete working product, not a trial. The account is read every hour, spend is held under the written ceiling, safety stops act on their own, and once a day the analysis produces change proposals with the figures behind them for your approval.
Tier 2
$59
per advertising account, per month
Two full analyses a day
The same product with closer attention. A change that matters in the morning is proposed the same day rather than the next one, which is what accounts with a faster-moving auction need.
Tier 3
$99
per advertising account, per month
Three full analyses a day
The closest attention available: the account is analysed morning, midday and evening, so a change is never more than a third of a day away from the data that justified it.
One advertising account is included in a subscription. Each additional account is charged separately at the same tier.
In development, not available today: launching an advertising campaign from scratch on a single approval; measurement of confirmed sales so that optimisation can target revenue rather than enquiries; recorded hypothesis testing; and a web account with live statistics. Launching from scratch belongs to the Watch tier and the rest to Revenue, but none of it works yet, so none of it is sold yet. Everything described above this line runs today.
Requested access level: Basic · one manager account · both internal and external users
Planned addition once access is granted: uploading offline conversions, so that optimisation can target confirmed revenue rather than form submissions. A click identifier is stored when an enquiry arrives and matched to a closed sale in the advertiser's own sales records.
On quotas: when a share of the daily operation limit is consumed, scheduled work stops and only safety checks continue. Target by DS Labs does not spread requests across tokens or otherwise work around a limit. Until API access is granted, the product reads accounts through Google Ads Scripts running inside the advertising account, and makes no programmatic changes at all.
Six stages · the language model is only the first one
Account state, performance, search terms and the history of previous decisions are read into one structured snapshot. A snapshot older than 26 hours is refused as stale.
A language model reads the snapshot as data, never as instructions, and returns a typed proposal: operation, target, evidence, confidence, money at risk, expiry, expected effect.
Ordinary deterministic code tests the proposal against the rule set: data sufficiency, change frequency, step size, whitelist membership, spend ceiling. A proposal missing any required field is rejected without reaching a person.
What survives the checks is presented as an approval card with a before-and-after preview and the undo plan. Irreversible operations always require a signature, regardless of settings.
Only typed, whitelisted operations are executed, idempotently, so a repeated attempt cannot double the effect. If the API times out, the account is read before any retry.
The account is read again and compared with the intent: did the intended thing change, and only that thing. The result is written to the audit log together with the rule version.
Stored in a versioned configuration file · changing one requires a logged decision
Thresholds start deliberately conservative. Loosening one requires 30 days of operation, at least ten recorded activations, an analysis of false positives, and a written entry in the decision log that takes effect a day later. Tightening a threshold takes effect immediately.
Messenger for approvals · a full record behind every decision
Operators receive proposals and alerts where they already are. An approval card shows the evidence, the money at risk, whether the change can be undone, and the two available answers. A proposal that expires is recalculated rather than applied late.
Every proposal, decision, applied change, verification result and safety stop is written to an audit log with its rule version and timestamps. This is what makes the product inspectable: an operator, an advertiser or a reviewer can see exactly what the software did and on what basis. A web account that presents this history in a browser is in development; today the record is held on the server and supplied on request.
Account ***-***-**** · 14:07
Safety stops do not ask. They stop, then report. Restarting delivery is always a human action.
What is collected, where it goes, what never leaves
Advertising performance data and account configuration retrieved from the advertising platform, the decisions the software makes, and the operator's approvals. Where an advertiser chooses to measure confirmed sales, a click identifier and a deal amount are processed to report conversion value back to the advertising platform.
Access tokens, credentials, personal data, and complete customer exports are never included in a model prompt. The model receives aggregated performance figures and account structure, supplied as data rather than as instructions.
Decision history is retained so that any past change can be explained and undone. On written request from the account owner, stored data for that account is deleted, except records required to demonstrate what the software did to an advertising account.
Data is held on a dedicated server operated by DS Labs in Frankfurt, Germany. Credentials are stored in server configuration outside the code repository and are not shared between advertiser accounts. Each advertiser's data is isolated, and ownership is verified before every operation.
Google Ads for advertising data. Anthropic and OpenAI language model APIs for analysis, under the restrictions above. Telegram for operator notifications. DigitalOcean for hosting. No advertising data is sold or shared for any other purpose.
Written requests are accepted at the address in the contact section and answered within 30 days.
Short, because the product is narrow
Target by DS Labs serves both internal and external users. Internal: advertising accounts operated by DS Labs itself. External: advertisers who take a monthly subscription and connect their own advertising account. The same software, the same limits and the same approval step apply to both — an account operated by DS Labs receives no privileges over a subscriber's account.
The advertiser remains responsible for the content of ads and landing pages and for compliance with advertising platform policies. Target by DS Labs checks ads and landing pages against those policies as part of its normal operation and stops assisting an account that is knowingly in breach.
The software controls spend and proposes changes supported by evidence. It does not promise a particular cost per conversion, sales volume, or return. Any proposal may be rejected by the operator, and every applied change can be examined in the history.
Target by DS Labs is an independent product of DS Labs. It is not affiliated with, endorsed by, or certified by Google. References to Google Ads describe compatibility only.
Correspondence about API access is read at the address below
Current stage. The product is running in supervised mode: it reads advertising accounts, enforces spend limits, and prepares change proposals for human approval. Programmatic changes through the Google Ads API begin only after access is granted; until then the software reads accounts through Google Ads Scripts and applies nothing automatically.