Write SQL for Pixel Signal Metrics

Quick Overview

This question evaluates SQL-based data manipulation and analytical competencies, specifically joining and aggregating event and ad performance tables, computing event-weighted metrics and composite data-quality scores (such as validity and match-rate based measures) across a 30-day window.

Write SQL for Pixel Signal Metrics

Company: Meta

Role: Data Scientist

Category: Data Manipulation (SQL/Python)

Difficulty: medium

Interview Round: Technical Screen

You are working on Meta Ads Pixel analytics. Assume all timestamps are stored in UTC, and analyze the last 30 complete calendar days. Tables 1. advertisers - advertiser_id BIGINT - vertical STRING - created_at TIMESTAMP 2. pixels - pixel_id BIGINT - advertiser_id BIGINT - installed_at TIMESTAMP 3. pixel_signal_daily - ds DATE - pixel_id BIGINT - events_received BIGINT - valid_event_rate DOUBLE -- share of received events that pass validation, from 0 to 1 - match_rate DOUBLE -- share of valid events that can be matched back to ad traffic, from 0 to 1 4. ad_performance_daily - ds DATE - advertiser_id BIGINT - impressions BIGINT - clicks BIGINT - spend_usd DOUBLE - attributed_conversions BIGINT - attributed_revenue_usd DOUBLE Relationships - advertisers has a 1:N relationship with pixels - pixels has a 1:N relationship with pixel_signal_daily - advertisers has a 1:N relationship with ad_performance_daily Task 1: Write a SQL query that returns one row per advertiser per day with the following columns: - ds - advertiser_id - active_pixels -- number of the advertiser's pixels that received at least 1 event that day - total_events_received - avg_valid_event_rate -- event-weighted average valid_event_rate across the advertiser's active pixels that day Task 2: Write a SQL query to study the relationship between Pixel signal data quality and ads performance. Use the following definitions: - pixel_day_quality_score = valid_event_rate * match_rate - advertiser_day_quality = event-weighted average pixel_day_quality_score across all active pixels for that advertiser on that day - CVR = attributed_conversions / NULLIF(clicks, 0) - ROAS = attributed_revenue_usd / NULLIF(spend_usd, 0) Bucket each advertiser-day into: - 'low' if advertiser_day_quality < 0.60 - 'medium' if advertiser_day_quality >= 0.60 and advertiser_day_quality < 0.85 - 'high' if advertiser_day_quality >= 0.85 Return one row per quality bucket for the 30-day window with these output columns: - quality_bucket - advertiser_day_count - avg_quality_score - total_spend_usd - total_clicks - total_conversions - cvr - roas

Quick Answer: This question evaluates SQL-based data manipulation and analytical competencies, specifically joining and aggregating event and ad performance tables, computing event-weighted metrics and composite data-quality scores (such as validity and match-rate based measures) across a 30-day window.

|Home/Data Manipulation (SQL/Python)/Meta
Meta logo
Meta
Jan 20, 2026, 12:00 AM
mediumData ScientistTechnical ScreenData Manipulation (SQL/Python)
4
0

You are working on Meta Ads Pixel analytics. Assume all timestamps are stored in UTC, and analyze the last 30 complete calendar days.

Tables

  1. advertisers
  • advertiser_id BIGINT
  • vertical STRING
  • created_at TIMESTAMP
  1. pixels
  • pixel_id BIGINT
  • advertiser_id BIGINT
  • installed_at TIMESTAMP
  1. pixel_signal_daily
  • ds DATE
  • pixel_id BIGINT
  • events_received BIGINT
  • valid_event_rate DOUBLE -- share of received events that pass validation, from 0 to 1
  • match_rate DOUBLE -- share of valid events that can be matched back to ad traffic, from 0 to 1
  1. ad_performance_daily
  • ds DATE
  • advertiser_id BIGINT
  • impressions BIGINT
  • clicks BIGINT
  • spend_usd DOUBLE
  • attributed_conversions BIGINT
  • attributed_revenue_usd DOUBLE

Relationships

  • advertisers has a 1:N relationship with pixels
  • pixels has a 1:N relationship with pixel_signal_daily
  • advertisers has a 1:N relationship with ad_performance_daily

Task 1: Write a SQL query that returns one row per advertiser per day with the following columns:

  • ds
  • advertiser_id
  • active_pixels -- number of the advertiser's pixels that received at least 1 event that day
  • total_events_received
  • avg_valid_event_rate -- event-weighted average valid_event_rate across the advertiser's active pixels that day

Task 2: Write a SQL query to study the relationship between Pixel signal data quality and ads performance.

Use the following definitions:

  • pixel_day_quality_score = valid_event_rate * match_rate
  • advertiser_day_quality = event-weighted average pixel_day_quality_score across all active pixels for that advertiser on that day
  • CVR = attributed_conversions / NULLIF(clicks, 0)
  • ROAS = attributed_revenue_usd / NULLIF(spend_usd, 0)

Bucket each advertiser-day into:

  • 'low' if advertiser_day_quality < 0.60
  • 'medium' if advertiser_day_quality >= 0.60 and advertiser_day_quality < 0.85
  • 'high' if advertiser_day_quality >= 0.85

Return one row per quality bucket for the 30-day window with these output columns:

  • quality_bucket
  • advertiser_day_count
  • avg_quality_score
  • total_spend_usd
  • total_clicks
  • total_conversions
  • cvr
  • roas
Loading comments...