Templates · Updated 14 Sep 2026

Weekly marketing report template

A weekly marketing report needs five things: this week against last week on the metrics you act on, a daily trend long enough to tell a dip from noise, a channel split, the few campaigns or pages carrying the spend, and a line saying how fresh the data is. The template below is those five, and in TableBI it is not a file you refill every Monday — it is a dashboard definition that recomputes when your accounts sync, at a URL that never changes. You connect a source; the report already exists.

That is the whole difference from a Sheets or PDF template. A file starts correct and decays for seven days. A query starts empty and is correct every time someone opens it.

Connect the source

npm i -g @tablebi/cli
tablebi login
tablebi connect google_ads --account 1234567890

Swap google_ads for meta_ads, gsc, ga4, or upload a CSV. When the first sync finishes, the weekly report is built and published automatically at the stable token weekly — there is no "create report" step to forget.

What the template contains

Which widgets you get depends on what you connected, because a report full of zeros is a report that lies:

ConnectedYou getWidgets
Any paid media (Google Ads, Meta Ads) Cross-channel overview Last 7d vs prior 7d (spend, clicks, impressions, conversions, ROAS) · daily trend, 30d · channel comparison · top 10 campaigns by spend
Search Console and/or GA4 only Search & traffic overview Search totals, 28d · clicks and impressions daily, 90d · top pages · top queries · position distribution · striking-distance queries ranking 4–15
Both Cross-channel, with the search section appended The paid set above, plus the Search Console and GA4 sections

The split is deliberate. If you have never run an ad, a template with a Spend column and a ROAS column shows you two empty columns every week — so that version of the report is never generated for you.

What to leave out

Most weekly report templates are long because length reads as effort. The costs land on the reader. Three things worth cutting:

  • Metrics nobody acts on. If no decision changes when impressions move 4%, impressions belong in the appendix, not row one.
  • Numbers from two platforms in one total. Meta reports conversions on its own 7-day-click attribution; GA4 reports last-click. Adding them produces a number that is true nowhere. Put them side by side and say which is which.
  • A week with no context. "412 clicks" answers nothing. "412, against 380" answers it, which is why every number in this template carries its prior period.

Say how fresh the data is, on the report

Every source lags differently, and a reader cannot see the lag. Google Ads lands within hours. Search Console runs two to three days behind by Google's own publication schedule — not a bug, and not something any tool can fix. A weekly report that silently shows a short last week makes Monday look like a collapse.

So the template anchors every window to the date the data actually runs through, not to today, and prints that date on the report. A Friday send and a Sunday send of the same URL cover the same days.

One URL, re-sent instead of rebuilt

The report is published as a read-only link. Clients and partners open it without an account and see the current numbers, not last Monday's snapshot. Next week you send the same link — or you don't, because they already have it.

tablebi dashboard list
tablebi dashboard show weekly

To change what it contains, edit the widget set and republish; the URL survives. To go further than the template — a question it does not answer — ask in plain language through Claude Code and pin the answer as its own widget.

Questions people ask

What should a weekly marketing report contain?

Five things: this week against last week on the metrics you act on, a daily trend long enough to tell a dip from noise, a channel split, the few campaigns or pages carrying the spend, and a line saying how fresh the data is. Anything else is decoration that costs you a rebuild every week.

Is this a spreadsheet or PDF template?

No. It is a dashboard definition that TableBI runs against your connected accounts. A file template has to be refilled every week; this one recomputes when the data syncs, at a URL that does not change.

Do I have to build the report myself?

No. TableBI builds and publishes it the first time a source finishes syncing, at the stable token weekly. Which widgets it picks depends on which sources are connected: paid media gets the cross-channel set, Search Console and GA4 alone get the search-and-traffic set.

Can I send it to a client without giving them an account?

Yes. A published dashboard is a read-only URL. Anyone with the link sees the current numbers; they do not sign in, and they do not see anything else in the workspace.

How fresh are the numbers?

Each source has its own lag and its own refresh cooldown — Google Ads within hours, Search Console two to three days behind by Google's own publication schedule. The report states the date its data actually runs through, so a reader never has to guess whether Monday's number is in yet.