Home / Guides / Looker Studio
STM Connectors
Testing Phase

Looker Studio Data Source Guide

We've built a custom data pipeline to replace Supermetrics. This guide explains what's changed, what we've tested so far, and how you can validate the data at your end.

What's being built?

The short version: the plumbing is different, the water is the same.

🚫

Current setup

Each ad account has its own Supermetrics connector in Looker. Supermetrics talks to the ad platforms and returns the data.

New setup

A backend pipeline syncs all ad platform data into one central database. Looker reads from that database instead of Supermetrics.

What we've tested

Test copies of selected client reports have been updated with the new data sources.

🎯
Test reports are matching. Across the test reports, the metrics match Supermetrics when using the same date range.

What works differently

The key changes you'll notice when using the new data sources.

1
Accounts are filtered, not separated
Supermetrics

Each client had a separate connector. Picking the right account happened when setting up the connector.

New pipeline

All accounts live in the same data source. Reports use filters on account name or campaign group to show only the right client's data.

💡
When building a new report or duplicating pages, make sure to set account and campaign group filters so the data is scoped to the right client.
2
Reach comes from a separate source

Reach counts unique people — the same person only counts once per period. Because of how the ad platforms work, reach has its own dedicated Apps Script connector in each report.

Supermetrics

Each Supermetrics connector included reach automatically. You added a new connector for each new report — reach came with it.

New pipeline

Reach uses a separate Apps Script community connector. Just like Supermetrics, you need to add a new reach connector for each new report — it can't be shared across reports.

Setting up reach for a new report
1. Duplicate any existing reach data source from another report.
2. Edit the connection — select the correct ad account and set the right campaign filters and/or ad set filters for this report.
3. Reconnect, then point the reach scorecard to this new data source.
⚠️
Filters matter. The reach connector returns reach for the entire ad account by default. If your report page is filtered to a specific campaign or campaign group, you need to set matching campaign filters in the connector setup — otherwise the reach scorecard will show account-wide reach instead of campaign-specific reach. If you need reach split by ad set (e.g. comparing regions within one campaign), add ad set filters — each returns its own deduplicated reach row that you filter on via the "Filter label" dimension.
3
Use a date range ending yesterday (or earlier)

Data syncs twice daily (morning and evening). Today's data may still be updating, and ad platforms routinely adjust numbers for the most recent 1-3 days.

📅
For the most accurate comparison: set your date range to end at least one day before today. For example, if you're checking on 25 June, set the end date to 23 June. Data that's 3+ days old will match exactly.
4
Reports load faster
Supermetrics

Data was fetched live from ad platform APIs every time a report loaded. This meant waiting for each connector to pull the data before anything appeared.

New pipeline

Data is pre-synced into a database twice daily. When you open a report, it reads directly from the database — no waiting for API calls.

5
Ad thumbnails in creative tables

The Creative Performance data sources for Meta, LinkedIn, and TikTok include ad thumbnails — image previews of each ad creative directly in report tables.

🖼
Use the Creative Performance data source for each platform to get tables with visual ad previews alongside performance metrics.
6
More breakdowns available

The new pipeline provides dedicated data sources for breakdowns that were harder to access or unavailable through Supermetrics.

Placement Performance
Feed vs Stories vs Reels — see which placements drive results
Demographic Performance
Age, gender (Meta) and seniority, industry (LinkedIn) breakdowns
⚠️
Not yet tested. These breakdowns are available in the pipeline but haven't been included in the test reports yet. They'll need to be validated separately before use in live reports.

Which data source to use

Quick reference for when you're building or editing report panels.

f
Facebook Ads
What you need Data source in Looker
Scorecards, charts, campaign tables Facebook Ads — Ad Performance
The main data source for all standard metrics
Ad/creative tables with thumbnails Facebook Ads — Creative Performance
Same numbers as Ad Performance, but includes ad names & thumbnail images
Reach (deduplicated) Facebook Ads — Reach
Apps Script connector — one per report, needs campaign filters set
Custom conversions (e.g. leads, bookings, form submissions) Facebook Ads — Conversions
All custom pixel events across campaign, ad set, and ad levels
Spend + custom conversions together (e.g. Hickory bookings) Facebook Ads — Ad Set Conversions
Client-specific conversion columns alongside spend
Placement breakdowns (feed / stories / reels) Facebook Ads — Placement Performance
⚠️
Custom conversions are client-specific. If a client tracks custom pixel events (e.g. Hickory's "Booking Confirmed", "Initiate Booking"), these need to be set up by dev first. Once configured, they appear as dedicated columns in the Ad Set Conversions data source — so spend and conversion metrics are available together without blending. If you need custom conversions for a new client, let dev know which pixel events to add.
f
Facebook Insights (Organic)
What you need Data source in Looker
Page-level metrics (likes, reach, engagement) Facebook Insight — Page Performance
Post-level engagement Facebook Insight — Post Performance
Audience demographics (age / gender) Facebook Insight — Demographic Performance
IG
Instagram Organic
What you need Data source in Looker
Profile metrics (followers, profile views) Instagram Organic — Profile Performance
Post/reel engagement Instagram Organic — Content Performance
in
LinkedIn Ads
What you need Data source in Looker
Scorecards, charts, campaign tables LinkedIn Ads — Ad Performance
Creative tables with thumbnails LinkedIn Ads — Creative Performance
Reach & average dwell time (deduplicated) LinkedIn Ads — Reach
Apps Script connector — one per report, needs campaign filters set
Demographic breakdowns (seniority, industry) LinkedIn Ads — Demographic Performance
T
TikTok Ads
What you need Data source in Looker
Campaign overview Tiktok Ads — Campaign Performance
Ad group breakdown TikTok Ads — Ad Group Performance
Ad-level with thumbnails TikTok Ads — Ad Performance
SM
SEO Monitor
What you need Data source in Looker
Individual keyword positions SEO Monitor — Keyword Rankings
Keyword group aggregates SEO Monitor — Keyword Group Performance
Overall ranking distribution SEO Monitor — Ranking Summary
Visibility over time SEO Monitor — Visibility Trend
Organic traffic estimates SEO Monitor — Organic Traffic
M
Microsoft Ads

Coming soon — will be set up once a campaign is running on the platform.

Good to know

A few things worth being aware of.

🔄
Tiny daily fluctuations. You might see 1-2 clicks or impressions difference on very recent days. This is normal — Meta and LinkedIn adjust attribution retroactively. Both Supermetrics and our pipeline experience this; data settles within 2-3 days.
📆
Historical data is backfilled. The pipeline keeps a rolling 90-day window up to date automatically. For the initial setup, we've backfilled further back as needed so existing report date ranges work as normal.
New accounts are picked up automatically. When a new ad account is added to the portfolio, the system detects it and begins syncing data — including up to 90 days of historical data. No dev involvement needed for this.
How to verify numbers. To confirm the data is correct, compare a Looker report against the same date range in the ad platform directly (Meta Ads Manager, LinkedIn Campaign Manager, etc.). Use a date range ending at least 3 days ago for the most accurate comparison — platforms adjust recent numbers retroactively.
🔒
Account permissions matter. The pipeline needs admin or advertiser access to each ad account. If permissions are changed or access is revoked on an ad platform, data for that account will stop syncing until access is restored.
⚠️
Sync failures can happen. Occasionally a sync pipeline may fail (API issues, token expiry, platform outages). If this happens, data for that period could be missing or incomplete. The system monitors for these, but if numbers look unexpectedly wrong or data is missing for a period, flag it with the dev team.
GA4, Google Ads, and any other existing data sources in your reports are not affected by this transition.

Quick fixes

If something looks wrong during testing, it's usually one of these.

Numbers slightly different from Supermetrics
Check the date range — set identical start and end dates on both reports, ending at least 1 day before today.
A campaign is missing from the data
Check chart and page filters — the campaign's group may not be included in the filter.
Extra campaigns appearing in totals
The campaign group filter may be too broad. Check the filter uses the exact group name.
Reach numbers seem too high
The reach connector may not be filtered to the campaign group — without filters it returns account-wide reach. Set matching campaign filters in the connector setup.
New ad account not showing in the Reach connector dropdown
The ad account needs to be assigned to the system user in Meta Business Settings. See the Adding a New Ad Account guide for step-by-step instructions.
A shared data source isn't appearing in Looker
Looker Studio caches your data source list. Close your browser completely and reopen it — the new data source should then appear.
No data for older dates on a new account
Auto-backfill covers 90 days. For older data, ask dev to run a deeper backfill.
Data stopped updating for an account
Check the ad account permissions haven't changed — the pipeline needs admin or advertiser access to sync.

When to involve dev

Most things are self-service, but some situations need us.

Data looks wrong or is missing — numbers don't match what the ad platform shows, or a date range has gaps. This likely means a sync failed and needs investigating.
A new account isn't appearing — if a newly added account doesn't show data after 24 hours, the auto-detection may not have picked it up.
Custom conversions for a new client — if a client has custom pixel events (e.g. bookings, enquiries, purchases), dev needs to register them in the pipeline and create the corresponding columns in the Ad Set Conversions data source. Let us know which pixel events to add and we'll set them up.
Data needed beyond 90 days — the pipeline automatically keeps a rolling 90-day window. If you need older data (e.g. year-on-year comparisons), dev can run a manual backfill for the required date range.
Platform re-authentication — if a platform connection breaks (e.g. password change, revoked app access, expired token), dev needs to re-authorise the connection. The system auto-disables accounts after repeated auth failures, so if an account suddenly stops syncing and permissions look fine, it may be a token issue — flag it with dev.

What happens next?

The road from testing to going live.

Pipeline built & sample reports tested
Dev team has built the data pipeline and verified test reports against Supermetrics.
2
Social team reviews & validates WE ARE HERE
You review the test reports, compare numbers, flag anything that looks off, and confirm you're comfortable with how the new data sources work.
3
Go live
Once everyone is happy with the numbers and usability, we switch the live client reports over to the new data sources and retire Supermetrics.