docs
Open the app →

Copilot

The Copilot reads each campaign's last seven days every morning and suggests what to block, scale or fix — with the figures behind each suggestion, one button to act, and Undo.

The Copilot reads every campaign's numbers once a day, at 06:00 UTC, and again whenever you press Refresh. It lists what is losing money, what is worth scaling, which split test has a winner, and where tracking looks broken. Each suggestion shows the figures it is based on.

Open it with the Copilot button at the top right of every screen. It opens beside the page you are on, so you can act on a suggestion without leaving your work; Open the full view shows every suggestion grouped by campaign, with filters and the whole list of changes.

Nothing changes on its own. A suggestion is a list item until somebody presses its button, and every change made from one is recorded under Recent changes, where Undo puts it back.

#What it looks for

Suggestion When it appears The button
Losing money — a zone, placement, country or ISP It has spent at least twice what a conversion pays, with no conversions and under a 5% chance that is bad luck; or it converts but loses half or more of what it spends Blocks it for that campaign
Mostly bots At least 30% of 500 or more visits were bots Blocks it for that campaign
Scale Even its lowest plausible conversion rate beats the campaign's, from at least 5 conversions Advice: raise its bid in the ad platform
Split test One landing page or offer is at least 95% likely to be better, and every side has had 300 clicks and 10 conversions Sends all of the traffic, or 80%, to the winner
Campaign losing money A return worse than −30% over three days, after spending three times what a conversion pays Pauses the campaign, after asking
Tracking Conversions stopped for two days while clicks kept arriving Advice: check the postback
No cost 500 or more clicks in a week with no cost recorded Advice: set a cost, or connect cost sync

A conversion the network is still deciding on holds a suggestion back: it may yet turn a loss into a profit.

#Tracking health

The checks above assume the tracking works. These check that it does — each is a fault that makes every other number wrong. They carry a How to fix link to the part of this manual that explains the fix, and a button to the page where it is made.

Suggestion When it appears
Macros A sub field arrived as the macro itself — {zoneid}, ${SUBID}, __AID__ — on 20 or more clicks in two days. The ad platform is not filling it in.
Click IDs Half or more of 100+ clicks from Google, Microsoft, Meta or TikTok arrived without the platform's click ID, so their conversions cannot be sent back to it
Conversions Three or more conversions failed to reach the ad platform in a day
Cost sync A traffic source's cost sync failed, or has not run for a day
Connection A Google or Microsoft sign-in stopped working and needs reconnecting
Network An affiliate network's API check failed
Landing page Its click-through fell below a quarter of the week before
Tag Google or Microsoft reports spend, and UTMCAP recorded no visits from it — the tag is missing or the Final URL lacks its parameters
Goal A goal has never fired three days after it was made, or has not fired for two weeks
Approvals The network approved under half of ten or more conversions it decided on in a week
Bots A campaign's bot rate jumped at least 15 points and doubled against the week before
Postbacks A network sent five or more conversions in a day that matched no click — usually a click ID cut short or sent in the wrong parameter. Counted for postbacks sent to the network's own postback URL.
Search term Google Ads or Microsoft Advertising: a search that spent at least twice what a conversion pays over 30 days, with none converting, and under a 5% chance of that by bad luck at the campaign's rate. Read each morning from the connected account.
Repeat clicks Google Ads: one IP address clicked ten times or more in seven days and never converted, where the campaign's rate says it should have.

Where the campaign's traffic source is connected and changes in that network are switched on, a suggestion also offers its button there: Block in PropellerAds on a losing zone, Raise its bid 10% on a winning one, Exclude in Google Ads on a losing placement, Add as negative keyword on a search, Exclude IP on repeat clicks, and Pause in … on a losing campaign. Each is checked against the network again when pressed, and undone from Recent changes.

The alerts under the bell — an unverified domain, a certificate expiring, a network that has never sent a postback — stay there, and are not repeated here.

Which sub is the zone? The traffic source's template names each field, so a suggestion reads "Zone ID 48213" rather than "sub3 48213". A source without a template shows the field name.

Your figuresread each morning, oraskedThe Copilotsuggestions and answersA cardApply, Cancel, then UndoIn UTMCAPIn the ad networkBlocks, splits and pauses in UTMCAP; zones, keywords, bids and budgets in anetwork whose connection is set up and switched on. Each one is logged.
The Copilot finds, a person decides: nothing changes — in UTMCAP or inside an ad network — until somebody presses Apply, and every change can be undone.

#Ask the Copilot

The box at the foot of the Copilot panel answers questions in plain words — "why did ROI drop yesterday?", "which TikTok ads should I stop?", "how do I send conversions back to Taboola?". To answer, it looks things up: your campaigns and reports, your setup, the Copilot's own suggestions, these help pages and the platform guides. Under each answer it lists what it looked at.

Asking it to fix something. Say "block the losing zones on this campaign", "send all the traffic to the better landing page" or "pause it", and the Copilot prepares the change as a card under its answer: what will change, with the figures behind it. Nothing changes until you press Apply; Cancel drops it. It can prepare three kinds of change — blocking sub values, countries, ISPs or networks on a campaign; changing a campaign's split between offers or landing pages; pausing a campaign — and anything else it explains how to do by hand.

An applied change goes into Recent changes with the rest of the Copilot's, and Undo puts it back. The same rules as by hand apply: a viewer cannot apply, a buyer only on campaigns they created, and applying is on Starter and above. A card lasts a day; after that, ask again for figures that are up to date.

Changes inside the ad network. When the campaign's traffic source is connected under Integrations, the Copilot can also prepare changes in the network itself — so the network stops charging for what you block:

Network What it can change
PropellerAds Block zones, raise or lower a zone's bid, pause a campaign
Google Ads Negative keywords (from its search terms), exclude placements and IPs, keyword bids, daily budgets, pause
Microsoft Advertising Negative keywords (from its search terms), exclude sites, keyword bids, daily budgets, pause
Taboola Block sites, adjust a site's bid, daily cap, pause
Outbrain Block publishers, daily budget (not a shared one), pause
MGID Block widgets, adjust a widget's coefficient, exclude IPs, pause
Adsterra Block placements, a placement's custom bid, pause
ExoClick Exclude IPs, pause
TrafficJunky A spot's bid, daily budget, pause
TikTok Ads Daily campaign budget, pause

Some changes are left out on purpose where a network's own documentation does not make certain what a call does: ExoClick's zone toggle, Adsterra's budget (it can wait for Adsterra's approval), TrafficJunky's spot exclusion (there is none) and TikTok's bids. RevContent and NewsBreak are advice only for now.

A bid moves at most 20% and a budget at most 30% in one change, and a keyword bid is only offered where the campaign bids manually — under automated bidding the network ignores it. Before applying, each value is checked against the network again: if it has changed there since the card was made, nothing is overwritten. Undo takes the change back in the network. For Facebook, TikTok and the rest, the Copilot says what to change and where.

What answers. Either your own AI or UTMCAP's:

How Who pays
Your own API key Integrations → AI: paste a key from Anthropic, OpenAI, Google Gemini or OpenRouter, and choose a model. One OpenRouter key reaches Claude, GPT and many other models Your provider bills you; no monthly limit here
UTMCAP's built-in AI Nothing to connect Included: 100 questions a month on Growth, 250 on Pro, 500 on Scale

A ChatGPT or Claude subscription cannot be used: those work only in the companies' own apps. An API key is a separate account with the provider.

What the AI sees. Grouped figures and names — campaign and source names, zone ids, countries, totals. Never a visitor's IP address, a click id or any of your keys. Conversations are not stored; only that a question was asked, and its size, for the monthly count.

#Blocking in the ad platform

Blocking a zone in UTMCAP stops its visitors reaching your offer — but the ad platform still charges for the click. To stop paying for it, block the zone in the ad platform too. Copy blocklist beside a campaign copies every ID the Copilot has suggested blocking, one per line, ready to paste.

UTMCAP can block on a sub field, country, ISP or network (ASN). A losing device or operating system is shown as advice, to change in the ad platform.

#Dismiss and snooze

Dismiss hides a suggestion. It comes back only if its spend grows by half again — clearly worse, not one more click. Snooze hides it for a week.

#Who can do what

Everyone on the account can read the Copilot. A viewer cannot change anything; a contributor can act on campaigns they created; admins and members can act on any. Applying in one click is on Starter and above — the free plan sees its top three suggestions and acts on them by hand.