When analyzing data in GA4-BigQuery, you may wonder why the values of collected_traffic_source and session_traffic_source_last_click do not match. These two fields provide valuable information about user paths, but they serve different purposes and can lead to discrepancies.
1. Different Purposes of the Fields
collected_traffic_source indicates the source of traffic for a specific event, while session_traffic_source_last_click replicates the last-click attribution logic from GA4 and captures the last source used by the user before conversion within the session.
2. Reasons for Discrepancies
Since session_traffic_source_last_click is based on last-click attribution logic, it’s essential to understand where discrepancies may arise. Here are a few possible reasons:
Specific Attribution Window Settings: If the attribution window is set incorrectly, some interactions may not be tracked properly. For example, if the window is too long, users may be attributed to sources from a long time ago.
Custom Session Timeout Settings: If you have a short session timeout configured, this might result in new sessions being created too frequently. This can also cause discrepancies between the values of collected_traffic_source and session_traffic_source_last_click.
While session_traffic_source_last_click is a convenient shortcut for attribution calculations, it’s often better to use collected_traffic_source when dealing with complex custom models to gain more accurate insights into user behavior.

If you work with GA4 to BigQuery exports, be sure to check out my SQL cheat sheet.