Implementing Double-Sided Product Analytics at Good Dog: A Case Study

Erik A. Ekberg
3 min readJul 13, 2023

In the fast-paced world of online marketplaces, product analytics plays a crucial role in understanding user behavior, optimizing the user experience, and driving business success.

Good Dog, a leading double-sided marketplace connecting responsible breeders with potential dog owners, recognized the significance of robust product analytics.

As the team responsible for standardizing and implementing their product analytics, we faced unique challenges due to the double-sided nature of Good Dog’s marketplace.

In this article, we explore how we tackled these challenges and successfully implemented our double-sided product analytics framework at Good Dog.

Understanding the Double-Sided Marketplace Dynamics

Good Dog operates as a two-sided marketplace, bringing together buyers and breeders.

Traditional e-commerce event naming conventions often fell short when applied to our marketplace, making it essential to devise a standardized approach that captured the intricacies of our platform.

Standardizing Event Naming Convention

To address this challenge, we standardized our event naming convention around the format of [Noun] [Action] [By|For] [Actor].

The key to this convention was the inclusion of the [Actor], which represented the entity responsible for performing the [Action].

While most events involved buyers or breeders as the [Actor], we also accounted for cases where the system itself was the [Actor], such as sending automated reminder emails.

Let’s break down the convention further:

  1. [Noun]: The noun represents a specific object being acted on within our platform. For example, “Application.”
  2. [Action]: The action described the specific act being performed on the [Noun]. For instance, “Submitted,” “Reviewed,” or “Sent.”
  3. [By|For]: We used “By” to indicate that the [Actor] was actively performing the [Action], while “For” indicated the [Actor] was passive in the action.
  4. [Actor]: The actor represented the entity responsible for the action, which primarily encompassed buyers, breeders, or the system. In some cases, we also employed a generic “User” to capture generic events.

Capturing User Interactions

Implementing our standardized event naming convention allowed us to create a comprehensive set of events that tracked interactions between buyers, breeders, and the system.

For instance, “Application Submitted By Buyer” captured the action of a buyer submitting an application to a breeder, while “Application Reviewed By Breeder” tracked a breeder reviewing an application from a buyer.

The “Application Reminder Sent By System” event, where the system served as the [Actor], captured automated reminder emails we would send to breeders.

System events were rare though, because we would try to give our events as expressive names as possible, like “Application Reminder Sent For Breeder” instead of “Application Reminder Sent By Buyer.”

Where we were not expressive though were generic UI events.

For actions like clicking on a button or viewing an image, we captured these event with generic names like “Button Clicked By User” and “Image Viewed By User”.

For these generic events used props passed on the event to know what was clicked or what image was viewed by what kind of user.

Analyzing User Interactions and Funnel Reports

With our robust event naming convention in place, we could leverage product analytics to gain insights into how breeders and buyers interacted within our platform.

By creating funnel reports based on various buyer, breeder, and system actions, we gained a deeper understanding of user behavior, conversion rates, and user engagement at different stages of the adoption process.

This information enabled us to optimize the user journey, identify bottlenecks, and make data-driven decisions to improve the overall user experience.

Photo by Carlos Muza on Unsplash of a laptop screen showing a graph with multiple metrics increasing and decreasing over time.


Implementing double-sided product analytics at Good Dog proved to be a rewarding endeavor.

By standardizing our event naming convention around [Noun] [Action] [By|For] [Actor], we successfully captured the unique dynamics of our double-sided marketplace.

This approach enabled us to track user interactions between buyers, breeders, and the system, providing valuable insights into user behavior and optimizing our platform accordingly.

With a data-driven approach to product development, Good Dog continued to connect responsible breeders with loving dog owners, ensuring a positive and transparent adoption experience for everybody involved.



Erik A. Ekberg

Software engineer with a background in human psychology and data analytics who affords both customer and engineer delight through Agile software architectures.