Overview
The article discusses the engineering infrastructure at LinkedIn that supports test tracking across various platforms, including iOS, Android, and web. It highlights the importance of analytics infrastructure for assessing feature success and understanding user behavior through a comprehensive tracking framework.
What You'll Learn
1
How to implement a tracking infrastructure for mobile and web applications
2
Why tracking events are crucial for understanding user interactions
3
How to automate tracking event generation to simplify app code
Prerequisites & Requirements
- Understanding of analytics and tracking concepts
- Familiarity with Rest.li and Kafka(optional)
Key Questions Answered
What types of tracking events are generated in LinkedIn apps?
LinkedIn generates various tracking events including PageViewEvent (PVE), ControlInteractionEvent (CIE), NavigationEvent (NE), and product events like ImpressionEvent and ActionEvent. These events help in understanding user interactions and behaviors within the app.
How does the tracking infrastructure automate event generation?
The tracking infrastructure automates event generation by maintaining a global state that fills in common headers and generates events like NavigationEvent as users navigate through the app. This reduces the complexity in the app code and ensures consistency across platforms.
What tools are used for monitoring tracking events?
LinkedIn employs various internal tools such as Callisto, Spectrometer, Reportal, and inGraphs to monitor tracking events and trigger alerts for any anomalies detected in the data. This ensures the reliability of tracking information.
How is tracking testing integrated into the development process?
Tracking testing is integrated into the development process by requiring 100% automated test coverage of tracking events. The tracking infrastructure provides utilities that can be added to existing test code to verify expected events are fired correctly.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
API
Rest.li
Used for API calls between clients and the backend.
Messaging
Kafka
Used for processing tracking events in a distributed system.
Data Serialization
Avro
Defines schema for tracking events.
Data Serialization
Pegasus
Defines schema for tracking events.
Key Actionable Insights
1Implement a robust tracking infrastructure to automate event generation and reduce code complexity.By centralizing tracking logic, developers can focus on building features rather than managing tracking details, leading to cleaner and more maintainable code.
2Utilize internal monitoring tools to ensure the accuracy and reliability of tracking data.Regular monitoring can help identify issues early, allowing teams to address potential problems before they impact user experience.
3Incorporate automated testing for tracking events as part of the CI/CD pipeline.This practice ensures that tracking functionality is validated alongside application features, maintaining data integrity and quality.
Common Pitfalls
1
Failing to automate tracking event generation can lead to inconsistencies and increased complexity in app code.
Without automation, developers may struggle to maintain accurate tracking across different platforms, leading to potential data quality issues.
2
Neglecting to monitor tracking events can result in undetected anomalies affecting data reliability.
Regular monitoring is essential to catch issues early, ensuring that tracking data remains trustworthy and actionable.
Related Concepts
Analytics
A/B Testing/Experimentation
Product Design
Infrastructure