PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/eBay

Design an Ad Assignment API

Last updated: May 28, 2026

Quick Overview

This question evaluates API and system-design competencies including API contract and schema design, stateful per-user data management, concurrency control, scalability and observability within production services.

  • medium
  • eBay
  • System Design
  • Software Engineer

Design an Ad Assignment API

Company: eBay

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

Design an API that exposes the ad-assignment function as a production service. The service receives a user, a list of browser positions, and a set of candidate ads. It should randomly assign eligible ads to positions while respecting each ad's per-user display limit. The service must also persist and update per-user ad display state. Discuss the following: 1. What API endpoint or endpoints would you expose? 2. Would you use REST, RPC, or another protocol? Why? 3. Which HTTP method should be used for generating an assignment? 4. What should the URL design look like? 5. What should the request and response schemas contain? 6. Where should per-user ad display state be stored? 7. How would you update state safely when there are concurrent requests for the same user? 8. What errors should the API expose to clients? 9. How would you make the API reliable, observable, and maintainable?

Quick Answer: This question evaluates API and system-design competencies including API contract and schema design, stateful per-user data management, concurrency control, scalability and observability within production services.

Related Interview Questions

  • Design a Relational-to-DynamoDB Migration System - eBay (medium)
  • Design a Top-K trending service - eBay (medium)
  • Design an online marketplace for buying and selling - eBay (hard)
  • Handle cache-update conflicts in distributed services - eBay (hard)
eBay logo
eBay
Apr 13, 2026, 12:00 AM
Software Engineer
Technical Screen
System Design
13
0

Design an API that exposes the ad-assignment function as a production service.

The service receives a user, a list of browser positions, and a set of candidate ads. It should randomly assign eligible ads to positions while respecting each ad's per-user display limit. The service must also persist and update per-user ad display state.

Discuss the following:

  1. What API endpoint or endpoints would you expose?
  2. Would you use REST, RPC, or another protocol? Why?
  3. Which HTTP method should be used for generating an assignment?
  4. What should the URL design look like?
  5. What should the request and response schemas contain?
  6. Where should per-user ad display state be stored?
  7. How would you update state safely when there are concurrent requests for the same user?
  8. What errors should the API expose to clients?
  9. How would you make the API reliable, observable, and maintainable?

Solution

Show

Submit Your Answer

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More eBay•More Software Engineer•eBay Software Engineer•eBay System Design•Software Engineer System Design
PracHub

Master your tech interviews with 8,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.