Paid ads beta · Free & open source

See what your ad spend bought.
Move it in the same moment.

Ask why CPA moved. Duct reads Google Ads, Meta, Apple Search Ads, GA4 and Stripe together, proposes the pause or the shift, and applies it when you approve.

Free during beta · No credit card · For performance marketers at 20–200 person companies

An insights session: asked where the ads budget is leaking, the agent costs every campaign against the CPA target, proposes a pause, two negatives and a budget raise, and writes the spend brief on the right
Ask where the budget leaks. Duct costs every campaign against your CPA target, proposes the pause, the negatives and the budget shift, and applies them when you approve. The one over the guardrail waits for you.

Connects to the platforms you already run

The Problem

The signal is in your platforms.
But none of them talk to each other.

  • Google says ROAS is up. Meta says CPA spiked. Your spreadsheet says something else entirely. You don't know which to trust.
  • A campaign that crushed it last month is tanking now. You don't know if it's the creative, the audience, or the algorithm.
  • You spend four hours every week pulling CSVs from three platforms to build a report that's already stale by Monday.
Google Ads
Google Ads
Meta Ads
Meta Ads
Apple Search Ads
Apple Search Ads
HubSpot
HubSpot
After Duct Meta CPA spike was audience overlap with Google — excluding existing Google converters cut Meta CPA by 24%.

How it works

Connect. Ask. Approve.

01

Connect your stack

OAuth for Google Ads and GA4; a pasted read key for Meta, Apple Search Ads, OpenAI Ads and Stripe. Reporting needs read access only; nothing is exported by hand.

02

Ask the question

Type it the way you would ask a colleague. Duct reads every connected tool for it, shows the sources, and a second agent re-checks the numbers before you see them.

03

Approve the change

When the answer is a change, it arrives as a change set with a preview and a guardrail check. Apply it, or don’t. It remembers either way.

What it does

What it does for paid.

A change-set card: pause one campaign, one change blocked by a guardrail, Reject and Apply buttons

Pause the campaign that buys churners

When
ROAS is up and retention is down, in the same week.
Today
You find out at the end of the quarter, from finance.
With Duct
It reads Ads, GA4 and Stripe together, proposes the pause with the numbers, and applies it when you approve. A budget change over the guardrail stays blocked until you look.
One question and its answer: where the ads budget is leaking, read from Google Ads, GA4 and Stripe, with the campaign and the search terms named

Ask why CPA moved

When
CPA jumped and four platforms each have a theory.
Today
CSVs from Google, Meta and Apple, merged by hand on Friday.
With Duct
One question, every platform read together, and an answer that cites which campaign, which cohort, and what to do.
The Memory timeline: a CPA target, a decision, an event, and what the agent learned this week

Remembers the target and the August call

When
The CPA target changed and the brand campaign was meant to stay untouched.
Today
It lives in someone’s head until they are on holiday.
With Duct
Targets, decisions and what it learned, on a timeline. The next proposal respects them without being told again.

Who It's For

The marketer who owns paid without a data team

You're running three platforms, reporting to a founder, and making budget calls without a proper attribution model. You need cross-channel clarity, not another dashboard.

That's me — download Duct ↓
Performance Marketer20–200 person SaaS
Perfect fit
Growth LeadOwns paid + organic
Great fit
Founding MarketerWearing many hats
Great fit
Enterprise Media Buyer500+ with dedicated agency
Not yet

FAQ

Frequently asked questions

What is Duct for paid ads?

An open-source AI agent that reads Google Ads, Meta Ads, Apple Search Ads, OpenAI Ads, GA4 and Stripe together. Ask why CPA moved and it answers across platforms with its sources; when the answer is a pause, a negative or a budget change, it proposes the change set and applies it only when you approve.

How long does it take to connect my ad platforms to Duct?

About ten minutes for the whole stack. Google Ads, GA4 and Search Console connect with OAuth in one click. Meta, Apple Search Ads, OpenAI Ads, Stripe and RevenueCat take a read-only key you paste once. Then ask your first question; there is no report to wait for.

Does Duct modify anything in my ad accounts?

Not unless you approve it. Duct reads your performance data to answer you, and reading needs read-only access alone. When it finds something worth acting on — a wasted-spend search term to add as a negative keyword, a campaign to pause — it proposes the change, shows you every affected item before and after, and applies it only once you approve. Every applied change is logged and reversible where the platform allows it. OAuth tokens are encrypted and stored server-side, and all data in transit is encrypted via TLS.

How is Duct different from building cross-platform ad reports in spreadsheets or dashboards?

A spreadsheet shows you what happened. Duct tells you why, and what to do about it. It reads Google Ads, Meta and Apple Search Ads next to GA4 and Stripe, so a campaign that looks efficient on ROAS and terrible on retention gets named, with the pause or the budget move ready to approve.

How much does Duct for paid ads cost?

Free with your own keys, always. Duct is MIT licensed: you pay your model provider directly, or sign in with the ChatGPT plan you already have. A paid plan later bundles the models for teams that would rather hold no keys; nothing open today moves behind it. What will cost money is spelled out on the open-source page.

What kind of changes can it make?

Pausing a campaign, adding negative keywords, and moving a budget within the guardrail you set for the account. Each arrives as a change set with a preview; destructive changes are flagged, anything over a guardrail is blocked until a person looks, and every applied change can be rolled back.