E-Commerce Source Attribution: Differences Between Live API and BigQuery Export in GA4 Auditor
The GA4 Auditor offers two reports for e-commerce source attribution:
- Live API Report (under “Live API Checks > E-Commerce > Source Attribution”)
- BigQuery Export Report (under “BigQuery Export > E-Commerce > Source Attribution”)
Both reports analyze the same question: Which marketing channels can be attributed to e-commerce transactions? Nevertheless, they show different values in practice. This article explains why these differences arise and how to interpret them correctly.
Overview: Comparing the two reports
| Property | Live API Report | BigQuery Export Report |
|---|---|---|
| Data Source | GA4 Data API | BigQuery raw data |
| Field for attribution | sessionDefaultChannelGroup | session_traffic_source_last_click |
| Data freshness | Near real-time | Daily + Intraday combined |
| Attribution status | Can change 24-72h after event | Finalized at the time of export |
| Classification | “Direct” summarizes several categories | Granular differentiation possible |
| Use case | Quick overview | Detailed error analysis |
The data sources in detail
Live API Report: GA4 Data API
The Live API Report in GA4 Auditor retrieves data via the official GA4 Data API. This API:
- Provides pre-aggregated report data, as it also appears in the GA4 interface
- Uses the dimension
sessionDefaultChannelGroupfor channel assignment - Automatically applies Google’s standard channel grouping rules
- Takes into account subsequent attribution corrections by Google (e.g., conversion modeling)
The report shows the proportion of transactions that could be assigned to a source (“Assigned”) versus the proportion without a clear assignment (“Direct / Unassigned”).
BigQuery Export Report: Raw Data Analysis
The BigQuery Export Report analyzes the event-level raw data directly in BigQuery. The GA4 Auditor uses:
- The field
session_traffic_source_last_click.cross_channel_campaign.default_channel_groupfor the channel - Additional fields such as
source,medium,campaignfor deeper analyses - A combination of Daily Export (
events_*) and Intraday Export (events_intraday_*)
The report differentiates between different problem categories, enabling targeted error analyses.
Why the values differ: Technical reasons
1. Different Attribution Fields
The most fundamental difference lies in the data fields used:
Live API Report:
sessionDefaultChannelGroup (Dimension of the Data API)
BigQuery Export Report:
session_traffic_source_last_click.cross_channel_campaign.default_channel_group
Although both fields should provide the same information, they differ in processing:
- The Data API uses Google’s internally processed and enriched data
- The BigQuery Export contains the values “frozen” at the time of export
- The Data API may contain subsequent corrections through Google Ads conversion modeling
2. The 72-Hour Attribution Delay
Attribution in GA4 is not static. It can change up to 72 hours after the event:
Reasons for subsequent attribution changes:
- Google Ads Conversion Modeling: Google uses machine learning to attribute conversions even with cookie blocking or cross-device journeys
- Data Processing Pipeline: Google’s backend processes data in batches, with attribution calculations occurring with a time delay
- Consent Mode Modeling: For users without tracking consent, GA4 models the likely source
Practical impact in the GA4 Auditor:
- The Live API Report shows the current attribution, which may still change
- The BigQuery Export Report shows the attribution finalized at the time of export
For data from the last 24-72 hours, the Live API Report may therefore show more “Direct”, while the BigQuery Report (after finalization) shows a better assignment.
3. Classification of “Direct” and “Unassigned”
The reports classify problematic attribution differently:
Live API Report – Broad Definition:
The report summarizes the following under “Direct / Unassigned”:
Direct(direct)(not set)Unassigned(other)
This summary provides a quick overview of the proportion of unassigned transactions.
BigQuery Export Report – Granular Differentiation:
The report differentiates between:
- Assigned (attributed_ok): Transaction has a clear channel
- Direct without session_start: Technical problem – the session_start event is missing
- Direct with Referrer: Suspicious – a referrer is present, but the channel is “Direct”
- Direct with GCLID: Possible cross-domain problem – a Google Ads Click-ID is present
- Unassigned / (not set): Channel could not be assigned
This differentiation enables targeted error analyses and shows where tracking problems can be resolved.
4. Intraday vs. Daily Export in the BigQuery Report
The GA4 Auditor combines both export types in the BigQuery Report:
Daily Export (events_YYYYMMDD):
- Data is exported approximately 24-48 hours after the end of the day
- Attribution is finalized at the time of export
- This data no longer changes
Intraday Export (events_intraday_YYYYMMDD):
- Data is available in near real-time
- Attribution values are preliminary
- Tables are deleted after completion of the Daily Export
Deduplication logic in the GA4 Auditor:
-- Simplified representation WITH combined AS ( SELECT *, 'daily' as source FROM events_* UNION ALL SELECT *, 'intraday' as source FROM events_intraday_* ) SELECT * FROM combined QUALIFY ROW_NUMBER() OVER ( PARTITION BY event_name, event_timestamp, user_pseudo_id ORDER BY CASE source WHEN 'daily' THEN 1 ELSE 2 END ) = 1
Daily data is preferred. Intraday data is only used for time periods that have not yet been finalized.
Typical discrepancies and their interpretation
| Observation | Likely cause | Recommendation |
|---|---|---|
| Live API shows more Direct than BigQuery | Attribution not yet finalized (72h delay) | Analyze period without last 72h |
| BigQuery shows a lot of “Direct without session_start” | session_start event is not triggered | Check tracking implementation |
| BigQuery shows “Direct with Referrer” | Referrer exclusion list incomplete | Check GA4 property settings |
| BigQuery shows “Direct with GCLID” | Cross-domain tracking problem | Check linker configuration |
| Large differences in Google Ads Attribution | Conversion modeling only in Data API | Prefer Data API for Ads analysis |
Recommendations for using both reports
When to use the Live API Report?
- Quick overview: Current status of attribution at a glance
- Daily monitoring: Recognize trends (with awareness of 72h delay)
- Google Ads Analysis: Contains the modeled conversions
When to use the BigQuery Export Report?
- Detailed error analysis: What kind of problems exist?
- Tracking debugging: Why are transactions not assigned?
- Historical analyses: Finalized data for consistent time series
Best Practices
- Keep time periods comparable: Compare both reports only for time periods that are at least 72 hours in the past
- Use both reports in a complementary manner:
- Live API for a quick overview
- BigQuery for deep debugging
- Use debug queries: The BigQuery Report offers copy-&-paste queries for detailed analyses in the BigQuery console
- Note the information boxes: Both reports show information about the data source and its limitations
Conclusion
The differences between the Live API Report and the BigQuery Export Report in the GA4 Auditor are not a mistake, but the result of different data sources and processing times. Both reports have their justification:
- The Live API Report shows the current Google attribution and is ideal for quick overviews
- The BigQuery Export Report enables granular error analyses and shows where tracking problems specifically lie
For a complete attribution analysis, it is recommended to combine both reports: The Live API Report identifies whether a problem exists. The BigQuery Export Report shows what kind of problem it is and how it can be resolved.