ga4-export-fixer 0.3.2-dev.4 → 0.4.1-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/columns/tableAgentInstructions.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,6 +32,7 @@ The **ga4_events_enhanced** table comes with features such as these:
|
|
|
32
32
|
- **Best available data at any time** – Combines daily (processed), fresh (360), and intraday exports so the most complete, accurate version of the data is always available
|
|
33
33
|
- **Robust incremental updates** – Run on any schedule (daily, hourly, or custom)
|
|
34
34
|
- **Flexible schema, better optimized for building data models** – Keeps the flexible structure of the original export while promoting key fields (e.g. `page_location`, `session_id`) to columns for better query performance; **partitioning and clustering** enabled
|
|
35
|
+
- **AI agent ready** – Extensive table description and detailed column descriptions (including lineage, configuration context, and typical use examples) make the data understandable for both AI agents (e.g. BigQuery data agents) and humans
|
|
35
36
|
- **Session-level identity resolution** – `user_id` resolved to the last authenticated value per session; `merged_user_id` coalesces it with `user_pseudo_id`
|
|
36
37
|
- **Session traffic sources** – `session_first_traffic_source` and session-scoped `session_traffic_source_last_click` (adjusting for sessions that span midnight) computed automatically
|
|
37
38
|
- **Landing page detection** – `landing_page` derived per session from the first page where `entrances > 0`
|
|
@@ -45,7 +46,6 @@ The **ga4_events_enhanced** table comes with features such as these:
|
|
|
45
46
|
- **Selective date range re-processing** – Re-process a subset of data without a full table rebuild, using `incrementalStartOverride` and `incrementalEndOverride`
|
|
46
47
|
- **Batch processing** – Process large GA4 exports in smaller batches using the `numberOfDaysToProcess` configuration setting
|
|
47
48
|
- **Timezone-aware datetime** – `event_datetime` converted to a configurable IANA timezone
|
|
48
|
-
- **Column descriptions** – Full column-level documentation included in the Dataform table configuration, reflecting the specific configuration used to build the table
|
|
49
49
|
- **Zero dependencies** – The package has no external dependencies and will not add any additional packages to your Dataform repository
|
|
50
50
|
|
|
51
51
|
### Planned, Upcoming Features
|
|
@@ -78,7 +78,7 @@ Include the package in the package.json file in your Dataform repository.
|
|
|
78
78
|
{
|
|
79
79
|
"dependencies": {
|
|
80
80
|
"@dataform/core": "3.0.42",
|
|
81
|
-
"ga4-export-fixer": "0.
|
|
81
|
+
"ga4-export-fixer": "0.4.0"
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
```
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
{"text": "For session metrics: GROUP BY session_id.", "dependsOn": ["session_id"]},
|
|
131
131
|
{"text": "For transaction-level ecommerce revenue: filter WHERE event_name = 'purchase' before aggregating ecommerce.purchase_revenue.", "dependsOn": ["ecommerce"]},
|
|
132
132
|
{"text": "For product-level analysis: CROSS JOIN UNNEST(items) WHERE event_name = 'purchase'. Use items.item_revenue for product revenue, items.quantity for units sold, items.item_category for product categories.", "dependsOn": ["items"]},
|
|
133
|
-
{"text": "For traffic source analysis: use session_traffic_source_last_click.cross_channel_campaign.primary_channel_group for
|
|
133
|
+
{"text": "For traffic source analysis: use session_traffic_source_last_click.cross_channel_campaign.primary_channel_group for high-level traffic source information", "dependsOn": ["session_traffic_source_last_click"]},
|
|
134
134
|
{"text": "Nested arrays (event_params, items): use CROSS JOIN UNNEST(...) to access individual values.", "dependsOn": []},
|
|
135
135
|
{"text": "Use data_is_final = true to exclude data that may still change in future refreshes.", "dependsOn": []}
|
|
136
136
|
],
|