Operations & Data · Draft

Data and Tracking Strategy

Created 9 Jun 2026·Updated 11 Jun 2026

Latest change: Publish Dossier site and full doc pack to GitHub

Draft document — deep-dive spec incomplete; content will be updated before and during build. Do not treat as signed-off implementation detail. Pack overview

Principles

  1. GA4 is the source of truth for cross-channel measurement and optimization.
  2. First-party first — server-side tagging, consent-aware, cookieless-ready.
  3. Closed loop — CRM outcomes flow back to ad platforms via offline conversions and CAPI.
  4. Deduped events — online and offline share event_id where platforms support it.

BigQuery warehouse responsibility

Data source Who owns the account / property BigQuery export operated by Kobi responsibility
Google Ads Kobi MCC (agency-owned) Kobi → Kobi GCP BigQuery Yes — export all managed ad accounts for reporting, optimization joins, invoicing support
GA4 Client-owned (preferred) or client GCP Client (optional, on their project) No — Kobi does not operate client GA4 → BigQuery export
MMP (Adjust, AppsFlyer, Branch, etc.) Client Client (optional) No — Kobi does not operate MMP → BigQuery export
Agent / ops telemetry Kobi Kobi Yes — QC, Cost Guard, audit (see System Ops)
Meta / TikTok / DV360 Kobi agency accounts API → Kobi warehouse (Phase 2+) Planned — same pattern as Google Ads where accounts are Kobi-owned

GA4 as SoT without client BQ: Kobi reads GA4 via Analytics Data API (and linked Google Ads data in GA4 UI where configured). Client may enable GA4 BigQuery export on their GCP for their own analytics — that pipeline is outside Kobi scope unless separately contracted.

Google Ads → BigQuery (Kobi): Use BigQuery Data Transfer Service for Google Ads and/or scheduled Google Ads API extracts into datasets such as google_ads_raw (partitioned by tenant_id / customer_id). Accounts are under Kobi MCC — export is agency infrastructure, not client deliverable.

Architecture

client-owned exportAnalytics Data APIData Transfer / APIlinked conversionsClient WebsiteGTM / sGTMGA4 client propertyClient BQ GA4 / MMPoptionalKobi BQCRMConversion TrackingServiceGoogle Ads Kobi MCCMeta CAPITikTok Events API

Tagging deployment

Layer v1 Phase 2+ (optional)
Kobi tagging spec Event names, parameters, UTM schema Same
Client site Implementation guide — manual tags or GTM import template Kobi Relay: CNAME + one k.js loader — see First-party tag relay
Server fan-out Conversion Tracking Service → CAPI / Events API Relay edge → same APIs + first-party cookies
Hosted sGTM Not in v1 scope Alternative SKU for GTM-native clients
Consent Mode v2 Required for EEA/UK Enforced in loader + relay

UTM & attribution

Full spec: UTM & attribution spec

Track Vendors URL params
Google Ads Search, Display, Shopping, PMax, YouTube No utm_* — auto-tagging + GA4 ↔ Ads link
Google + CRM SKU Same Custom only: kcid, kpv (+ gclid on forms) — never utm_
Meta / TikTok Social Full utm_* with dynamic macros; campaign ID in utm_campaign

Join GA4 to platforms: campaign ID first (Google via Ads link / gclid; social via utm_campaign).

Click ID capture

  • Store gclid, gbraid, wbraid, fbclid, ttclid in CRM on form submit
  • Pass through to offline conversion uploads

CRM → platform pipelines

Batch path

  1. CRM exports qualified events (scheduled or webhook)
  2. Conversion Tracking Service validates schema
  3. Hash PII per platform rules
  4. Upload to Google offline conversions / Meta CAPI / TikTok Events API
  5. Log upload receipt + match metrics

Real-time path (preferred for high-value events)

  • Webhook → CTS → immediate CAPI with < 1h delay target

Feed management (data adjacent)

  • Product feeds validated before Merchant Center / Meta catalog sync
  • Field mapping documented per vertical
  • Error dashboard feeds human queue

Quality monitoring

Metric Threshold Action
GA4 event volume DoD change -30% Alert, block spend up
CAPI EMQ < 6.0 Alert ops
Offline match rate < 50% CRM field audit
Feed critical errors > 0 Block catalog ads

Privacy

  • Hash PII before platform send
  • Data processing agreements with clients
  • Minimize PII in warehouse; use tenant_id + hashed keys