Ads Arsenal is BattleBridge's advertising platform for Meta, Google, and TikTok. I am the lead engineer and co-owner of the project. It reads every campaign continuously, diagnoses what is and is not working against the goals you set, and turns the fix into a governed, one-click action. It measures what each action did, remembers it, and carries it into the next campaign. This page is the long version of the product pillar on the proof page: what it does, how it is governed, one campaign where the fix was a click, and what it means at the scale of a large book.
The loop
Create, optimize, act, learn.
01
Create
Campaigns are built and launched the way your team does it today. Ads Arsenal starts reading the moment they are live.
02
Optimize
Every ad is re-read against the goal on a continuous cadence. Findings arrive with their evidence and their reasoning.
03
Act
The fix is attached to the finding. One click, or none inside the bounds you set, and it lands on the platform.
04
Learn
Each action is measured. Each campaign that closes gets a retrospective. The next brief starts from what the last one taught.
Ads Arsenal is not for sale on this site. It is here as evidence of the kind of system I build with BattleBridge, and of the operating method behind everything on the proof page.
Most teams already know what they would change on a running campaign if they had the hours. Ads Arsenal does the reading, the diagnosis, and the paperwork of acting, so the only thing left for a person is the decision. Nothing here needs a new hire or a new routine. Connect the accounts, describe the goal in plain language, and it starts.
01
Recommend-first diagnosis across Meta, Google, and TikTok
On a continuous cadence, Ads Arsenal reads spend, delivery, clicks, and tracked conversions on every campaign in scope, on all three platforms, and judges each ad, ad set, and campaign against the goal you set. It works the way a senior media buyer works: it forms competing explanations, weighs the evidence, and only then names the finding. Every finding cites the numbers behind it and keeps its full reasoning trace one click away.
It is comfortable saying it does not know yet. When the evidence is not there, a finding is flagged as an open question rather than dressed up as a recommendation. A pass that reports nothing is a judgment (nothing worth your attention, and here is why), not a gap.
Ad, ad set, campaign
Findings are pinned to the specific object that caused them, not to the account.
Placement, hour, device
Where the spend goes and what converts, by placement, time of day, and device, per platform.
Reasoning trace
The explanations it considered, the ones it discarded, and the doctrine it applied.
02
Governed execution: one click, or none inside the bounds you set
Where a finding has a concrete fix, the action arrives attached to the card. Approve, and the change is queued, checked live against the platform first (anything that has gone stale cancels itself), landed on the platform, audited, and reversible with a roll back. The levers are the ones a buyer reaches for: pause an ad, adjust a budget, exclude or cap a placement, promote the ad that is carrying the campaign.
You also decide what does not need a click. Inside the guardrails you set per property (for example: routine pauses of ads with spend and no conversions, under a spend ceiling), Ads Arsenal approves and lands the action itself and tells you afterwards. Anything outside those bounds waits for a person. Your team keeps the same control it has today, with far less of the reading.
mediumlaunch property, Meta
Reels is taking a growing share of this ad set's spend with no tracked purchases; Feed on the same ad set converts
The failure decomposes to the placement, not to creative or tracking: the same ads convert in Feed. Capping Reels on this ad set keeps the converting placement funded for the rest of the campaign. Creative changes are off limits per the property's constraints, so the placement cap is the available lever.
Proposed action: cap Facebook Reels on this ad set. Checked against the property's goals and constraints before it reached you. Approving queues the change; a live preflight runs first; rollback stays available.
Illustration of an action card as it appears in the insights panel. The control is inert on this page.
03
Scoping: as granular as you want, or account-wide if that is how you run
Scope is a choice, not a setting you inherit. A property is the unit Ads Arsenal reasons about, and you draw it as wide or as narrow as your team works: the whole ad account under one goal, or one brand, one product line, one launch, one region, defined by rules you write in plain terms (campaigns named Spring Launch; this account, promotional campaigns only). Each property carries its own goal, its own target, and its own list of what is off limits: budgets, creative, geography, whatever your team decides. Every recommendation is checked against that list before it reaches anyone.
A lens cuts the other way: it groups properties across accounts and platforms so a brand lead, a category lead, or the owner of a portfolio sees one picture, with the same rules and the same reports. Run some accounts wide and others granular. The read and the governance are the same either way; the flexibility is the feature.
Account-wide
The whole account, one goal. Everything, one read, if that is how your team already runs it.
Granular
This product line, this launch, this region. Exactly the campaigns you name, each with its own target, constraints, memory, and reports.
Lens
By brand, category, region, or owner. Many properties, one picture, rolled up across accounts and platforms.
04
Measurement, retrospectives, and memory between campaigns
Each approved action opens a measurement window. Ads Arsenal keeps reading the campaign afterwards, against your target and against the campaigns that did not change, rather than assuming the fix worked. When it did not help, it says so.
When a campaign closes or is turned off, open it and ask for the lifetime analysis: where the spend went, where opportunity was missed, what was structural and what was a one-off, and what should inform the next campaign of this kind. Goals, constraints, your feedback on its findings, measured outcomes, and those retrospectives stay on the property. The next campaign starts from what the last one learned instead of from zero.
Measured, not assumed
Every action gets a verdict: helped, did not help, or not enough data to say.
Lifetime analysis
A lifetime read on any closed campaign: missed opportunity and lessons, in plain language.
Feedback shapes the next pass
Dismiss a finding and say why. It learns what you do and do not want raised.
05
Reports: live numbers, on any cut, delivered how you want them
Reports are live queries across all three platforms, never stale snapshots. Pick a property or a lens, choose the cut (by campaign, placement, hour of day, device, creative attribute, product, or a rollup across accounts), and run it. Or type the question in a sentence and let Ads Arsenal draft the report for you to edit and run. Save it as a template, export it as CSV, XLSX, or a branded PDF, and schedule it to arrive by email on the cadence you choose.
What you want
How you get it
A recurring rollup across the whole book
One scheduled report on a lens, in your inbox as XLSX or PDF, on the cadence you choose.
Spend and cost per result by placement for one product launch
Choose the property, cut by placement, run. Live numbers each time.
An answer to a question nobody built a report for
Type the question. Ads Arsenal drafts the report; you adjust and run it.
The same numbers your finance team uses
Every figure states its basis inline: which platform reported it, and under which attribution setting.
Creative, copy, and search
The levers beyond pause and budget.
The most expensive problems on a running campaign are rarely a single bad ad. They are tired creative nobody had time to swap, copy that was never tested, and search spend leaking to terms nobody meant to buy. Ads Arsenal works these the same way it works everything else: diagnose, propose, act on a click or within bounds, measure.
Creative rotation
Ads Arsenal watches the fatigue signals on every ad: frequency climbing, response falling, cost per result drifting up while everything else holds. When an ad is tired, it proposes the rotation: retire the tired creative, bring in the next one from the property's pool, keep the campaign funded. Approve it, or let it run inside the bounds you set. The creative pool refreshes itself instead of waiting for a free afternoon.
Copy testing
Headline and primary-text variants run as structured tests, not guesses: each test opens with a stated hypothesis, a fair split, and a stop rule. Ads Arsenal reads the test out plainly when it has an answer, promotes the winner, and records what was learned on the property so the next campaign's copy starts from evidence. Your team writes the variants once and reads a verdict, not a spreadsheet.
Google keywords and Shopping feeds
On Google, the diagnosis reaches the search-term and keyword layer: terms with spend and no results become proposed negatives, match-type drift and quality-score problems are named with their fix, and the ad-strength and approval status of every ad is on the card. For Shopping, the product feed is read alongside the spend: products with spend and no sales, disapproved items, and missing attributes surface as findings with the action attached. Search and feed hygiene stop being an occasional project.
All of it sits behind the same governance as the rest of the platform: findings carry their evidence, actions carry their preflight and their rollback, and the property's constraints (creative off limits on this launch, budgets fixed on that one) are respected before anything reaches you.
One campaign, one click
One example, scoped honestly.
A client ran a set of launch campaigns on Meta and TikTok, each with its own geography and its own purchase goal. The client's team built and ran the campaigns exactly as it does today. Ads Arsenal was given the campaign list and the goals and constraints in plain language: lower the cost per tracked purchase on each launch, and leave budgets, creative, and each campaign's geographic fence alone.
It read both ad accounts continuously and surfaced its findings as they emerged. This is one of them: an ad in one launch campaign that was spending steadily with no tracked purchases while the other ads in the same campaign converted. The card, and the click that landed it, as the client's team saw them:
mediumlaunch property, MetaApproved by the client's team
Loser ad in one launch campaign: no conversions while the campaign converts elsewhere
This ad has steady spend and a strong click-through rate but no purchases; its parent campaign recorded purchases in the same window, so the pixel is demonstrably active on this campaign. The failure decomposes to this specific ad, not to tracking. Creative and copy changes are off limits per the property's constraints; pause is the available lever.
Proposed action: pause this ad (classified loser). Basis: no conversions at spend. Approving queues the cut; the execution drain pauses the ad on the platform after a live preflight (already-paused ads cancel as stale).
Mirror of the stored insight card as the client's team saw it. The approval executed the pause on Meta shortly after (verified against the platform). Client, campaign, and ad identifiers are withheld. Controls are inert on this page.
$568 per tracked purchase
That launch campaign, before the pause
$24 per tracked purchase
The same campaign, after the pause, to the end of its run
Nothing else changed on that campaign between the before and after windows: same budget, same creative, same audience, same geographic fence. The budget the paused ad had been absorbing went to the campaign's remaining ads, which were the ones converting. The client's team did the work that only they can do. Ads Arsenal did the watching, and the fix was a click.
This is a real result and an extreme one: a single ad had been absorbing most of a campaign's spend with nothing to show for it, so removing it moved the number a long way. It shows the mechanism, not the expectation to set.
Source: Ads Arsenal's stored Meta insights for the campaign, purchases as reported by Meta under the account's attribution setting, windowed before and after the pause.
At scale
At the scale of a large book, this is where it pays.
Say the book is dozens of accounts across Meta, Google, and TikTok, and most of it is evergreen: campaigns that run continuously rather than launch and close. Launch work does not fill everyone's day. Maintaining that set does, because campaigns multiplied by platforms multiplied by ads makes a granular review of every angle at every level a time sink no team can staff. This is the shape Ads Arsenal is built for. Your team keeps the strategy and the results. Finding the right lever to pull, or the right dial to turn, is what Ads Arsenal does.
01
Fleet-wide diagnosis on a cadence
Every account, every property, on a continuous cadence, the same read against each property's own goal. Findings are grouped by property and faceted by type, so attention goes to the exceptions instead of to a rota of accounts. A large book and a small one get the same attention; only the number of findings changes.
02
Evergreen campaigns, read at every level
The angles nobody has time for are the ones it works: ad, ad set, placement, hour, device, keyword, and product, on each platform. Routine actions inside your guardrails land without a click; the rest arrive named, with their evidence, waiting for one. Nothing keeps running on a stale setting because nobody got to it.
03
Scoping that scales with the book
Each property sees only its own campaigns and carries its own target and constraints, so a launch for one brand never contaminates the read on another. Lenses roll properties up by brand, product line, region, or owner. Adding an account is a connection and a rule, not a new process.
04
Cross-account rollups, on schedule
One report across the whole book, or any lens of it, live each time it runs, scheduled to arrive as XLSX or PDF. Every figure states its platform and its attribution basis, so finance and marketing read the same numbers.
The lifecycle
From setting up a property to the questions leadership asks after the campaign closes, and where a click is the whole job.
1
Define the property You
Connect the accounts. Scope it as granular as you want, or keep it account-wide. Set the goals and constraints in plain language.
2
Insights populate Ads Arsenal
Within hours to a couple of days, depending on the account's scale and history, findings arrive with their evidence, each with a one-click apply.
3
It judges itself and keeps hunting Ads Arsenal
Every applied action is measured against the target. It keeps looking for optimization trends and tightens the KPI goals as the results come in.
4
The campaign ends The campaign
It stops, runs out of time, or the sale closes. Everything it did and everything it learned stays on the property.
5
Lifetime analysis You, one click
One click for the lifetime read: what to carry into the next setup on similar campaigns, or a comprehensive report isolated to that lifetime.
6
Leadership asks Leadership
Real-time cross-property data, how the goals interact, insight approvals, and complex cross-platform reports, on any cut, on a schedule.
Governance scales the same way. Every action, whether clicked or landed within bounds, is preflighted against the live platform, audited with who or what approved it, and reversible. The bounds are per property, so a cautious launch and a mature evergreen campaign can run under different rules on the same book.
At a glance
The second job, the one that never gets the hours.
Ads Arsenal does continuous optimization while campaigns run and learning between them, on every account, across Meta, Google, and TikTok.
Diagnose
Recommend-first, evidence attached
Every ad, continuously, against your goal, on three platforms, with the reasoning one click away.
Act
Governed execution
Pause, budget, placement, creative rotation, copy tests, search hygiene. One click, or none inside your bounds. Preflighted, audited, reversible.
Learn
Measured and remembered
Each action gets a verdict. Each campaign that closes gets a retrospective. The next brief starts from evidence.
Report
Live, on any cut
Reports run live across the three platforms, on a schedule or on demand, with every figure stating its basis.
Today, on a large evergreen book
Campaigns, multiplied by platforms, multiplied by ads: a granular review of every angle at every level is a time sink nobody can staff
Performance gets reviewed at the top line; the ad-level and placement-level levers go unpulled
Reports are assembled by hand, per platform, per ask
Lessons live in people's heads and get re-learned
With Ads Arsenal
Every campaign is read continuously at every level; the exceptions come to you
The lever to pull and the dial to turn arrive named, with the evidence, on a click or within your bounds
Reports run live on any cut, on a schedule, or on demand
Your team's time goes to strategy and results; every campaign's lessons stay on the property
This is what a system build looks like when it is finished.
Ads Arsenal is the deep end. Most businesses need something smaller, built the same way: governed, measured, logged, and owned by you. The one-page plan tells you where that pays off first in your business.