Skip to content
baachee

Baachee platform · Data products

First-party event tracking that strips personal data before it is stored

A Google Tag Manager server container receives first-party events, validates and enriches them, and forwards them to a partitioned BigQuery table that the data agent and reports query directly.

Client
Server-side tracking
Industry
Marketing analytics
Region
Netherlands
Period
Deployed 2026
standard marketing events
16
BigQuery tools for the agent
7

Challenge

  • Browser-side analytics tags are blocked by extensions, so conversion data goes missing.
  • Raw events arrive duplicated and unvalidated, and personal data can reach the warehouse.
  • Every new analysis starts with rediscovering what was tracked and where it lives.

Approach

  1. 01Events are sent as first-party requests to a GTM server container instead of third-party browser tags.
  2. 02The server validates, enriches and deduplicates each event, and strips personal data before it reaches BigQuery.
  3. 03A standard taxonomy covers navigation, sessions, acquisition, product views, conversions, bot messages, agent queries and errors.
  4. 04Events land in BigQuery partitioned by event date and clustered by event name and session, with the table created from a shared schema definition.
  5. 05Seven MCP tools (query, list tables, schema, funnel analysis, event summary, traffic sources, user journey) expose the data to the agent.

Architecture

  1. 01 · Site or app

    • First-party events
  2. 02 · GTM server

    • Validate
    • Enrich
    • Deduplicate
    • Strip PII
  3. 03 · BigQuery

    • events_* by date
    • Clustered by event, session
  4. 04 · MCP tools

    • Funnel
    • Traffic sources
    • User journey
  5. 05 · Consumers

    • Data agent
    • Reports
Architecture: Site or app (First-party events), then GTM server (Validate, Enrich, Deduplicate, Strip PII), then BigQuery (events_* by date, Clustered by event, session), then MCP tools (Funnel, Traffic sources, User journey), then Consumers (Data agent, Reports).

In production

Collection
first-party server requests
Personal data
stripped server-side before storage
Storage layout
partitioned by event_date, clustered by event_name and session_id
To deploy
BigQuery dataset, GTM server container, two credentials

Stack

  • Google Tag Manager (server-side)
  • BigQuery
  • Model Context Protocol
  • Next.js

Source: Baachee working paper, section “Server-Side Event Collection”, and the event schema in the Text2Report codebase.

Next step

Want this running on your data?

Next case studyMargin-aware quotes with approvals, in hours instead of days