Reporting and data

Automatic campaign report with no exports from four ad panels

Data from Google Ads, Meta, LinkedIn and GA4 lands in one table every day, and last week's report arrives on Monday in the board's inbox or the client's. Spend, conversions, ROAS and CPA counted on one definition across every channel. When a campaign crosses its cost per conversion threshold, the alert comes the same day, not after the month closes.

Diagram: a single AI agent wired at once into the systems a company already runs - Ad platforms, Analytics and conversions, Warehouse and data model, Dashboard, Report delivery, Automation layer. The agent reads them as one whole instead of moving data between them by hand. AI agent Ad platforms Analytics andconversions Warehouse anddata model Dashboard Report delivery Automation layer
  • 4 sourcesGoogle Ads, Meta Ads, LinkedIn Ads and GA4 in one data model: spend, clicks, impressions, conversions, ROAS and CPA per campaign, channel and day
  • every 24 hourshow often the data lands in one table, instead of once a month in a spreadsheet stitched together by hand out of several exports
  • 2 to 4 weeksfrom the workshop to a report that sends itself to the board or the client on Monday, checked against the ad panels on your own campaigns from recent months

The problem

Why does a campaign report take hours and describe last month?

The Google Ads specialist exports a table out of the panel. Somebody on social pulls the figures from Meta Business Suite and from LinkedIn Campaign Manager. A third person checks conversions in GA4. Then it all has to be glued together in a spreadsheet for the client or the board, the column names lined up, and a note added to explain why the numbers disagree. Several hours of work, once a month.

Once a month means decisions run on old data. A campaign whose cost per conversion is twice the plan from day one keeps running to the end of the period, because nobody sees it while it happens. Budget moves between channels three or four weeks late.

Then comes the argument about the numbers. Every platform counts a conversion in its own attribution window: Meta by default 7 days after a click and 1 day after a view, Google Ads 30 days after a click, and GA4 assigns it on a model of its own. The sum of conversions from three panels comes out higher than GA4, and half the meeting goes on explaining the gap instead of deciding what to do with the budget.

  • Hours of specialist time a month go on exporting and gluing, not on optimising campaigns
  • A campaign over its cost per conversion plan runs to month end, because nobody sees it in flight
  • The sum of panel conversions disagrees with GA4 and the meeting turns into a hunt for the difference
  • The report hangs on one person: their holiday means no report, their notice means a new layout and new definitions

Why now

What changed, so that the report can assemble itself?

Every platform hands over through an API the same numbers you see in the panel: the Google Ads API, the Meta Marketing API, the LinkedIn Marketing API, and GA4 through the Data API or a daily export into BigQuery. A connector in Make, in n8n or in an off-the-shelf ETL such as Supermetrics or Stitch pulls them every day, with nobody logging in and nothing exported to CSV.

The second change is where the data lands. BigQuery or Google Sheets takes all of it into one table, and a SQL script or a dbt model pushes the columns into a shared shape: spend, clicks, impressions, conversions, ROAS and CPA per campaign, channel and day. The definition of ROAS is then written down in one place and identical in every report, whoever happens to read it.

The third change is the AI agent. A dashboard in Looker Studio or Power BI will show a trend and compare channels, but it will not answer 'how much did we spend on Meta this week and which ad set has the highest CPA'. BOND, our company AI agent, answers that in a plain sentence out of the same table, in 5 to 10 seconds, with no login to any panel.

What changes

What does the marketing team get?

  • The report on Monday, with nothing exported

    Last week's report reaches the board or the client by email, as a PDF or a link to a dashboard built on the same numbers. Nobody logs into four panels and nobody stitches a spreadsheet.

    Delivery scheduled in n8n or Make, content read from the same table the dashboard reads

  • One definition of ROAS and CPA across every channel

    SQL or dbt brings the data from each platform into a shared model. Which conversion counts, in which window and at what value, is written down in the workshop instead of being renegotiated at every report.

    6 metrics in one model: spend, clicks, impressions, conversions, ROAS, CPA

  • Burnt budget visible in flight, not after month end

    The data refreshes every 24 hours and a rule compares cost per conversion and spend against the threshold set for that campaign. A deviation arrives as an alert the same day.

    CPA threshold per campaign from the workshop, alert to Slack, Teams or email

  • The gap between the panel and GA4 explained once

    The report puts panel conversions and GA4 conversions side by side, with the attribution window written next to each source. The meeting starts with a decision, not with the question of which number is the real one.

    Meta: 7 days after a click and 1 day after a view, Google Ads: 30 days after a click, GA4 in its own column

  • Campaign history in one place

    Daily data stays in BigQuery from the day of rollout, so a month on month or year on year comparison needs no further export. Changing agency or changing specialist does not take the history with it.

    One daily table per campaign, channel and day, the same one for the dashboard and for the AI agent

  • Ask about a campaign in a plain sentence

    'How much did we spend on LinkedIn this month', 'which campaign has the highest CPA today', 'how does ROAS on Meta look week over week'. The AI agent answers out of the table, with no dashboard open.

    An answer in 5 to 10 seconds, in English or in Polish, with no login to any panel

Proof

Do we report our own campaigns this way?

Yes. In our founders' companies the ad data has been collected and reviewed by an AI agent since March 2026, the same agent that stands behind the numbers we publish about BOND. Below is the scale of that work in the agency and the advertising result in the clothing brand, together with what these numbers do NOT prove.

Built for ourselves. These are not client deployments but implementations inside the founders' own companies. We say so plainly, because proof you cannot verify is not proof.

  • JustBotJustBottheir agent

    JustIdea Agency, a performance marketing agency, around 30 people

    23
    people from the company work with the agent
    38
    systems wired in permanently
    112
    processes run without a human
    475
    thousand lines of the agent’s code

    The agent is wired into Google Ads, Meta, the CRM, the task system, an SEO tool, Analytics, Search Console and the data warehouse. First commit on 1 March 2026, 23 people use it today.

    8 of 38 systems it works in

    • Google Ads
    • Meta Ads
    • HubSpot
    • ActiveCollab
    • Ahrefs
    • GA4
    • Search Console
    • BigQuery
    Before
    Reviewing client ad accounts and feeding the data warehouse was a human job: log into each panel, export, upload. How often it happened depended on who had the time that week.
    After
    The agent reviews the ad accounts and feeds the warehouse on its own, with no human session. A specialist starts the day on the deviations that need a decision, not on exports.

    2,225 ad account reviews and 3,506 warehouse operations in 30 days, with no human involved

  • SurfBotSurfBottheir agent

    Surf Inc., a premium clothing brand, an online store and two physical shops

    16
    people from the company work with the agent
    21
    systems wired in permanently
    89
    processes run without a human
    323
    thousand lines of the agent’s code

    The agent is wired into the order system, the ERP, the store, the data warehouse and the ad systems. Launched in March 2026, fully running in May. 16 people use it, the warehouse and the shop staff included.

    8 of 21 systems it works in

    • PrestaShop
    • BaseLinker
    • Comarch Optima
    • BigQuery
    • Google Ads
    • Meta Ads
    • GA4
    • Zalando
    Before
    From February to August 2025 every unit of ad budget came back as 3.53 in online revenue, and advertising ate 28.3% of that revenue.
    After
    In the same months of 2026 the ratio is 4.19, and advertising's share of revenue is down to 23.9%. The ad budget is 6.9% lower on sales 10.3% higher.

    Return on ad spend from 3.53 to 4.19, 18.5% higher, on a budget 6.9% lower

Return on ad budget, month by month
Return on every unit of ad budget in the clothing brand, February to August, 2026 against 2025. The 2026 curve starts LOWER than the year before, breaks away in March and holds the lead through the rest of the season. The peak is 4.91 in May. We mark the weaker start on purpose, because it is what shows we did not pick a convenient baseline. 012345 4,91 FebMarAprMayJunJulAug

2026, with the agent 2025, before the agent revenue per unit of budget

Return on every unit of ad budget in the clothing brand, February to August, 2026 against 2025. The 2026 curve starts LOWER than the year before, breaks away in March and holds the lead through the rest of the season. The peak is 4.91 in May. We mark the weaker start on purpose, because it is what shows we did not pick a convenient baseline.

Measurement: Online revenue from the order system against spend across all ad systems, the same months in both years. Cost data in the warehouse starts in February 2025, so it cannot be ruled out that the ratio was already climbing on its own.

And in your company

What if an agency runs our campaigns?

Four sentences we hear most often on a consultation, and what we answer to each of them.

If you are after a neighbouring piece, there are separate pages for the automatic sales report, for automatic client reports, and for marketing automation as a whole.

  • An agency runs our campaigns and sends us the report.

    Then the report is the agency's: in its layout, with its definition of a conversion, for a period it chose. Your own table gives you an independent view of the same accounts, and the agency gets access to the same dashboard. The conversation about results starts with a decision, and when you change agency the history stays with you.

  • We have Looker Studio wired straight into Google Ads.

    For one platform that is enough and we will tell you so. Meta and LinkedIn need paid partner connectors in Looker Studio, each counts in its own way, and the report stops working on the day the connector subscription lapses. That is why the data goes into BigQuery or Sheets first, and Looker Studio reads one table with one definition.

  • We run two campaigns on one platform, this is overkill.

    Agreed, and we say so on the consultation. A scheduled report out of the panel will do the job. The automation earns its place from two platforms up, or from several accounts, because that is where the stitching and the argument about which number is real begin.

  • We have nobody who knows SQL or BigQuery.

    You do not need one. We write and document the data model, and after rollout a marketing person runs it: a new account, an alert threshold and the report recipients change in a config sheet, not in code. Ad data for a handful of accounts fits inside the BigQuery free tier, 10 GB of storage and 1 TB of queries a month.

Ad platforms
Google Ads, Meta Ads, LinkedIn Campaign Manager
Analytics and conversions
Google Analytics 4, CRM conversions: HubSpot, Pipedrive, Salesforce
Warehouse and data model
BigQuery, Google Sheets, SQL, dbt
Dashboard
Looker Studio, Power BI
Report delivery
Email, Slack, Microsoft Teams, Google Sheets
Automation layer
n8n, Make, Supermetrics, Stitch, custom integrations over the API

The metrics in the report and where we take them from

The columns that most often make up a campaign report. The definitions are settled in the workshop, because when two sources give a different conversion count, the written rule decides, not whoever opened a panel first.

MetricWhere the data comes fromWhat to watch out for
SpendGoogle Ads API, Meta Marketing API, LinkedIn Marketing API, per dayaccounts in different currencies are converted at one daily rate, written into the model
Clicks and impressionseach platform's panel through its APIthe definition of an impression differs between platforms, so CTR is compared within a channel
Panel conversionsGoogle Ads, Meta, LinkedIn, in the platform's attribution windowMeta: 7 days after a click and 1 after a view, Google Ads: 30 days after a click; the panel total will come out higher than GA4
GA4 conversionsthe GA4 Data API or the GA4 export into BigQueryone attribution model for every channel, for comparisons between channels
ROAS and CPAcalculated in SQL from spend, conversions and valueone definition from the workshop: which conversion, which window, what value
RevenueGA4, the store (Shopify, WooCommerce, PrestaShop, BaseLinker) or the CRMin e-commerce, revenue after returns from the order system, not from the ad panel
Plan and alert thresholda Google Sheet kept by marketingCPA above plan or spend above the daily budget fires an alert

A first rollout usually covers spend, conversions and CPA per campaign. Revenue after returns and the attribution comparison come later, once the basic table matches the panels day by day.

How we do it

Five steps from panel exports to a report that sends itself

Each step ends with something you can judge before you decide on the next one.

  1. Workshop

    We take today's report apart: who assembles it, out of which panels, how many hours it takes, who reads it and which decisions come out of it. We write the definitions down: what counts as a conversion, in which window, what counts as revenue, how you name your campaigns.

  2. Data model

    Shared columns, currency rates, the mapping of campaign names to channels and clients, alert thresholds. The tool choice: BigQuery or Google Sheets, Make, n8n or an off-the-shelf ETL, Looker Studio or Power BI. We settle who gets the report and in what form.

  3. Connectors and the table

    We pull as much history as the APIs will give and switch on the daily load. The numbers in the table are compared against the panels for the same period, day by day, until spend and conversion counts match what the specialist sees.

  4. Dashboard, delivery and training

    The dashboard, the Monday email and the alerts go live in production alongside your existing report, which keeps running until the tests are done. The marketing person learns to add a new account, change a CPA threshold and add a recipient without raising a ticket with us.

  5. Observation

    For the first 4 weeks we watch whether the report answers the questions that come up in the meeting, whether the alerts are noisy, and whether campaign naming holds. We tune the thresholds to what actually arrives, not to what we predicted.

Before and after

How Monday changes for the person running campaigns

Before

  • In the morning they log into four panels and export tables into a spreadsheet
  • They glue columns together, line up campaign names and work out ROAS their own way
  • In the meeting they explain why Meta shows more conversions than GA4
  • They learn about the campaign that burnt the budget from the monthly report

After

  • Last week's report is waiting in the board's or the client's inbox before the laptop is open
  • ROAS and CPA are counted on one definition, written down in the workshop
  • Panel conversions and GA4 conversions stand side by side, the gap described once
  • A breached CPA threshold reaches them the same day, as an alert

The first Monday report goes out on the day of the switch. Alert thresholds and the report layout are reviewed after 30 days on real campaigns.

For the person signing this off

What a head of marketing gets out of it

The questions 'how much did we spend this month' and 'why does Meta show something different from Analytics' stop landing on your desk, because the answer stands in a table whose definitions you approved yourself. Cost per conversion becomes a number checked daily, not an impression picked up in a monthly review.

The second thing matters more in front of the board or the client. You hold the history of spend and result per channel from the day of rollout, in one place, independent of the agency and of whoever assembles the report today. That is an argument in a budget conversation that you do not have to hand right now.

  • Metric definitions written down and versioned, not held by one person
  • An alert on a breached CPA the same day instead of after the month closes
  • The table runs in parallel, so the existing report works until the tests are done
  • You add a new account or a new report recipient yourself, with no request to us

What it costs

The workshop has a published price, the rollout is quoted after it

The process workshop costs EUR 3,500 net per week. For a campaign report one week is usually enough, because the process is narrow: from the ad panels to a report in the inbox. We quote the rollout after the workshop, once it is clear how many platforms and accounts are in play, whether dbt is needed, and whether the dashboard belongs in Looker Studio or in Power BI.

You pay the running cost straight to the vendors: Make or n8n on their own price list, BigQuery on usage, where ad data for a handful of accounts usually fits inside the free tier. Looker Studio is free. Where the AI agent is part of the scope, model queries cost the vendor EUR 0.005 to 0.07 each. No commission from us on any of it.

  • Process workshop

    EUR 3,500 net

    per week, on a campaign report usually one week

    A self-contained piece of work. It ends with written metric definitions, a data model and a plan you can execute without us.

    • Map of today's report: who, out of what, how many hours, for whom
    • Conversion, attribution window and revenue definitions in one document
    • Tool recommendation: BigQuery or Sheets, n8n, Make or an off-the-shelf ETL
    • Alert thresholds and the metrics to measure after 30 days
    Start with the workshop
  • Most popular

    Workshop and report rollout

    Quoted after the workshop

    scope follows from the number of platforms and accounts

    The option most companies choose. A working report within 2 to 4 weeks of the workshop, checked against the panels day by day.

    • Everything in the workshop
    • Connectors to Google Ads, Meta, LinkedIn and GA4, the table in BigQuery or Sheets
    • A data model in SQL or dbt with one definition of ROAS and CPA
    • A dashboard in Looker Studio or Power BI, the Monday delivery, the alerts
    • Training the marketing person to make changes alone
    Talk about a rollout
  • Report and an AI agent for marketing

    Quoted after the workshop

    for teams that ask about campaigns a dozen times a day

    Everything in the rollout plus BOND, answering questions about spend, CPA and ROAS in a plain sentence.

    • Everything in the report rollout
    • An AI agent wired into the table: what we spent, which campaign has the highest CPA, how the week compares
    • Alerts on deviations with a comment on what changed
    • Access for the marketing team and the board, in English and in Polish
    Ask about the agent

If the workshop shows that you have one platform and a scheduled report out of the panel is enough, we say so and show you how to set it up. The workshop document, with the metric definitions and the data model written down, stands on its own, including when somebody else does the rollout.

Frequently asked questions

What is an automatic marketing campaign report?

It is a set of connectors, a table and a dashboard that pull data from Google Ads, Meta, LinkedIn and GA4 with no human involved, push it into one model and send last week's report to the board or the client on Monday. Spend, clicks, impressions, conversions, ROAS and CPA are counted per campaign, channel and day on one written definition. A person steps in at the decision, not at the export.

How long does an automatic campaign report take to implement?

One week of workshop and 2 to 4 weeks of build with four platforms and a single dashboard. With a dozen or more ad accounts, several currencies or Power BI instead of Looker Studio it is closer to 6 weeks. Most of that time goes on comparing the table against the panels day by day, not on the connectors themselves.

Why do the numbers from Meta, Google Ads and GA4 disagree?

Because each source counts a conversion in its own attribution window and on its own model. Meta by default claims a conversion up to 7 days after a click and 1 day after a view, Google Ads up to 30 days after a click, and GA4 splits the credit between channels on one model for all of them. The panel total comes out higher than GA4, and that is normal. The report shows both numbers side by side with the window described, so the gap is explained once rather than at every meeting.

Do we need BigQuery if we already have Google Sheets?

With one account and a few campaigns Sheets is enough and we will tell you so. BigQuery earns its place when daily rows per campaign run into the tens of thousands, or when you want to keep years of history and join it to store revenue. Ad data for a handful of accounts fits inside the BigQuery free tier, 10 GB of storage and 1 TB of queries a month, so cost is not the argument here.

Will this work in an agency running campaigns for several clients?

Yes, and that is usually where it is worth the most, because the stitching repeats every month times the number of clients. One table holds every account with a client column, and each client gets their own Monday report with their own thresholds and only their own data. In our founders' agency the ad accounts are reviewed by an AI agent, and the numbers are higher up this page.

What happens to historical data from before the rollout?

We pull back as far as each platform's API allows and load it into the same table, so a year on year comparison is possible from the first report. The limits depend on the platform and on whether campaigns have been deleted from the account. The range of history is agreed in the workshop and verified in the first week of the build.

What does it cost to keep the report running after rollout?

Connectors in Make or n8n cost whatever the vendor charges, or nothing at all when n8n runs on your own infrastructure. BigQuery bills on usage and with ad data it usually stays inside the free tier, and Looker Studio is free. An off-the-shelf ETL such as Supermetrics carries its own subscription and we pick it only when it saves more work than it costs. On our side there is optional support, agreed separately.

Can the report go to a client in their own branding?

Yes. Looker Studio lets you set colours, a logo and a layout per report, and schedule a PDF to chosen addresses on a chosen day and hour. Each client gets their own template reading only their own data out of the same table, and changing the layout in a template does not mean touching the connectors.

Let us count how many hours a month your report eats

The free consultation takes 30 minutes. You tell us which platforms the report is built from, who assembles it and who reads it, even if today it is a spreadsheet with four tabs. We show you which columns can be automated straight away and which need one definition of a conversion settled first. You do not have to give access to any ad account at this stage.

We run at most two rollouts at a time, so that someone is actually sitting on each of them.

Book a free consultation

PS. If your last campaign meeting opened with the question of why Meta shows different conversions from Analytics, this is exactly that problem. A report assembled by hand once a month cannot be reconciled with the panels until the definition is written down and calculated in one place. That is where the workshop starts.

Tell us your challenge

You write directly to Paweł. No spam.