Webotic
Free audit
Back to blogAUTOMATION · 2026 REPORTING

Automating client reporting: Make + BigQuery + Looker Studio, the Webotic stack.

Every Monday, a Moroccan media buyer loses 5 hours per account opening five tabs, exporting CSVs, and reconciling metrics that never line up. Multiplied across the 8 to 12 accounts a single engineer carries, that is 40 to 60 hours wasted each week. This is the stack Webotic deploys to claw back 12 to 18 hours per week per engineer: Make.com as the orchestrator, BigQuery as the warehouse, Looker Studio as the client-facing layer.

9-29 USDMake.commonthly · unlimited scenarios
<10 GBBigQuery near-freestorage + 1 TB queries/month
12-18 hRecovered per weekper engineer · 8-12 accounts
4 minWeekly report deliveredvs 5 h manual
01

The hidden cost of manual reporting: 40 to 60 hours per week for a Moroccan agency

Before talking tools, the problem deserves a number. A Moroccan media buyer who reports seriously on an account spends 4 to 6 hours per week on it: 1.5 h pulling data from Meta Ads Manager, Google Ads, TikTok Ads, and GA4; 1.5 h cleaning and normalizing (mixed EUR/USD/MAD currencies, inconsistent campaign naming, different attribution windows); 1.5 h analyzing and writing insights; 30 minutes formatting and sending. Across the 28 accounts Webotic runs in a standard quarter, this adds up to 130 to 170 hours of weekly reporting — the equivalent of three to four full-time roles. The second cost, more insidious, is decisions made on data that is 48 to 72 hours old: a Meta CPM that jumps to 60 MAD on a Wednesday but is only spotted the following Monday has already burned 4 days of dead budget. On Webotic accounts we have measured between 12 and 18% of media spend wasted purely on stretches when reporting was lagging. Automating reporting is therefore not an operational convenience — it is a gross-margin mechanic. The math is one line: if an engineer recovers 15 hours per week on reporting, they can either take 2 to 3 more accounts (agency revenue) or spend those hours on real optimization (client revenue). Either path moves the P&L.

  • 5.2 h of weekly reporting per managed account on average (Webotic median, 28 accounts).
  • 12 to 18% of media budget wasted on stretches where reporting is 48 h behind.
  • For a 10-account agency: 52 h/week in manual reporting, or 1.3 FTE dedicated.
02

The Webotic architecture: native APIs → Make.com → BigQuery → Looker Studio

The stack went through three iterations between 2023 and 2026. First version (2023): manual CSV exports into Google Sheets, Data Studio dashboards — fragile, broke every time a platform schema changed. Second version (2024): Make.com as orchestrator, Sheets as storage — clean up to 200 000 rows, slowed beyond. Current version (2025-2026): Make.com as orchestrator, BigQuery as warehouse, Looker Studio as the client-facing layer — handles any volume a Moroccan agency hits, and stays under 10 GB cumulative even for e-commerce accounts with two years of history. The flow: at 5:30 a.m. each morning, a Make.com scenario triggers calls to Meta Marketing, Google Ads, TikTok Marketing, and GA4 Data APIs for the rolling last 30 days. Make.com transforms payloads into normalized rows (one shared schema: date, platform, account, campaign, ad_set, impressions, clicks, spend_mad, conversions, revenue_mad, event_id) and writes them into a date-partitioned BigQuery table. Looker Studio reads BigQuery via the native connector and renders the client dashboards. A second scenario runs Monday at 7 a.m.: it computes week-over-week deltas, generates a Looker PDF, and sends it to the client with a six-line summary email. When the team walks in at 8:30, the client has already opened the mail. The whole thing runs for USD 9 to 29/month of Make.com depending on plan, plus 0 to 8 MAD/month of BigQuery (within the free tier), plus 0 MAD for Looker Studio. For a 12-account portfolio, the monthly stack cost lands between 290 and 350 MAD.

03

Step 1: connecting Meta, Google, TikTok, and GA4 inside Make.com

Make.com ships with native and maintained connectors for the Meta Marketing API, Google Ads API, TikTok Marketing API, and GA4 Data API. None of these are free on the platform side — you need an OAuth access token per platform, a Google Ads developer account (free, validated in under 48 h for a standard developer token), a Meta Business account with admin rights on the ad accounts, and a TikTok Business Center account with an approved sandbox app. The standard scenario pulls the same base metrics from each platform: impressions, clicks, spend, conversions, conversion value, and the dimensions date, account_id, campaign_id, campaign_name, adset_id, adset_name. Naming conventions always diverge: `spend` on Meta, `cost_micros` on Google Ads (divide by 1 000 000), `stat_cost` on TikTok. Make.com handles that normalization through Set Variable and Tools — Iterator modules. For accounts that spend in EUR or USD (export clients), conversion to MAD is applied on read, using a daily FX rate pulled from the Bank Al-Maghrib API (free endpoint) or ECB as fallback. Important: attribution windows are aligned on 7-day click / 1-day view on Meta, last-click on Google, and 7-day click on TikTok so comparisons hold. GA4 is the source of truth on conversions only for e-commerce accounts — for B2B lead gen, the CRM (HubSpot, Pipedrive) outranks GA4.

  • OAuth tokens required: 1 per media platform, auto-refreshed by Make.com.
  • Currency normalization: Bank Al-Maghrib or ECB rate, converted to MAD on read.
  • Attribution windows aligned: 7d click / 1d view (Meta), last-click (Google), 7d click (TikTok).
04

Step 2: BigQuery as the warehouse — near-free under 10 GB/month

BigQuery is what changes everything compared to Google Sheets. GCP pricing Q1 2026: 10 GB of storage free per month, 1 TB of queries free per month. No Webotic account, even on two years of cumulative cross-platform history, has crossed those thresholds — an average account sits between 80 MB and 400 MB per month depending on spend. For a 12-account portfolio with 24 months of history, the cumulative load is typically 4 to 6 GB. Webotic table layout: a date-partitioned table, clustered by platform and account_id, with a normalized 14-column schema. Make.com uses the BigQuery — Insert Rows module to stream data in append mode. Deduplications are handled via a composite event_id (date + platform + campaign_id + adset_id) in a daily MERGE statement. For accounts that exceed 10 GB (rare case: high-volume cross-geography e-commerce), the marginal cost is USD 0.02 per GB of storage and USD 5 per TB of queries beyond the free tier — at most USD 1 to 3/month. The real reason for BigQuery over Sheets is not even cost or volume: it is Looker Studio read speed. A 100 000-row BigQuery dashboard refreshes in 1 to 2 seconds; the same dashboard on Sheets takes 8 to 25 seconds depending on tab count, which becomes intolerable in a client meeting.

05

Step 3: Looker Studio templates by vertical — 4 to 7 cover 90% of clients

Building a custom dashboard per client is a trap: impossible maintenance, editorial drift, time loss. Webotic maintains a library of 6 Looker Studio templates that cover 90% of Moroccan accounts: e-commerce (ROAS, AOV, CPM by catalog, add-to-cart rate, checkout rate); B2B lead gen (CPL, qualification rate, channel attribution, pipeline value, closed deals); real estate (CPL per program, cost per visit, visit-to-signature rate); private healthcare (CPL per specialty, booking rate, no-show); B2B and B2C training (CPL, enrollment rate, cohort value); local multi-location services (geo-CPL, direct call rate, in-store appointment rate). Each template follows the same grammar: page 1 overview (4 headline KPIs + 30-day curves), page 2 by channel (Meta, Google, TikTok side by side), page 3 by campaign (sortable table + top/bottom creative zoom), page 4 attribution and funnel, page 5 free-form Webotic commentary (an editorial zone written every Monday). Client branding is parameterized via 4 Looker variables (logo URL, primary color, accent color, font) — a new client is set up in 30 to 45 minutes instead of 4 to 6 hours for a custom dashboard. Templates are versioned internally (v3.2 B2B lead gen, v2.1 e-commerce, etc.) with a changelog kept on Notion.

  • 6 templates cover 90% of client verticals (e-commerce, B2B lead gen, real estate, healthcare, training, local multi-site).
  • New-client onboarding: 30 to 45 min setup vs 4 to 6 h for a custom dashboard.
  • Internal versioning on Notion: per-template changelog, 12-month backward compatibility guaranteed.
06

Step 4: automated Monday 7 a.m. email — the real perceived value on the client side

The Looker Studio dashboard is useful, but what the client actually opens is the Monday email. Webotic built a second Make.com scenario that runs every Monday at 7 a.m. Morocco time. The scenario: 1) aggregated BigQuery query on the last 7 days, compared to the previous 7 days and the same 7 days last year — computes percent deltas; 2) generates a Looker Studio PDF via the Looker API (shared URL with dynamic date parameters); 3) composes a short email: subject "[Client] — week of X to Y: ROAS X.X · CPL XX MAD", body of 6 to 8 lines with 3 headline numbers and 2 template-based observations (e.g. e-commerce: "ROAS +X% on PMax catalog, Meta CPM up X% — offset on audience X"). Delivery uses the Make.com Gmail module from a hello@webotic.ma address or directly from the account manager's address depending on the client. The attached PDF lets the client's marketing director or CEO forward the report to the board without opening Looker. Client feedback on this point is consistent: the perception of agency reliability shifts from "we have to chase the info" to "the info arrives before the question." That perception, more than the dashboard itself, is what drives retention.

07

Total cost, ROI, and a 90-day rollout trajectory

The economics are unambiguous. Monthly stack costs: Make.com Core plan at USD 9, Pro at USD 16, or Teams at USD 29 depending on operations volume (a 12-account portfolio burns 80 000 to 150 000 Make.com ops/month, so the Pro plan with 10 000 ops/month suffices after tuning polling intervals — pulling every 4 h on low-spend accounts instead of hourly). BigQuery: USD 0 to 8/month for 12 accounts, free tier sufficient. Looker Studio: USD 0. Total stack: USD 9 to 37/month, or 90 to 370 MAD/month for a 12-account agency. Benefits: 12 to 18 hours per engineer per week recovered, internal Webotic hourly rate of 250 to 400 MAD, meaning 3 000 to 7 200 MAD of avoided hourly cost per week per engineer — 12 000 to 29 000 MAD/month. ROI is reached in under a day. Rollout trajectory on a new client: week 1 = media account audit + OAuth setup + BigQuery table creation (4 to 6 engineer h); week 2 = Make.com scenario build + first pulls (3 to 4 h); week 3 = Looker template setup + branding (1 to 2 h); week 4 = Monday email scenario + tests (1 h). Total: 9 to 13 engineer hours to bring a new account under automated reporting, amortized in 1 to 2 weeks of weekly savings. Moroccan agencies that fail to automate reporting do not pay that gap in tools — they pay it in engineer hours, the rarest and most expensive resource on the market.

  • Monthly stack cost for 12 accounts: 90 to 370 MAD all in.
  • Avoided hourly cost per engineer: 12 000 to 29 000 MAD/month.
  • New-account onboarding: 9 to 13 engineer hours, amortized in 1 to 2 weeks.

FREQUENTLY ASKED QUESTIONS

Looker Studio vs Power BI in Morocco — which one for client dashboards?
Looker Studio in 90% of media and lead gen cases in Morocco. Reasons: it is free, natively connects to BigQuery, Google Sheets, GA4, and Google Ads with no extra cost, and URL-based sharing works with any client Google account. Power BI is stronger on modeling and better suited when the client already lives in Microsoft 365 — typically large B2B accounts with Excel-centric finance teams. Cost-wise, Power BI Pro is USD 10/user/month on both agency and client sides, which compounds quickly. For pure ad reporting, Looker Studio wins.
Is BigQuery cost really near-zero in practice?
Yes — under 10 GB of storage and 1 TB of monthly queries, cost is zero. No Webotic account, even on two years of cumulative cross-platform history, has crossed those thresholds. An average e-commerce account generates 80 to 400 MB per month depending on spend. For the rare overflow cases (high-volume cross-geography e-commerce, over 100M events/month), marginal cost is USD 0.02/GB storage and USD 5/TB queries — at most USD 1 to 3/month. BigQuery cost is not a real concern for a standard Moroccan agency.
How many Looker Studio templates do you need per client?
One template per client, picked from an internal library of 4 to 7 templates by vertical. Webotic maintains 6: e-commerce, B2B lead gen, real estate, private healthcare, training, local multi-location services. Branding is parameterized via 4 Looker variables (logo, primary color, accent, font). Building a custom dashboard per client is a trap: maintenance is impossible above 5 to 7 accounts, editorial drift sets in, and cross-account comparability is lost. The only case where an ad hoc template is justified is a client with a truly atypical measurement structure (e.g. a multi-product SaaS with custom attribution).
Is Make.com actually fit for scheduling ad reporting?
Yes — it is what Webotic runs in production across 28 accounts since 2024. Strengths: native and maintained connectors for Meta Marketing API, Google Ads API, TikTok Marketing API, and GA4 Data API; visual orchestration that beats n8n or Zapier on workflows above 5 modules; predictable pricing (USD 9 to 29/month by plan). Limits: per-operation billing becomes painful above 200 000 ops/month — beyond that, a Cloud Run + Cloud Scheduler GCP setup at USD 10 to 20/month is better for unlimited volume. But for 90% of Moroccan agencies, Make.com is the best speed-to-setup / cost / robustness compromise.
Does Looker Studio replace a custom React or Tableau dashboard?
For ad reporting to clients, yes — fully. For an internal data product with complex interactions (multi-level dynamic filters, budget simulation, custom attribution models), no. The Webotic rule: Looker Studio when the end user is a client passively consuming, and data comes from 3 to 6 standard ad sources. Custom React + BigQuery dashboard when there are non-trivial business rules (e.g. multi-channel dynamic pricing for e-commerce, or a media risk score) or when the dashboard must be embedded in an existing app. For a Moroccan media agency on client reporting, Looker Studio covers everything.
Does the workflow hold with LinkedIn Ads and Snapchat Ads on top?
Yes — Make.com has native connectors for LinkedIn Marketing Solutions, Snapchat Marketing API, and Pinterest Ads. The logic is the same: each platform is read every morning, normalized into the shared schema (impressions, clicks, spend_mad, conversions), and written into the same BigQuery table with a `platform` field that drives filtering on the Looker side. On Make cost, each added platform burns roughly 1 500 to 4 000 ops/month per account. On B2B Webotic accounts combining Google + Meta + LinkedIn + TikTok, the Make Pro plan at USD 16 still covers the volume.
How do you handle accounts that spend in EUR or USD instead of MAD?
Conversion to MAD on read at the daily FX rate. Make.com pulls the Bank Al-Maghrib API (free, daily official fixing) or ECB as fallback. The day's rate multiplies the native spend on insert into BigQuery, and both the native value and the MAD-converted value are stored for audit. This logic is essential for Moroccan agencies running export clients (corporate training for international groups, EUR-billed e-commerce) — cross-account comparisons happen in MAD, but audits in case of client questions still trace down to the native currency.
REPORTING AUDIT · 30 MIN

We review your reporting stack in 30 minutes

You give us read-only access to your Make.com (or Zapier, or n8n) and your media accounts. We come back within 48 hours with a short document: how many hours you lose each week, what optimal monthly stack cost you should target, and the first three scenarios to automate to claw back 10 to 15 h per week across your portfolio. No slides, no pitch — just the numbered audit.

Request my reporting audit