Sample of our recommendation card templates
Unified funnel tracking event
In building an AI-first platform, it’s important that the infrastructure is built around helping our AI systems continuously learn and improve their recommendations for members. A key part to deliver this is by building a solid tracking system that is:
Simple for partner teams to onboard and leverage
Efficient for data scientists to analyze product impact
Reliable for application owners to monitor and debug
Comprehensive for relevance iteration and empowering AI work across the LinkedIn ecosystem.
Historically, in LinkedIn’s main application, we primarily use two types of tracking events for recommendations, one for the “followable” types and another for the “add connections” type. We needed to support both (as well as any new types that may come up in the future), so we designed a new funnel event called DiscoveryFunnelEvent.
With DiscoveryFunnelEvent, all recommendation types share the same consistent schema and tracking pattern. The process is as follow:
When a recommendation card exits the front-end screen to track that a recommendation has been displayed for the member, an impression record is fired.
An action record is fired when a member takes an action on this card (such as clicking the connect or follow button, undoing the connect or follow button, dismissing the card, or tapping the card to view more information).
On the back-end layers, voyager-api and the recommendation-midtier, a served record tracking event is fired in the respective layers to track what recommendations are returned.
A unique tracking id is generated for each recommendation when the recommendation-midtier fetches from downstream FPR services. This tracking id will be included in the tracking events that capture the lifecycle of a recommendation card from being recommended, served to front-ends, impressioned to viewers, and acted on. In this way, this tracking event can be leveraged to track the trace of every recommendation and later used for analysis, debugging, or relevance model training.
As we are emitting DiscoveryFunnelEvent to replace the firing of the other two types of tracking events for recommendations, we are careful not to break any existing flows that depend on them. We set up a Samza job to consume DiscoveryFunnelEvent and produce the old tracking events based on the DiscoveryFunnelEvent. In this way, any existing flows will enjoy no disturbance while we can ramp DiscoveryFunnelEvent emission to make the client side logic easier, given now we only need to fire one single type of tracking event instead of multiple types.
Since we first launched the discovery cohorts in 2019, the team has added support for recommendations for Pages, Influencers, Hashtags, Groups, Newsletters, and Online Events — all of which members can discover in the My Network tab today. The platform has become a core piece of infrastructure that allows different teams across LinkedIn to quickly launch and test new recommendation and discovery experiences for LinkedIn members, and we’re excited to continue our journey to help our members discover communities and interests to stay informed and connected.
We would like to acknowledge the contributions of Andrew Yu, Weijie Huo, Winnie Narang, Jugpreet Talwar, Judy Wang, Aakanksha Sharma, Preeti Powar, Pooja Muduganti, Kiki Chen, Yang Han, Clifford Charles, Zhiyuan Xu, Matt Winchester, Yao Chen, and Xukai Wang in directly developing the discovery platform described in this post, and the great support from all our partners from Growth AI (especially Aastha Jain, Parag Agrawal, Yafei Wang, and Ashwin Murthy), Communities AI (especially Abdulla Al-Qawasmeh, Andrew Hatch), News (especially Lachlan Green, Hari Prasana, and Emilie de Longueau), Content Experience (especially Emily Carrolo), Segments (especially Jiankuan Sun, Bingyu Li, Yi-wen Liu, Xiangyu Fu, and Chunan Zeng), Pages (especially Julia Abelsky), and Groups (especially Maria Popova and Ian Wood). We also would like to thank Xin Sun and Michael Maczka for their continued support.