Rajdip Khavad Logo
Rajdip Khavad
Back to all articles
Engineering

How to Design Analytics Event Properties That Stay Useful

Rajdip Khavadβ€’2026-09-01β€’8 min read

# How to Design Analytics Event Properties That Stay Useful

Event names tell you what happened. Event properties explain the context.

A useful analytics model therefore needs both:

πŸ“ Architecture Diagram
Event
  +
Properties
  ↓
Meaningful analytics data

In a hotel booking application, the same conceptsβ€”hotel, room, booking, dates and search contextβ€”appear repeatedly. Their representation should remain deliberate and consistent.

Hero diagram showing analytics event and stable properties feeding a reusable analytics dataset
Hero diagram showing analytics event and stable properties feeding a reusable analytics dataset

1. Start With the Business Question

Do not begin by copying the entire application object into analytics.

Start with:

text
What question should this event answer?

For example:

text
view_item

may need a hotel identifier and name.

A purchase may need:

text
transaction_id
value
currency
items

The event contract should reflect the business purpose.

2. Use Stable Identifiers

If a hotel has one identifier in one event and a different property name in another, analysis becomes harder.

Avoid arbitrary variation:

text
hotelId
hotel_id
propertyId
property_id

when they all represent the same concept.

Define the analytics mapping deliberately.

Property naming standards diagram comparing fragmented identifiers with a normalized analytics schema
Property naming standards diagram comparing fragmented identifiers with a normalized analytics schema

3. Separate Application Models From Analytics Models

Prefer:

πŸ“ Architecture Diagram
Application object
      ↓
AnalyticsService mapping
      ↓
Provider payload

rather than:

πŸ“ Architecture Diagram
Application object
      ↓
Direct provider payload

This protects the analytics contract from changes in internal application models.

4. Keep Properties Purposeful

Useful property categories can include:

text
Identity
- hotel ID
- booking ID

Context
- destination
- dates
- guests

Ecommerce
- value
- currency
- items

Journey
- list
- position
- selected option

Not every event needs every category.

Event property layers diagram showing identity, context, ecommerce and journey information
Event property layers diagram showing identity, context, ecommerce and journey information

5. Avoid Entire Domain Objects

Avoid:

ts
items: [hotelObject]

when the object contains internal structures unrelated to analytics.

Prefer explicit mapping:

ts
items: [{
  item_id: hotel.id,
  item_name: hotel.name
}]

This makes the external contract easier to inspect and maintain.

6. Keep Cross-Provider Meaning Aligned

The application uses a centralized analytics layer for GTM/GA4 and Klaviyo.

That does not mean every provider needs identical payloads.

Instead:

πŸ“ Architecture Diagram
Business action
      ↓
AnalyticsService
   ↙       β†˜
 GA4     Klaviyo

Each provider can receive the properties appropriate to its event model while the business meaning remains consistent.

Multi-provider mapping diagram showing one business action mapped to GA4 and Klaviyo-specific payloads
Multi-provider mapping diagram showing one business action mapped to GA4 and Klaviyo-specific payloads

7. Think About Property Lifetimes

Some information exists only during one event.

Other information is useful throughout a journey.

For example:

πŸ“ Architecture Diagram
Hotel ID
   ↓
view_item
   ↓
select_item
   ↓
purchase

A transaction identifier becomes especially important at purchase.

Marketing attribution can also need persistence because Angular route changes can remove the original URL parameters.

8. Validate the Contract

A practical review should ask:

  • Is the property name stable?
  • Is its value type predictable?
  • Is it actually needed?
  • Is the identifier meaningful?
  • Does it contain sensitive information?
  • Is it consistent across related events?
  • Can the receiving analytics platform use it?
  • 9. Test the Event Contract

    Test both the event and its properties.

    For example:

    πŸ“ Architecture Diagram
    Event: purchase
      β”œβ”€β”€ transaction_id
      β”œβ”€β”€ value
      β”œβ”€β”€ currency
      └── items

    A successful event with incomplete properties may still produce weak analytics.

    Analytics QA checklist diagram showing event name, required properties, identifiers, privacy and delivery
    Analytics QA checklist diagram showing event name, required properties, identifiers, privacy and delivery

    Common Mistakes

  • Copying entire domain objects.
  • Renaming the same identifier across events.
  • Adding properties without a business purpose.
  • Mixing provider-specific details into business components.
  • Sending sensitive information.
  • Changing event contracts without testing downstream reporting.
  • Conclusion

    A durable analytics implementation is a contract, not a collection of ad-hoc push() calls.

    Stable identifiers, purposeful properties and centralized mapping make the data easier to understand and safer to evolve.

    Related Content

  • Proven Engineering

    Need enterprise architecture consulting?

    Explore our real-world case studies detailing production migrations, performance scaling, and high-throughput gateways.

    View Case Studies