Skip to content

What a BigQuery Data Stack for Ad Attribution Includes, and Which Agencies Build One

  • Analytics & Tracking
  • Posted on
A flow from five sources into BigQuery, each source on an icon tile with its name: the Google Ads mark, the Meta mark, the GA4 mark, a phone icon for calls and a contact card icon for the CRM, joined by lines into the BigQuery mark inside a box marked your cloud project and joined on the click, with an arrow on to a dollar icon for closed revenue.

A BigQuery data stack for ad attribution keeps your ad clicks, calls, CRM records and closed deals in one Google Cloud project that you own, joined so you can see which click became which sale. We read the sites of agencies that say they build one, and four passed our test: Fire Pixel, Kodelytics, Measurelab and nn.partners (us). The order is alphabetical and carries no rating.

Most reporting stops at the lead form. The ad platform counts leads, the CRM counts conversations, finance counts payments, and nobody can say which click each payment came from. So the ad account keeps optimizing for the cheapest lead, because that’s the only thing it can see.

A data stack in BigQuery fixes that by keeping all four records in one place and joining them on the click. It’s mostly planning and plumbing, built on standard tools. The hard part is deciding what to measure, and getting your sales team to agree on what a qualified lead and a closed deal are.

We’ve written a series on why owning this data matters and what it costs: Your Ad Data Is Rented. BigQuery Is How You Own It, From Ad Click to Closed Deal and BigQuery Cost for Marketing. This page covers the narrower question of what’s in the stack, what you should get at handover, and which agencies say they build one.

What does a BigQuery data stack for ad attribution include?

This is our reading, from the stacks we build. Seven parts, and the chain breaks at whichever one is missing.

  1. Ad platform data. Cost, clicks and campaign names from Google Ads, Meta and Microsoft Ads, loaded on a schedule.
  2. The click ID, saved with the lead. The Google click ID (GCLID), or the matching ID from the other platforms, has to be captured on the form or call and stored on the CRM record. Without it there’s nothing to join on.
  3. Calls. Call tracking data, joined to the same lead. Our stack uses CallRail for this.
  4. CRM records with stage history. Today’s stage is not enough. You need the date each lead moved into each stage.
  5. Closed deals and their value. Revenue, or an agreed value, per deal, with the date it closed.
  6. The join and the definitions. One set of SQL tables that ties click to call to CRM record to deal, and one written definition of “qualified lead” and “closed deal” that your sales lead has signed off.
  7. The way back and the reports. Stages and values go back to Google Ads and Meta as conversions, and reports sit in Looker Studio or whatever your team already opens.

In our own builds this is the Lead-to-Sale Data Stack: ad click, call, CRM and closed deal, in BigQuery. The better the signals you send Google, the better the result. Simple as that.

If you only need one CRM stage sent back to Google Ads, you may not need a warehouse yet. Our guide to hiring an agency for offline conversion tracking covers that lighter setup.

What should the agency hand over?

Ask for these in writing before you sign. Two of the agencies below list some of them on their own sites, and we say which.

  • The Google Cloud project, owned by you. Kodelytics’ page says it’s “provisioned in your Google Cloud organization and billed to you directly”. Fire Pixel’s says “It sits in your Google Cloud project.”
  • Documented datasets and a metric definitions document. Kodelytics lists both in its handover.
  • The join logic as readable SQL in version control. Someone else should be able to take it over.
  • Pipelines with alerts. A broken connector should show up in a message on Monday, not in the next quarterly review.
  • The CRM stage map. Written down, with your sales lead’s name against it.
  • A reconciliation. Totals from the stack next to the ad platforms and the CRM, with each gap explained.
  • A running cost estimate. For the cloud project and any connectors, and who pays each one.
  • Conversions sent back to the ad platforms, with a place where you can see them arrive.
  • Read access for your own people. You shouldn’t need the agency to open your own data.

If the agency owns the project, you’re renting your own history. That’s the first thing to settle.

How can you tell a good agency for a BigQuery data stack?

Here’s how I’d test one on a first call. Five questions, and the answers tell you more than the portfolio does.

  1. Whose project does it live in? It should be yours, with you as owner from day one. If it’s the agency’s, you lose the history the day you leave.
  2. Can they draw the join? Ad click, to call, to CRM record, to closed deal. A dashboard shows a result. The join shows how the result was made, and an agency that built it can draw it without notes.
  3. What happens when a lead closes months after the click? Real sales cycles run long. The stack has to update the old rows and send the new stage back to the ad account while the platform will still accept it.
  4. What will you see in the first 30 days? A first number you can check against your own CRM. If the first month is only plumbing, you can’t tell whether it works.
  5. Who does the work, and who reads the report? A named person builds it, and someone sits down with your sales team every month to read it. The tools are standard: BigQuery, GA4, Looker Studio. The edge is planning what to measure.

An agency that promises your data will be perfect hasn’t opened it yet. In 9 years I’ve never met one client whose tracking was perfect. Not one.

How did we pick the agencies?

Search for this and you find plenty of agencies that mention BigQuery in a blog post, and very few that say they build the stack. An agency had to pass five tests on its own site:

  1. It says it builds a BigQuery warehouse or pipelines for clients, on a service or case study page.
  2. It names marketing, ad platform, CRM or call data as what goes in.
  3. It says where it’s based, at least the country.
  4. Its pages talk about marketing and ad data, not only product or finance analytics.
  5. We could read the page live on 12 November 2026, without a login or a form.

Four is a short list. Other agencies may do this work without saying so on their site, and we could only list what we could read. We read pages from several more agencies and left them out because the pages didn’t say they build it, or we couldn’t open them. That says something about their websites and nothing about their work.

We read each agency’s own pages on 12 November 2026 and wrote down what they say. Every fact in the agency blocks comes from those pages, and each block links to its source. The “Best for” and “Check on the first call” lines are our reading and ours alone. We don’t compare prices here. Ask each agency for a quote that lists what’s included.

About nn.partners being on this list. nn.partners is one of the agencies on this list. It’s our blog, the order is alphabetical, and our block uses the same format as the others, including who we’re a poor fit for. The five tests are ours, so read them as one agency’s view and check each source link yourself.

Which agencies build a BigQuery data stack for ad attribution?

The order is alphabetical and carries no rating.

Fire Pixel: a client-owned warehouse for ad, analytics and ecommerce data

Fire Pixel’s data warehouse page says it builds “A BigQuery warehouse with the agreed advertising, analytics, commerce, CRM and lifecycle sources landing on a schedule.” It lists Google Ads, GA4, Microsoft Advertising, Meta Ads and Klaviyo as scheduled loads, plus a CRM or call platform, and says the warehouse “sits in your Google Cloud project.” The footer gives Limerick, Ireland and Sheffield, UK, and says Fire Pixel is a trading name of CopperChunk Limited. The page names no clients.

Best for: lead-gen or ecommerce businesses that want ad, analytics, store, email and CRM data in one warehouse they own.

Check on the first call: ask how call outcomes and closed revenue get into the warehouse. The page lists CRM lead stages, call outcomes and later commercial value as a source, but its worked example is an ecommerce reference layer, so ask to see a lead-gen build. It shows no client work.

Kodelytics: a marketing data warehouse with the handover spelled out

Kodelytics’ marketing data warehouse page says the warehouse “consolidates ad platform, analytics, call tracking, and CRM data into one queryable store” and is normally built on BigQuery. The listed handover includes documented datasets, scheduled pipelines with alerting, a semantic model in version-controlled SQL and a metric definitions document. It gives Kanata, Ottawa, says it serves Canada and the United States, and shows “Last updated 28 August 2026.” Its footer says it was incorporated in Ontario in February 2026. The page names no clients.

Best for: companies in Canada or the US that want the handover written out before they sign.

Check on the first call: the page names no specific ad platforms or CRMs, so ask which ones it has connected before. It also says “booked revenue”, so ask how that’s defined and whether it matches your closed deals.

Measurelab: marketing data pipelines into BigQuery

Measurelab calls itself a “UK-based, independent marketing data infrastructure, analytics and AI consultancy” on its home page. Its pages say “We build the pipelines and integrations with your BigQuery data warehouse” and “We connect marketing activity to leads, sales, retention and customer value.” Its University of Exeter case study (dated 11 December 2025) says Exeter “connected marketing interactions with application and enrolment records.” It lists Google Cloud and Google Marketing Platform partner status. The pages we read name no city.

Best for: organizations that want a Google Cloud partner and named case studies to read first.

Check on the first call: its home page has a story headed “Ad click to confirmed enrolment” with the line “Media, web and CRM in one view”, which matches the Exeter case, but that case study doesn’t name BigQuery. Ask which ad platforms it joined and where the join runs.

nn.partners: the Lead-to-Sale Data Stack

We build the Lead-to-Sale Data Stack: ad click, call, CRM and closed deal in one BigQuery project, kept in your own Google Cloud account. Our stack covers GA4, Google Tag Manager and server-side tagging, Google Ads, the Meta conversions API, Microsoft Ads, CallRail, BigQuery and Looker Studio. We’re a Google and Meta Partner. For one client with a sales team, after the work on which events get recorded and sent to the ad account, the share of its highest-value leads grew from 10% to 30%. You can read more on our data warehouse page and our conversion tracking page.

Best for: lead-gen businesses and online schools with a sales team that spend about $30K a month or more on ads and want tracking and the data behind it built together.

Poor fit: a shop that sells straight from the cart with no sales team, or an account well below that spend, is better served by a lighter setup.

Check on the first call: hold us to the same five questions above. The 10% to 30% result is our own claim; ask us how it was measured.

How do the agencies compare?

AgencyBased inWhat its site says it buildsSources its site namesBest forSource
Fire PixelLimerick, Ireland and Sheffield, UKA BigQuery warehouse in the client’s Google Cloud projectGoogle Ads, GA4, Microsoft Advertising, Meta Ads, Klaviyo, CRM or call platform, ecommerceAd, analytics, store, email and CRM data in one place, for lead gen or ecommercefirepixel.co.uk
KodelyticsKanata, Ottawa, CanadaA marketing data warehouse, normally on BigQuery, in the client’s cloud projectAd platforms, analytics, call tracking, CRM (none named)Handover written out up frontkodelytics.ca
MeasurelabUK (city not named)Pipelines and integrations into the client’s BigQuery warehouseMedia, web, CRM, leads, salesGoogle Cloud partner with named case studiesmeasurelab.co.uk
nn.partnersPortugalLead-to-Sale Data Stack in the client’s Google Cloud accountAd click, call, CRM, closed dealSales-team businesses at about $30K a month or morenn.partners

What should you do before you call anyone?

  • Write down your CRM stage names, and where a lead’s source and click ID are stored. If the form doesn’t save the click ID, say so up front.
  • List your ad accounts and who owns each one. The accounts should be in your name.
  • Ask your sales lead what a qualified lead and a closed deal mean to them, in one sentence each.
  • Decide which question the stack has to answer first, such as which campaigns bring deals and not only leads.

FAQ

What is a BigQuery data stack for ad attribution?

It’s a set of tables in Google BigQuery that holds your ad platform data, website and call data, CRM records and closed deals, joined on the click ID. It lets you see which campaign, keyword or ad led to which sale, and it can send those outcomes back to the ad platforms.

Do I need BigQuery, or can I send CRM data straight to Google Ads?

You can send CRM stages to Google Ads without a warehouse. Our post From Ad Click to Closed Deal covers when BigQuery earns its place.

Who should own the Google Cloud project?

You should. Ask for the project to be created in your Google Cloud organization and billed to you, with the agency given access. Two of the agencies on this page say that’s how they work on their own sites.

What should I see in the first month?

A first number you can check against your own CRM. We’d ask any agency for a date for that number before signing.

Why are only four agencies listed?

We listed agencies whose own sites say they build a BigQuery stack that takes in marketing and CRM or call data, and that we could read on 12 November 2026. Other agencies may do the same work without saying so online.

Does nn.partners build this?

Yes. It’s the Lead-to-Sale Data Stack, and our data audit is the first step. It shows within 48 hours of access where your ad numbers and your CRM numbers split.

Where should you start?

Read the series first if you haven’t: why owning the data matters, how to measure cost per sale and what owning the data changed by industry. Our data warehouse page explains what we build.

Want us to check yours? Our data audit shows within 48 hours of access where the numbers in your ad accounts and your CRM split, and what it would take to join them. Everything we build stays in your own accounts, and you keep the report whatever you decide.

By Nik Vdovenko, founder of nn.partners. Google and Meta Partner, top 1% of PPC agencies on Upwork, 9 years in paid media and measurement, $10M+ in ad spend managed.

Last checked: 12 November 2026. Every fact about another agency comes from that agency’s own site, read on that date. Agencies change their sites, and we’ll fix a line that has gone out of date on the next check.

Sources

Next step

Let's start with your numbers.

Book your data audit. We'll go through your goals, your accounts and your tracking, and show you the first thing we'd fix.

Book your data audit

Your account Step 1 of 2

Tell us a bit about your account. We’ll come prepared with a real look at what’s leaking.

Monthly ad spend
Platforms that you use Optional

48-hour turnaround after getting access.

We use what you send to reply to you and prepare your audit. See our Privacy Policy.

Book a strategy call directly