CDP Event Schema Design: Track Identify Page Group | Adslytics | Adslytics

Customer Data Platform Educational

Designing Your CDP Event Schema: Track, Identify, Page, and Group Calls

By Muhammad Farooq · June 29, 2026 · 8 min read
Designing Your CDP Event Schema: Track, Identify, Page, and Group Calls

Why Schema Design Comes First

The most expensive mistake in CDP implementation is building without a defined schema. When events have inconsistent names, missing properties, or undefined conventions, every team that touches the data spends hours deciphering what "btn_click" or "conversion_event_3" means. Retroactively cleaning a schema is significantly harder than designing it correctly from the start.

A Tracking Plan — the document that defines all events, their properties, and when each fires — is mandatory before any implementation begins. Our CDP implementation service always starts here.

The Four CDP Call Types

Track (Events)

Track calls record specific user actions. They're the core of your CDP data and the richest behavioral signal you'll collect.

Format: analytics.track('Event Name', {property1, property2, ...})

Naming convention: Use "Object Action" format in Title Case:

  • "Product Viewed" not "view_product" or "productViewed"
  • "Order Completed" not "purchase" or "checkout_complete"
  • "Form Submitted" not "lead_submitted" or "formSubmission"

This convention follows industry standards (Segment's Spec) and makes event names immediately readable across tools.

Properties should always include:

  • The primary entity ID (product_id, order_id, form_id)
  • User-relevant context (category, value, source)
  • Timing-relevant data when applicable (trial_days_remaining, days_since_last_purchase)

Identify (User Profiles)

Identify calls link a user to their profile and update their traits. Fire an identify call whenever you learn something new about a user's identity or profile.

Format: analytics.identify('userId123', {email, name, plan, company, createdAt})

When to fire:

  • User registers or creates an account
  • User logs in
  • User updates their profile
  • Server-side: when a purchase updates their LTV or plan tier

Critical traits to always include:

  • email — the universal identifier across marketing tools
  • name (or firstName/lastName)
  • createdAt — ISO 8601 timestamp of account creation
  • plan or subscriptionTier for SaaS
  • totalRevenue for customers (updated server-side)

Page (Pageviews)

Page calls record when a user views a page. They provide the navigational context for understanding the customer journey.

Format: analytics.page('Category', 'Page Name', {url, path, referrer, title})

The category and page name allow you to filter page views by section in your CDP and destinations. "Pricing" page views are a high-value signal for your sales team; "Blog" page views are lower intent.

Many CDPs auto-capture page calls — verify whether your implementation already fires them correctly or whether you need to add them manually.

Group (Account-Level Data for B2B)

Group calls associate a user with an account or organization. Critical for B2B companies where individual users belong to companies with their own attributes.

Format: analytics.group('accountId456', {name, industry, plan, employeeCount})

When to fire: When a user signs up with a company, switches teams, or when account attributes change.

Group calls allow you to build segments at the account level — "all users in accounts on Enterprise plan" or "all users at accounts with 50+ employees."

Common Schema Mistakes to Avoid

  • Inconsistent naming: "Add to Cart" and "add_to_cart" and "addToCart" are treated as three different events
  • Missing identify calls: If you only fire track events without identifying users, profile stitching fails
  • PII in track events: Don't put email addresses in track event properties — use the identify call for PII
  • Too granular: "Button Clicked — Header — Get Started — Desktop — Chrome" should be "CTA Clicked" with properties for location, text, device
  • Inconsistent property types: Revenue as a string in some events and a number in others breaks aggregations

The Tracking Plan as Living Document

Your Tracking Plan should be version-controlled and updated whenever new events are added. Include for each event: event name, description, trigger condition, required properties, optional properties, which destinations receive it, and which team owns it.

Tools that help: Segment Protocols, Avo.app, Amplitude Data, or even a well-structured Google Sheet. The tool matters less than the discipline of updating it. Contact our CDP team for help designing your initial Tracking Plan.

Need expert tracking setup?

Our Google Tag Manager experts have delivered 500+ tracking setups with a 98% success rate.

Get a Free Consultation →
← Back to Blog
Muhammad Farooq

Author

Muhammad Farooq GTM & Analytics Expert · Adslytics Founder

Tracking specialist with 10+ years of experience in Google Tag Manager, GA4, Server-Side Tracking, and Google Ads. Founder of Adslytics — a dedicated analytics agency with a 98% success rate across 232+ projects on Upwork.

Top Rated Plus LinkedIn Visit the author's profile →