Growth & Digital/001 · Data Tracking & Analytics
EDIT VIA GITHUB · /content
In progress001 · Data Tracking & Analytics

001 · Data Tracking & Analytics

The measurement rail for all three bets — capture → identify → activate: GA4 rebuilt for B2B funnels, platform APIs → Snowflake → Hex, and CRM-stage conversions fed back to the platforms so bidding optimizes toward revenue

WHERE THE WORK HAPPENS
001 · Data Tracking & Analytics in Asana
Tasks, owners, and day-to-day updates live on the Asana board. This page is the summary view.
https://app.asana.com/1/20567807697952/project/1208977213277305
Open in Asana
THE BRIEF
edit content/projects/data-tracking.md

What this is

The measurement rail everything else grades against: the tracking and reporting foundation rebuilt from capture through activation — GA4 and the dataLayer reworked for B2B funnels, one attribution convention end to end, all channel reporting migrated into a warehouse we own, dashboards consolidated on Hex, and every conversion that matters fed back to the ad platforms with value attached. Verto's data & analytics consultant executes SOW §3.5; strategy and the scorecard stay in-house, permanently.

Goal: give every other initiative reliable data to work from — and make bidding optimize toward revenue instead of clicks.

Why now

Three compounding problems made this the first thing Verto touches. The numbers don't reconcile: Outshine's dashboards ran much larger than internal lead counts, their own dashboards disagreed with each other, and cost-per-MQL/SQL metrics were visibly broken — dashboarding was the agency's last distinct value, and no vendor should produce the reporting that grades its own work. The debt is real: roughly 2.5 years of accumulated targeting and tracking debt — inconsistent UTM capture, conversion events that don't reflect priorities, anonymous web intent largely unused. The optimization loop is blind: the conversions that close deals happen in the CRM weeks after the click, so ad platforms keep optimizing for form fills — one audit line says it plainly: 91% of paid conversions came from brand search, paying to harvest demand we already had.

And the H2 bar demands better: treated pages measure lift against locked baselines, which requires GA4 numbers everyone believes first.

The stack decision

Platform APIs → Snowflake → Hex — updated Aug 31, superseding the July PRD's Supermetrics pick from the three-way collector evaluation (Supermetrics vs Funnel.io vs Fivetran). Collection now runs on direct platform-API ingestion per the Platform APIs v1 PRD: no managed-collector layer between the ad platforms and the warehouse, no per-connector vendor dependency, and the connectors ride the same engineering rail as the rest of the stack (built and maintained through the data & analytics lane). The honest trade: connectors are owned code, so maintenance sits with the team rather than a vendor SLA — the PRD carries the connector inventory and refresh cadences. Everything downstream is unchanged: reporting runs in Hex on the warehouse — no parallel dashboard layer — the data lands in Snowflake MCP-queryable (what the reporting agent connects to), remaining Tableau dependencies get killed as Hex consolidation finishes, and the SOW boundary holds: warehouse administration and modelling beyond the marketing datasets stays with the data team.

The method — capture, identify, activate

Verto's measurement-first frame, now ours:

  • Capture — server-side GTM, GA4 configured for B2B funnels rather than e-commerce defaults, an event taxonomy mapped to the buyer journey, data piped to the warehouse for full ownership and zero sampling, and Consent Mode v2 so capture is compliant by design.
  • Identify — first-party identity resolution: cookieless tracking via hashed emails, UserID stitching across sessions, devices, and CRM records, and ICP scoring rules that turn raw lead data into qualified pipeline signal.
  • Activate — offline conversion tracking back to Google, LinkedIn, Microsoft, Meta, Reddit, and X: each CRM stage becomes a discrete, value-weighted conversion (Lead → MQL → SQL → Opportunity → Closed-Won), so an Opportunity outbids an MQL and value-based bidding ties to real pipeline.

The build, per piece (SOW §3.5)

  • GA4 implementation — audit and cleanup of the property and dataLayer against the B2B funnel event model; bots out, key events in, and a published sign-off that site data is trustworthy end to end — the artifact the locked baselines depend on.
  • Website tagging / GTM — ongoing container administration bridging marketing and engineering: audit, cleanup, maintenance.
  • Campaign attribution — the UTM framework and session-persist logic so leads carry attribution end to end, standardized as one convention (UTMs, event names, campaign taxonomy) aligned with the warehouse joins.
  • Reporting migration & warehouse ingestion — paid and organic channel reporting ingested through direct platform APIs feeding Snowflake; every Outshine dashboard recreated in Hex with simplified naming and validated against internal numbers before the offboard closes (transition calls recorded to capture their blending methods).
  • Dashboard alignment on Hex — paid, organic, and CRM unified in one reporting view, delivered with onboarding and documentation; the Month 2 additions are the real-time dashboards plus the internal spend view for ABM and global campaigns. The Verto monthly performance review reads from these same dashboards — one scoreboard for the client and the agency.
  • Conversion data pipelines — online and offline conversion tracking including CAPI, routing downstream signals back to the platforms.
  • Offline / CRM activation via Marketo — offline conversion tracking configured in Marketo for both LinkedIn Ads and Google Ads, feeding lead-stage signals back for optimization.
  • The operating rails — one campaign list so nothing launches unmapped, and the weekly attainment review grading the whole plan (lands with Planning & Goals).

Sequencing & access

Week 1: platform access scoped to the scoping sheet — Google Ads, Microsoft, LinkedIn, X, Reddit, Meta, GA4, GTM, 6sense, Hex, CRM, and the warehouse. Weeks 2–4: the CRM lead-stage and deal-stage feed that offline activation and attribution require. Day-30 bar (H2 memo): the Google conversion loop feeds real values to bidding. Month-3 bar (SOW): the measurement stack live across attribution, CRM activation, and dashboard alignment.

The planning rail (absorbed Sep 4 — was Planning & Goals)

One plan, one forecast, one calendar — the rail everything paces against, now living with the measurement stack it depends on. Model stewardship stays with Marketing Ops so the plan reads as the organization's.

  • Media plan v2.1 — one plan across digital and field on the ad-group structure (ratified Aug 27): budget floors per line, the 65/35 performance-awareness split by region, field input folded into the centralized file.
  • The Q3 goal cascade (v10.1) — targets that reproduce the company pipeline plan to the dollar: $21.5M marketing-sourced pipeline · 345 SAOs · 1,050 hand-raisers → 735 MQLs · 70K sign-ups → 17K keys → 1,050 paying · paid pipe-to-spend ≥1.8x. Targets, not forecasts — every rate is an adjustable lever.
  • The bottoms-up forecast — channel level, covering P1 and P2 lead types at their own conversion rates, built with Adnan under MOPs ownership. Terminology ratified with Reet (Sep 2): P1 = hand-raisers (today's MQL) · P2 = non-hand-raiser leads · P1 + P2 = responses. The AI SDR follows up 100% of P2 (24-hour human claim window); the Q3 bar is tier A/B responses at or above the Q2 baseline. Shafiq endorsed the all-lead scope in principle (Sep 1); formal ratification review being scheduled — it gates the pacing rhythm.
  • The campaign template + registry — one connected template and one registry so nothing launches unmapped; one campaign calendar on the Asana board.
  • Weekly channel attainment — the review that grades the whole plan on data we own, standing up with the dashboards below.
  • International inside the plan — EMEA/APAC digital plans and regional budgets folded into the same model.
  • The MLT asks: one funnel (shared lead-type definitions + follow-up SLA per type) · a single budget laddering top to bottom · one independently reported number · an integrated global calendar.

Work to be done

  • Capture rebuilt and signed off — GA4 + dataLayer on the B2B event taxonomy, server-side GTM, Consent Mode v2, bots out, key events in, and the published trustworthy-end-to-end sign-off that locks the baselines for every treated page.
  • One warehouse of record, one dashboard layer — platform-API collection feeding Snowflake, every Outshine dashboard recreated in Hex with simplified naming and validated against internal numbers, the ABM/global spend view live, Tableau dependencies retired, and the data MCP-queryable for the reporting agent.
  • The revenue loop closed — CRM-stage conversions (value-weighted, both PLG and SLG motions) flowing back to every ad platform via CAPI and Marketo offline tracking, with one UTM/event/taxonomy convention so pages, campaigns, and reporting read the same truth.
  • Media plan v2.1 finalized and rolled out — digital + field in one plan, region/sub-region dollar map documented, ad-group structure live, regional roll-out complete with the first retro.
  • The forecast ratified and pacing — the channel-level P1/P2 model reviewed with Shafiq, owned by MOPs, reconciled to the GTM pipeline plan, and pacing weekly against attainment.
  • The registry governing launches — campaign template + registry live, one Asana calendar, nothing launching unmapped, international planning inside the shared model.

Current state

Stack updated: platform APIs → Snowflake → Hex (Supermetrics superseded). Transition calls with Outshine recorded to document data-blending methods; the offboard checklist is closing with no data loss. Verto configuration starts Sep 1; the 6sense reporting track is item-by-item on the 6sense Configuration tab.

Dependencies & risks

The warehouse migration (Postgres → Snowflake) is in flight — the connector lands on the new tables. The keystone signal-layer decision (SFDC-centric vs warehouse + reverse-ETL) from the signal architecture review shapes where the resolved signal model lives — coordinate with Signal-based orchestration so measurement and orchestration don't fork. Dashboard validation against internal numbers is the gate that fully closes the Outshine chapter — until it passes, keep the reference exports. Analytics coverage is thin while Daryl is on leave: Adnan carries Hex triage and the forecast PRD simultaneously — sequence asks accordingly. [owner to complete]

What this is

The measurement rail everything else grades against: the tracking and reporting foundation rebuilt from capture through activation — GA4 and the dataLayer reworked for B2B funnels, one attribution convention end to end, all channel reporting migrated into a warehouse we own, dashboards consolidated on Hex, and every conversion that matters fed back to the ad platforms with value attached. Verto's data & analytics consultant executes SOW §3.5; strategy and the scorecard stay in-house, permanently.

Goal: give every other initiative reliable data to work from — and make bidding optimize toward revenue instead of clicks.

Why now

Three compounding problems made this the first thing Verto touches. The numbers don't reconcile: Outshine's dashboards ran much larger than internal lead counts, their own dashboards disagreed with each other, and cost-per-MQL/SQL metrics were visibly broken — dashboarding was the agency's last distinct value, and no vendor should produce the reporting that grades its own work. The debt is real: roughly 2.5 years of accumulated targeting and tracking debt — inconsistent UTM capture, conversion events that don't reflect priorities, anonymous web intent largely unused. The optimization loop is blind: the conversions that close deals happen in the CRM weeks after the click, so ad platforms keep optimizing for form fills — one audit line says it plainly: 91% of paid conversions came from brand search, paying to harvest demand we already had.

And the H2 bar demands better: treated pages measure lift against locked baselines, which requires GA4 numbers everyone believes first.

The stack decision

Platform APIs → Snowflake → Hex — updated Aug 31, superseding the July PRD's Supermetrics pick from the three-way collector evaluation (Supermetrics vs Funnel.io vs Fivetran). Collection now runs on direct platform-API ingestion per the Platform APIs v1 PRD: no managed-collector layer between the ad platforms and the warehouse, no per-connector vendor dependency, and the connectors ride the same engineering rail as the rest of the stack (built and maintained through the data & analytics lane). The honest trade: connectors are owned code, so maintenance sits with the team rather than a vendor SLA — the PRD carries the connector inventory and refresh cadences. Everything downstream is unchanged: reporting runs in Hex on the warehouse — no parallel dashboard layer — the data lands in Snowflake MCP-queryable (what the reporting agent connects to), remaining Tableau dependencies get killed as Hex consolidation finishes, and the SOW boundary holds: warehouse administration and modelling beyond the marketing datasets stays with the data team.

The method — capture, identify, activate

Verto's measurement-first frame, now ours:

  • Capture — server-side GTM, GA4 configured for B2B funnels rather than e-commerce defaults, an event taxonomy mapped to the buyer journey, data piped to the warehouse for full ownership and zero sampling, and Consent Mode v2 so capture is compliant by design.
  • Identify — first-party identity resolution: cookieless tracking via hashed emails, UserID stitching across sessions, devices, and CRM records, and ICP scoring rules that turn raw lead data into qualified pipeline signal.
  • Activate — offline conversion tracking back to Google, LinkedIn, Microsoft, Meta, Reddit, and X: each CRM stage becomes a discrete, value-weighted conversion (Lead → MQL → SQL → Opportunity → Closed-Won), so an Opportunity outbids an MQL and value-based bidding ties to real pipeline.

The build, per piece (SOW §3.5)

  • GA4 implementation — audit and cleanup of the property and dataLayer against the B2B funnel event model; bots out, key events in, and a published sign-off that site data is trustworthy end to end — the artifact the locked baselines depend on.
  • Website tagging / GTM — ongoing container administration bridging marketing and engineering: audit, cleanup, maintenance.
  • Campaign attribution — the UTM framework and session-persist logic so leads carry attribution end to end, standardized as one convention (UTMs, event names, campaign taxonomy) aligned with the warehouse joins.
  • Reporting migration & warehouse ingestion — paid and organic channel reporting ingested through direct platform APIs feeding Snowflake; every Outshine dashboard recreated in Hex with simplified naming and validated against internal numbers before the offboard closes (transition calls recorded to capture their blending methods).
  • Dashboard alignment on Hex — paid, organic, and CRM unified in one reporting view, delivered with onboarding and documentation; the Month 2 additions are the real-time dashboards plus the internal spend view for ABM and global campaigns. The Verto monthly performance review reads from these same dashboards — one scoreboard for the client and the agency.
  • Conversion data pipelines — online and offline conversion tracking including CAPI, routing downstream signals back to the platforms.
  • Offline / CRM activation via Marketo — offline conversion tracking configured in Marketo for both LinkedIn Ads and Google Ads, feeding lead-stage signals back for optimization.
  • The operating rails — one campaign list so nothing launches unmapped, and the weekly attainment review grading the whole plan (lands with Planning & Goals).

Sequencing & access

Week 1: platform access scoped to the scoping sheet — Google Ads, Microsoft, LinkedIn, X, Reddit, Meta, GA4, GTM, 6sense, Hex, CRM, and the warehouse. Weeks 2–4: the CRM lead-stage and deal-stage feed that offline activation and attribution require. Day-30 bar (H2 memo): the Google conversion loop feeds real values to bidding. Month-3 bar (SOW): the measurement stack live across attribution, CRM activation, and dashboard alignment.

The planning rail (absorbed Sep 4 — was Planning & Goals)

One plan, one forecast, one calendar — the rail everything paces against, now living with the measurement stack it depends on. Model stewardship stays with Marketing Ops so the plan reads as the organization's.

  • Media plan v2.1 — one plan across digital and field on the ad-group structure (ratified Aug 27): budget floors per line, the 65/35 performance-awareness split by region, field input folded into the centralized file.
  • The Q3 goal cascade (v10.1) — targets that reproduce the company pipeline plan to the dollar: $21.5M marketing-sourced pipeline · 345 SAOs · 1,050 hand-raisers → 735 MQLs · 70K sign-ups → 17K keys → 1,050 paying · paid pipe-to-spend ≥1.8x. Targets, not forecasts — every rate is an adjustable lever.
  • The bottoms-up forecast — channel level, covering P1 and P2 lead types at their own conversion rates, built with Adnan under MOPs ownership. Terminology ratified with Reet (Sep 2): P1 = hand-raisers (today's MQL) · P2 = non-hand-raiser leads · P1 + P2 = responses. The AI SDR follows up 100% of P2 (24-hour human claim window); the Q3 bar is tier A/B responses at or above the Q2 baseline. Shafiq endorsed the all-lead scope in principle (Sep 1); formal ratification review being scheduled — it gates the pacing rhythm.
  • The campaign template + registry — one connected template and one registry so nothing launches unmapped; one campaign calendar on the Asana board.
  • Weekly channel attainment — the review that grades the whole plan on data we own, standing up with the dashboards below.
  • International inside the plan — EMEA/APAC digital plans and regional budgets folded into the same model.
  • The MLT asks: one funnel (shared lead-type definitions + follow-up SLA per type) · a single budget laddering top to bottom · one independently reported number · an integrated global calendar.

Work to be done

  • Capture rebuilt and signed off — GA4 + dataLayer on the B2B event taxonomy, server-side GTM, Consent Mode v2, bots out, key events in, and the published trustworthy-end-to-end sign-off that locks the baselines for every treated page.
  • One warehouse of record, one dashboard layer — platform-API collection feeding Snowflake, every Outshine dashboard recreated in Hex with simplified naming and validated against internal numbers, the ABM/global spend view live, Tableau dependencies retired, and the data MCP-queryable for the reporting agent.
  • The revenue loop closed — CRM-stage conversions (value-weighted, both PLG and SLG motions) flowing back to every ad platform via CAPI and Marketo offline tracking, with one UTM/event/taxonomy convention so pages, campaigns, and reporting read the same truth.
  • Media plan v2.1 finalized and rolled out — digital + field in one plan, region/sub-region dollar map documented, ad-group structure live, regional roll-out complete with the first retro.
  • The forecast ratified and pacing — the channel-level P1/P2 model reviewed with Shafiq, owned by MOPs, reconciled to the GTM pipeline plan, and pacing weekly against attainment.
  • The registry governing launches — campaign template + registry live, one Asana calendar, nothing launching unmapped, international planning inside the shared model.

Current state

Stack updated: platform APIs → Snowflake → Hex (Supermetrics superseded). Transition calls with Outshine recorded to document data-blending methods; the offboard checklist is closing with no data loss. Verto configuration starts Sep 1; the 6sense reporting track is item-by-item on the 6sense Configuration tab.

Dependencies & risks

The warehouse migration (Postgres → Snowflake) is in flight — the connector lands on the new tables. The keystone signal-layer decision (SFDC-centric vs warehouse + reverse-ETL) from the signal architecture review shapes where the resolved signal model lives — coordinate with Signal-based orchestration so measurement and orchestration don't fork. Dashboard validation against internal numbers is the gate that fully closes the Outshine chapter — until it passes, keep the reference exports. Analytics coverage is thin while Daryl is on leave: Adnan carries Hex triage and the forecast PRD simultaneously — sequence asks accordingly.

OWNER
AR
Alexis Ruiz-Pedregon
Sr Manager, Digital Marketing
EXTERNAL OWNER
DH
Denislav Hadziminev
Sr. consultant, data & analytics · Verto Digital
TIMELINE
Sep 1 – Nov 30, 2026 (initial 90-day term)
PRD approved · Verto configures from Sep 1 · Month 3 bar: measurement stack live end to end
AGENCY / CONTRACTOR
Verto Digital — Denislav Hadziminev, Sr. consultant, data & analytics
Verto bank of hours — 200 hrs/mo shared across 6 focus areas (SOW v1.2)
WORKSTREAM
001 · Data Tracking & Analytics Verto Digital
CONTRIBUTORS
ARAKKNDHNHRMKD
Alexis Ruiz-Pedregon · Adnan Khan · Keith Nyberg · Denislav Hadziminev (Verto) · Nash Haywood · Reet Mand · Katie Dunn