Skip to main content

Practice: Online Advertising Platform

Premium

Scenario: You're designing a data model for Google Ads to analyze ad performance, advertiser behavior, and user engagement.

Requirements:

  • Track ad impressions, clicks, and conversions by campaign and ad type
  • Analyze advertiser spending patterns and ROI
  • Monitor keyword performance and bidding patterns
  • Measure user engagement with different ad formats
  • Analyze ad performance across different platforms (search, display, video)

Task: Create a high-level dimensional model to support these requirements.

Identify core business processes. What are the main events or measurements that generate the data needed for these analyses? Consider resource usage, billing events, and performance measurements.

Think about different types of fact tables. Given the variety of metrics needed, would a single fact table suffice, or do you need different types of fact tables?

Consider the granularity of your fact tables. At what level of detail do you need to store data to support all required analyses? Think about the trade-offs between granularity and table size.

Identify dimensions. What contextual information is needed to analyze these events? Consider the "who, what, where, when" of each process.

Think about slowly changing dimensions. Which entities might have attributes that change over time, and how should these changes be tracked?