Key Takeaways

  • The GA4 interface confines you to a few pre-built attribution models you can't change, applied to sampled, aggregated data that can't join to your business outcomes.
  • The raw event data in BigQuery gives you every touchpoint of every journey, so you can build any multi-touch attribution model you want.
  • The most powerful capability is joining attribution to your CRM, order, and cost data — attributing real revenue and profit, not just on-site conversions.
  • Build custom attribution by reconstructing each journey from the event data and applying your attribution logic (custom rules, weightings, or data-driven models) in SQL.
  • Custom attribution tailored to how your customers actually convert is far more useful than any generic pre-built model.
  • But all attribution from observational data assigns credit by correlation, not causation — so it improves on the interface but still needs incrementality experiments for true causal measurement.

Why the Interface's Attribution Isn't Enough

The GA4 interface offers attribution, but it confines you to a handful of pre-built attribution models that you can pick among but cannot change, applied to sampled and aggregated data that cannot connect to your actual business outcomes — and these limitations make the interface's attribution inadequate for serious analysis. You can select from the models Google provides, but you cannot build a model tailored to how your specific customers actually convert, so if none of the pre-built models reflects your reality, you are stuck approximating with a model that does not fit. And because the interface's data is sampled and aggregated and isolated from your business data, even the attribution it provides is limited in precision and cannot connect the attributed conversions to what they were actually worth to your business.

The deeper inadequacy is that the interface's attribution answers only 'how should credit be distributed among on-site conversions using one of Google's models', when the questions that actually matter require both a model that fits your reality and a connection to your real business outcomes. You want to know which channels drive valuable customers (not just on-site conversions), attributed in a way that reflects how your customers really convert, and connected to the revenue and profit those customers generate — none of which the interface's pre-built-model-on-isolated-data attribution can provide. So the interface's attribution, while a starting point, is inadequate for the attribution questions that genuinely inform business decisions, which require custom models on your real data joined to your business outcomes.

This inadequacy is exactly what the raw event export to BigQuery addresses, because it gives you the raw material — every touchpoint of every journey, at the event level — to build your own attribution, tailored to your reality and joined to your business data. Where the interface confines you to pre-built models on isolated, sampled data, the raw export in BigQuery gives you the full journey data to build any model you want and to join it to your CRM, order, and cost data — which is what lets you answer the attribution questions the interface cannot. So the move to BigQuery for attribution is the move from being confined to inadequate pre-built models on isolated data to being able to build the custom, business-connected attribution that actually informs decisions, which is why serious attribution analysis eventually requires the raw data. Understanding why the interface's attribution is not enough — confined models, isolated sampled data — is what motivates building your own attribution on the raw data, as the rest of this guide covers.

What the Raw Event Data Enables

The raw event data GA4 exports to BigQuery enables custom attribution because it contains the full detail of every journey — every touchpoint, every event, with all its parameters — which is the raw material from which any attribution model is built. Attribution is fundamentally about how to distribute credit among the touchpoints in a customer's journey, so building attribution requires knowing the full journey (all the touchpoints and their sequence), which is exactly what the raw event data provides: the complete, event-level record of every interaction in every journey, from which you can reconstruct each customer's path and apply whatever attribution logic you choose. With the full journey data, you are no longer confined to pre-built models on aggregated data; you have the granular journeys to build custom models on.

The first thing the raw data enables is any attribution model you want, because with the full journey data you can apply any logic for distributing credit — the standard models (first-touch, last-touch, linear, time-decay, position-based) if you want them, but also custom models tailored to how your customers actually convert, weighted according to your understanding of which touchpoints matter, or data-driven models that learn credit distribution from patterns in your data. You are not limited to Google's pre-built models; you can build the model that fits your reality, which is the first major advantage of building attribution on the raw data. If you understand that certain touchpoints in your funnel matter more than a generic model assumes, you can build that understanding into your custom attribution, which no pre-built model allows.

The second and more powerful thing the raw data enables — especially once joined to your business data — is attributing real business outcomes, not just on-site conversions, which is where custom BigQuery attribution delivers its greatest value. Because you can join your GA4 event data to your CRM, order, and cost data in BigQuery, you can attribute not just the on-site conversion but the real revenue and profit the customer generated, connecting the journey touchpoints to what the customer was actually worth to the business. This means your attribution can answer which channels drive valuable, profitable customers — not just which channels touched a conversion — by connecting the full journey to the real business outcome, which is exactly the attribution that informs budget decisions. The raw event data thus enables both custom models (fitting your reality) and business-outcome attribution (connecting to real value), which together make BigQuery attribution far more powerful than the interface's confined, isolated attribution — the foundation of genuine revenue operations attribution.

Building Custom Multi-Touch Attribution

Building custom multi-touch attribution on the raw event data is a two-part process: reconstructing each customer's full journey across touchpoints from the event data, and applying your chosen attribution logic to distribute credit across those touchpoints — both done in SQL on the BigQuery data. The first part, journey reconstruction, involves querying the event data to assemble, for each customer or conversion, the sequence of touchpoints that led to it — the channels, campaigns, and interactions in order — from the raw events. This requires understanding how GA4 structures its exported event data and writing the SQL to reconstruct the journeys from it, which is a genuine data-engineering task, but it produces the journey data (each conversion with its full sequence of touchpoints) that attribution is applied to.

The second part, applying attribution logic, involves defining how credit is distributed across the touchpoints in each journey and implementing that logic in SQL. This is where you choose and build your model: a simple model (like distributing credit equally across touchpoints, or weighting by position or recency), a custom model (weighting touchpoints according to your understanding of your funnel), or a more sophisticated data-driven approach (distributing credit based on patterns learned from your data about which touchpoints are associated with conversion). Whatever logic you choose, you implement it as SQL that takes the reconstructed journeys and distributes credit across their touchpoints according to your model, producing attributed credit by channel or campaign. The flexibility to define the logic however you want is the whole point of building custom attribution — you build the model that fits your reality rather than accepting a pre-built one.

The power of building it yourself is that you can tailor the model to how your customers actually convert, which makes the attribution genuinely useful rather than a generic approximation. If your analysis of your journeys reveals that certain touchpoints (say, a particular early-funnel channel) play a bigger role than a generic model would credit, you can build a model that reflects that, so your attribution captures your real conversion dynamics. And because you are building it on your own data with your own logic, you understand exactly how it works and can adjust it as you learn, rather than relying on an opaque pre-built model. This tailoring — building attribution that reflects your actual customer journeys and your understanding of them — is what makes custom BigQuery attribution more useful than the interface's models, provided you invest the data-engineering effort to reconstruct the journeys and implement the logic well. Building custom multi-touch attribution is genuine analytical work, but it produces attribution fitted to your reality, which is far more valuable than a generic model that may not reflect how your customers actually convert.

Joining to Business Outcomes

The single most valuable thing you can do with custom attribution in BigQuery is join it to your business outcomes — your CRM, order, and cost data — so that you attribute real revenue and profit rather than just on-site conversions, because this is what turns attribution from a web-analytics exercise into genuine business intelligence. The GA4 event data tells you the journey and the on-site conversion, but the on-site conversion is not the same as the business outcome: what you really care about is which channels drove valuable, profitable customers, which requires knowing what each customer was actually worth (their real revenue, their margin, their lifetime value), and that lives in your business data, not your web analytics. By joining your business data to your attribution in BigQuery, you connect the journey touchpoints to the real business outcome, so your attribution tells you which channels drive real value.

This join transforms what your attribution can tell you, elevating it from 'which channels touched on-site conversions' to 'which channels drive profitable customers'. When you attribute real revenue and profit (from your order and cost data) rather than on-site conversions, and especially when you connect to customer lifetime value (from your customer data), your attribution can answer the questions that actually drive budget decisions: which channels bring in the customers with the highest lifetime value, which channels drive profitable customers after accounting for their costs and margins, which channels merely touch cheap conversions versus which drive real business value. These are the attribution questions that matter for allocating budget, and they all require joining the attribution to the real business outcomes, which BigQuery enables and the interface precludes.

The join is also what makes the whole custom-attribution effort worthwhile, because attribution of on-site conversions alone (even with a custom model) is far less valuable than attribution of real business outcomes, so the business-data join is where custom BigQuery attribution delivers most of its value. A custom model attributing on-site conversions is an improvement over the interface's models, but a custom model attributing real revenue and profit, connected to customer value, is a genuinely powerful business tool that tells you where your valuable customers come from — which is the attribution that actually improves decisions. So the priority in building custom attribution should be to get to the business-outcome join, because that is where the value is, and attribution that stops at on-site conversions leaves most of the value unrealized. Joining your attribution to your business outcomes — attributing real revenue, profit, and customer value, not just on-site conversions — is what makes custom BigQuery attribution deliver the business intelligence that justifies building it, and it is the capability that most distinguishes it from the interface's isolated, on-site-conversion attribution.

The Limits of Any Attribution

For all the power of custom, business-connected attribution, it is essential to understand a fundamental limit that applies to it and to all attribution built from observational data: attribution assigns credit based on the correlation between touchpoints and conversions, not on the actual causal contribution of each channel, so it cannot tell you what each channel truly caused. Attribution — whether the interface's pre-built models or your sophisticated custom model — looks at the touchpoints that appear in converting journeys and distributes credit among them, but appearing in a converting journey does not mean a touchpoint caused the conversion. A touchpoint might be present because it correlates with conversion (it targets people already likely to convert) rather than because it caused it, so attribution can credit a channel for conversions it did not cause, no matter how sophisticated the model, because it is distributing credit based on presence and patterns, not on causation.

This limit is not a flaw in your implementation but an inherent property of attribution as a method: distributing credit among observed touchpoints, however cleverly, is fundamentally different from measuring what would have happened without a channel (which is causation). Your custom BigQuery attribution, even joined to business outcomes, is still assigning credit based on the observed journeys, so it inherits the correlation-not-causation limit — it is a better lens than the interface's models (custom, business-connected, more granular) but it is still attribution, still credit-assignment from observational data, still unable to distinguish a channel that caused conversions from one that merely correlated with them. Recognizing this keeps you from over-trusting even your sophisticated custom attribution as if it measured causation, which it does not.

The practical implication is that custom BigQuery attribution should be used as a valuable but limited lens, complemented by incrementality experiments that measure causation directly, for the decisions that matter most. Custom attribution gives you a rich, business-connected, tailored view of how credit distributes across your journeys, which is genuinely useful for understanding your funnel and directionally informing decisions — a far better lens than the interface. But for the decisions that most require knowing what a channel actually causes (whether to scale or cut it, what it is really worth), you need incrementality experiments (holdouts, geo tests) that measure causation directly, because attribution of any kind cannot. So the mature approach is to build custom BigQuery attribution as a powerful lens for understanding your journeys and business outcomes, use it directionally, and complement it with incrementality experiments for the causal questions that attribution cannot answer — getting the benefit of rich custom attribution while respecting its inherent limit. Custom BigQuery attribution is a major upgrade over the interface's models, but it is still attribution, and understanding that it assigns credit rather than measures causation is what lets you use it well: as a valuable lens, not as causal truth.

Building It Well: The Practical Approach

Building custom BigQuery attribution well means investing in the data engineering to reconstruct journeys and join business data, building attribution logic that fits your reality, and using the result with honest awareness of its limits — a combination of technical work and analytical discipline. The technical foundation is the data engineering: writing the SQL to reconstruct journeys from the raw event data and to join your CRM, order, and cost data, which is genuine work requiring SQL skill and understanding of both the GA4 export structure and your business data. This is the largest part of the effort and the foundation of everything, because the quality of your attribution depends on reconstructing the journeys correctly and joining the business data accurately, so investing in doing this well is essential.

On top of the data foundation, building attribution logic that fits your reality means choosing or designing a model that reflects how your customers actually convert, informed by your understanding of your funnel and by analysis of your journeys, rather than mechanically applying a generic model. The advantage of custom attribution is that you can build a model tailored to your reality, so realizing that advantage means actually tailoring it — understanding your journeys, building logic that reflects them, and refining it as you learn — rather than just implementing a standard model in SQL (which would give you the standard model's limitations with extra effort). The value is in the tailoring, so invest the analytical thought to build a model that genuinely fits your conversion dynamics.

Finally, using the result well means treating your custom attribution as the valuable-but-limited lens it is, complemented by incrementality experiments for causal questions, so that you get the benefit of rich custom attribution without over-trusting it as causal truth. This means using your custom attribution to understand your journeys and business outcomes, inform your thinking directionally, and identify questions worth testing — while turning to incrementality experiments to answer the causal questions (what a channel actually causes) that attribution cannot. The mature attribution practice combines custom BigQuery attribution (a rich, tailored, business-connected lens for understanding your funnel) with incrementality experiments (for causal measurement) and, ideally, modelling like MMM (for the aggregate cross-channel picture), each contributing what it does well. Building custom BigQuery attribution well — sound data engineering, reality-fitting logic, and honest use complemented by causal measurement — gives you a powerful attribution capability that far exceeds the interface's while respecting the inherent limits of attribution, which is exactly how this genuinely valuable but genuinely limited tool should be built and used. Done well, it is one of the most useful analytical assets a data-serious business can build; done naively (or over-trusted as causation), it is a sophisticated version of the same correlation-not-causation trap that afflicts all attribution.

Methodology & Fairness

A note on how to read this. This is an educational guide published by Fluxsy, a performance marketing partner, so weigh our perspective accordingly. Platform mechanics and privacy rules change frequently; verify the specifics described here against the current official documentation before you implement. Where we name tools, platforms or companies we describe them by their genuine public positioning, not as endorsements. We have avoided inventing statistics, benchmarks or results — the durable value here is the framework and the reasoning, which hold even as the specific implementation details move. Measure against your own data before concluding, because your results depend on your stack, your market and your configuration.

Frequently Asked Questions

Why isn't GA4's built-in attribution enough?
Because it confines you to a handful of pre-built attribution models you can pick among but can't change, applied to sampled and aggregated data that can't connect to your actual business outcomes. If none of the pre-built models reflects how your specific customers actually convert, you're stuck approximating with a model that doesn't fit. And because the interface's data is sampled, aggregated, and isolated from your business data, even the attribution it provides is limited in precision and can't connect the attributed conversions to what they were actually worth. The deeper inadequacy is that it answers only 'how should credit be distributed among on-site conversions using one of Google's models', when the questions that matter require both a model that fits your reality and a connection to your real business outcomes — which channels drive valuable customers, attributed the way your customers really convert, connected to the revenue and profit they generate. The raw event export to BigQuery addresses this by giving you the full journey data to build custom models and join to business data.
What does GA4 raw event data in BigQuery enable for attribution?
Two big things. First, any attribution model you want: with the full detail of every journey (every touchpoint, every event, in sequence), you can apply any logic for distributing credit — the standard models (first-touch, last-touch, linear, time-decay, position-based) if you want, but also custom models tailored to how your customers actually convert, weighted by your understanding of which touchpoints matter, or data-driven models that learn credit distribution from your data. You're not limited to Google's pre-built models. Second, and more powerful, attributing real business outcomes: because you can join your GA4 event data to your CRM, order, and cost data in BigQuery, you can attribute not just the on-site conversion but the real revenue and profit the customer generated, connecting journey touchpoints to what the customer was actually worth. This lets your attribution answer which channels drive valuable, profitable customers — not just which touched a conversion — which is the attribution that informs budget decisions.
How do I build custom multi-touch attribution in BigQuery?
Two parts, both in SQL on the BigQuery data. First, journey reconstruction: query the event data to assemble, for each customer or conversion, the sequence of touchpoints that led to it (the channels, campaigns, and interactions in order) — a genuine data-engineering task requiring understanding of how GA4 structures its exported events. Second, applying attribution logic: define how credit is distributed across the touchpoints in each journey and implement it in SQL. This is where you choose and build your model — simple (equal or position/recency-weighted), custom (weighted by your understanding of your funnel), or data-driven (credit distributed by patterns learned from your data). Whatever logic you choose, you implement it as SQL that takes the reconstructed journeys and distributes credit across their touchpoints. The power of building it yourself is tailoring the model to how your customers actually convert — if your analysis reveals certain touchpoints matter more than a generic model would credit, you build that in — which makes it genuinely useful rather than a generic approximation.
Why is joining attribution to business data so important?
Because it turns attribution from a web-analytics exercise into genuine business intelligence. The GA4 event data tells you the journey and the on-site conversion, but the on-site conversion isn't the business outcome — what you really care about is which channels drove valuable, profitable customers, which requires knowing what each customer was actually worth (real revenue, margin, lifetime value), and that lives in your business data, not your web analytics. Joining your CRM, order, and cost data to your attribution in BigQuery connects the journey touchpoints to the real business outcome, so your attribution can answer the questions that actually drive budget decisions: which channels bring the highest-lifetime-value customers, which drive profitable customers after their costs and margins, which merely touch cheap conversions versus drive real value. A custom model attributing on-site conversions is an improvement over the interface's models, but a custom model attributing real revenue and profit connected to customer value is a genuinely powerful tool — so the business-data join is where most of the value is, and attribution that stops at on-site conversions leaves it unrealized.
What are the limits of custom BigQuery attribution?
The fundamental one, which applies to all attribution from observational data: it assigns credit based on the correlation between touchpoints and conversions, not on the actual causal contribution of each channel, so it can't tell you what each channel truly caused. Attribution — whether the interface's models or your sophisticated custom one — looks at the touchpoints that appear in converting journeys and distributes credit among them, but appearing in a converting journey doesn't mean a touchpoint caused the conversion (it might be present because it correlates with conversion, like retargeting targeting people already likely to convert, rather than because it caused it). So attribution can credit a channel for conversions it didn't cause, no matter how sophisticated the model. This isn't a flaw in your implementation but inherent to attribution as a method. So use custom BigQuery attribution as a valuable-but-limited lens (better than the interface — custom, business-connected, granular) for understanding your journeys and directionally informing decisions, and complement it with incrementality experiments (holdouts, geo tests) that measure causation directly for the decisions that most require knowing what a channel actually causes.