Lifecycle · Draft
Reporting
Objective
Deliver accurate, unified reporting to clients and internal ops — anchored on GA4 as source of truth, enriched with platform diagnostics and CRM outcomes.
Audiences
| Audience | Views |
|---|---|
| Client | KPI dashboard, spend, conversions, simple narrative |
| Operator | Reconciliation, anomalies, approval backlog context |
| Leadership | Portfolio roll-ups across tenants (internal) |
Attribution joins
Campaign-level reports join GA4 to platform cost/spend using platform campaign ID first (utm_campaign macros), then click IDs, then normalized name — targets ≥ 95–98% match — UTM & attribution spec.
Meta CPAS (Collaborative Ads) — Phase 2: conversions occur on marketplace PDPs, not the client site. CPAS campaigns use shared-item / catalog-segment metrics from Meta Insights (catalog_segment_value, converted_product_value, segment ROAS) as primary KPIs — not GA4-first. See Meta CPAS spec.
Data sources
| Source | Role | Kobi operates BQ export? |
|---|---|---|
| GA4 (Analytics Data API) | Primary metrics — source of truth | No — read via API; client may run their own GA4→BQ separately |
| Google Ads (Kobi BQ + API) | Spend, structure, platform diagnostics; join to GA4 | Yes — agency-owned accounts exported to Kobi BigQuery |
| Meta / TikTok / DV360 | Spend, diagnostics (secondary to GA4) | Planned — API → Kobi warehouse as connectors mature |
| Meta CPAS (Phase 2) | Shared-item / catalog-segment conversion metrics on marketplace SKUs | Planned — Insights API; not GA4-primary |
| MMP | App attribution (if client uses) | No — client-owned; out of scope unless future integration |
| CRM | Pipeline, qualified leads, revenue | Internal CRM API — not platform BQ |
| Internal audit log | Plan versions, human actions | Kobi ops telemetry BQ |
Standard reports
Client weekly
- Active plan tracks — always-on, branding, engagement, active events — each with
vNand approval date - Spend by channel and by track (vs that track's approved plan and vs prior week)
- Plan drift indicator — per track manifest vs plan (highlight if revise recommended)
- Primary KPI vs target
- Top campaigns (GA4-attributed)
- Optimization changelog — per track; what changed, why, auto vs human-approved
- Pending plan revise / replan — per track diff summary if draft
vN+1exists - Upcoming special-day / event plans — scheduled event tracks and budget preview
- Upcoming seasonal or scheduled plan changes
Internal daily ops
- Tracking health panel
- GA4 vs platform variance alerts
- CRM upload status
- Pending human approvals
Monthly executive (per client)
- Trend vs prior month
- Plan version history — v1…vN with revise vs replan labels
- Optimization impact summary — KPI delta attributed to top change sets
- Replan / revise history and approval latency
- Vertical benchmark (when available)
Reconciliation
Automated checks documented in GA4 source of truth:
- Flag when platform conversions exceed GA4 by > tolerance
- Flag CRM qualified leads not matching GA4 lead events (tracking gap)
Reporting Agent
- Schedules report generation
- Detects anomalies (spend spike, conversion drop)
- Builds optimization changelog and plan drift sections from
optimization_log+execution_manifest - Proposes plan revise, full replan, or optimization investigation tickets — does not auto-apply
- After plan
vN+1approved: rebaseline all "vs plan" metrics to new version
Report ↔ plan ↔ optimization data flow
Delivery channels
- Kobi client dashboard (primary)
- Email PDF/export (optional)
- API for parent Kobi platform widgets
Human touchpoints
- Narrative review before client send (configurable auto-send)
- Investigation when reconciliation fails
Cost note (LLM)
Scheduled reports — daily digest, weekly narrative, monthly executive, per-track drift — are generated via Vertex Batch API (50% discount) since they tolerate async completion. Anomaly alerts are real-time (<1h SLA) and run at standard rates. See Agentic orchestration — Batch API for scheduled tasks.
SLA
- Weekly client report: Monday 09:00 tenant local (configurable; batch generated overnight)
- Anomaly alert: < 1 hour from detection (real-time, not batched)