> ## Documentation Index
> Fetch the complete documentation index at: https://docs.taginsight.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Naming conventions guide

> Create clear, consistent names for your tracking that everyone understands

## Overview

Good naming conventions are like a well-organized filing system - they help everyone find what they need quickly. This guide shows you how to name your tracking events and data points clearly and consistently.

<Note>
  Clear naming reduces confusion, prevents errors, and makes reports easier to understand. Your future self will thank you!
</Note>

## Why naming matters

### The cost of confusion

When tracking uses unclear names:

* Reports are hard to understand
* Teams waste time figuring out what data means
* Errors happen when people guess wrong
* New team members struggle to learn

### The benefit of clarity

With good naming:

* Everyone knows what each metric means
* Reports are self-explanatory
* Fewer mistakes happen
* Onboarding is faster

## Core principles

<CardGroup cols={2}>
  <Card title="Be descriptive" icon="text">
    Names should explain what they track
  </Card>

  <Card title="Be consistent" icon="equals">
    Use the same pattern everywhere
  </Card>

  <Card title="Be concise" icon="compress">
    Clear but not too long
  </Card>

  <Card title="Be predictable" icon="lightbulb">
    Others should guess names easily
  </Card>
</CardGroup>

## Naming your events

### Event structure

Think of events as sentences: **object + action**

Good examples:

* `product_viewed` (customer viewed a product)
* `cart_updated` (shopping cart was changed)
* `form_submitted` (user submitted a form)
* `video_played` (someone started a video)

### Common event categories

<Tabs>
  <Tab title="Shopping events">
    **Product interactions:**

    * product\_viewed
    * product\_clicked
    * product\_compared

    **Cart actions:**

    * cart\_item\_added
    * cart\_item\_removed
    * cart\_abandoned

    **Purchase flow:**

    * checkout\_started
    * payment\_selected
    * purchase\_completed
  </Tab>

  <Tab title="User events">
    **Account actions:**

    * user\_registered
    * user\_logged\_in
    * user\_logged\_out

    **Profile updates:**

    * profile\_updated
    * preferences\_changed
    * password\_reset

    **Engagement:**

    * content\_shared
    * review\_submitted
    * newsletter\_subscribed
  </Tab>

  <Tab title="Content events">
    **Page tracking:**

    * page\_viewed
    * page\_scrolled
    * page\_exited

    **Content engagement:**

    * article\_read
    * video\_watched
    * file\_downloaded

    **Interactions:**

    * link\_clicked
    * button\_pressed
    * menu\_opened
  </Tab>
</Tabs>

### Event naming rules

<Warning>
  Stick to these rules for consistency across your tracking
</Warning>

1. **Use lowercase letters** - `product_viewed` not `Product_Viewed`
2. **Separate words with underscores** - `cart_updated` not `cart-updated`
3. **Use past tense** - `clicked` not `click`
4. **Be specific** - `newsletter_form_submitted` not just `submitted`

## Naming your data points

### What are data points?

Data points are the details you collect with each event. For example:

* When someone views a product, you might track: product name, price, category
* When someone logs in, you might track: user ID, login method, time

### Data point patterns

<AccordionGroup>
  <Accordion title="User information">
    **Pattern: user\_ prefix**

    * user\_id (unique identifier)
    * user\_type (free, premium, etc.)
    * user\_status (active, inactive)
    * user\_signup\_date

    This makes it clear the data is about users.
  </Accordion>

  <Accordion title="Product details">
    **Pattern: product\_ prefix**

    * product\_id (SKU or code)
    * product\_name
    * product\_price
    * product\_category
    * product\_brand

    Anyone can see this is product data.
  </Accordion>

  <Accordion title="Page information">
    **Pattern: page\_ prefix**

    * page\_title
    * page\_category
    * page\_type
    * page\_url

    Clearly identifies page-related data.
  </Accordion>

  <Accordion title="Money and prices">
    **Include currency in the name**

    * price\_usd (price in US dollars)
    * total\_eur (total in euros)
    * discount\_gbp (discount in pounds)

    This prevents confusion about currencies.
  </Accordion>
</AccordionGroup>

## Creating your naming system

### Step-by-step approach

<Steps>
  <Step title="List what you track">
    Write down all events and data you want to track
  </Step>

  <Step title="Group similar items">
    Put related events together (all cart events, all user events, etc.)
  </Step>

  <Step title="Apply patterns">
    Use consistent prefixes and formats for each group
  </Step>

  <Step title="Document your choices">
    Create a reference guide for your team
  </Step>

  <Step title="Get team agreement">
    Make sure everyone understands and agrees
  </Step>
</Steps>

### Building your reference guide

Create a simple document like this:

**Event naming guide:**

* All events use lowercase with underscores
* Format: object\_action (product\_viewed, cart\_updated)
* Use past tense for actions

**Common events:**

| Event name          | When it happens             | Data collected               |
| ------------------- | --------------------------- | ---------------------------- |
| product\_viewed     | Customer views product page | product\_id, price, category |
| cart\_updated       | Cart contents change        | items, total, action\_type   |
| purchase\_completed | Order confirmed             | order\_id, total, items      |

## Real-world examples

### E-commerce naming

For an online store, you might use:

**Events:**

* homepage\_viewed
* search\_performed
* product\_viewed
* cart\_item\_added
* checkout\_started
* purchase\_completed

**Data points:**

* customer\_id
* product\_sku
* order\_total\_usd
* shipping\_method
* payment\_type

### Media site naming

For a news or content site:

**Events:**

* article\_viewed
* video\_started
* content\_shared
* comment\_posted
* subscription\_started

**Data points:**

* content\_id
* article\_category
* read\_time\_seconds
* video\_duration
* share\_platform

### B2B site naming

For business websites:

**Events:**

* demo\_requested
* whitepaper\_downloaded
* contact\_form\_submitted
* webinar\_registered
* trial\_started

**Data points:**

* company\_name
* industry\_type
* employee\_count
* lead\_source
* interest\_level

## Common mistakes to avoid

### Unclear names

❌ **Bad examples:**

* `event1` - What does this track?
* `clk` - Is this click? Which click?
* `pv` - Page view? Product view?
* `value` - Value of what?

✅ **Good examples:**

* `newsletter_signup_completed`
* `header_menu_clicked`
* `product_page_viewed`
* `cart_total_value_usd`

### Inconsistent formats

❌ **Mixing styles:**

* productViewed (camelCase)
* user-logged-in (kebab-case)
* PURCHASE\_COMPLETE (SCREAMING\_CASE)

✅ **Pick one style:**

* product\_viewed
* user\_logged\_in
* purchase\_complete

### Missing context

❌ **Too vague:**

* `price` - Price of what? In what currency?
* `date` - What date? For what event?
* `status` - Status of what?

✅ **Add context:**

* `product_price_usd`
* `order_date`
* `delivery_status`

## Industry-specific tips

### Retail

* Include SKUs in product events
* Specify currency in all price fields
* Track both online and store events clearly
* Distinguish guest vs member actions

### Publishing

* Differentiate content types (article, video, podcast)
* Include content categories
* Track engagement depth
* Note subscriber vs non-subscriber

### SaaS/B2B

* Track feature usage clearly
* Distinguish trial vs paid events
* Include company/account context
* Monitor user roles

## Maintaining your conventions

### Regular reviews

Schedule quarterly reviews to:

* Check if naming is still clear
* Add new events as needed
* Remove obsolete tracking
* Update documentation

### Team training

Ensure everyone understands:

* Why consistent naming matters
* Where to find the naming guide
* How to suggest new names
* Who approves changes

### Evolution strategy

As your business grows:

* Keep core patterns consistent
* Add new prefixes for new areas
* Document all changes
* Communicate updates clearly

## Quick reference checklist

When naming anything new, check:

* [ ] Is the purpose clear from the name?
* [ ] Does it follow our patterns?
* [ ] Is it consistent with similar items?
* [ ] Will others understand it?
* [ ] Is it documented?

## Getting help

### When to ask for help

Reach out when:

* Creating tracking for new features
* Unsure about naming patterns
* Seeing inconsistent data
* Planning major changes

### Resources

* Your tracking plan documentation
* Tag Insight support team
* Industry best practices
* Team knowledge sharing

## Next steps

<CardGroup cols={2}>
  <Card title="Create your guide" icon="book" href="/tracking-plans/creating-plans">
    Start documenting your conventions
  </Card>

  <Card title="Review existing tracking" icon="search" href="/monitoring/audit-reports">
    Audit current naming
  </Card>

  <Card title="Team collaboration" icon="users" href="/best-practices/collaboration">
    Share standards with everyone
  </Card>

  <Card title="Get expert help" icon="headset" href="https://taginsight.com/demo">
    Professional guidance available
  </Card>
</CardGroup>
