Katkat

Model Campaigns, Targeting, and Edit History for a Demand-Side Ad Platform

ByteDanceSoftware Engineer · Onsite

Last updated

Model a demand-side ad platform with advertisers, campaigns, ad groups, ads, and creatives, including audience rules, edit history, and versioned publishing.

Design the data model for a demand-side advertising platform where advertisers create and edit advertising campaigns.

The model must represent Advertiser, Campaign, Ad Group, Ad, and Creative. Explain their relationships, how audience-targeting rules attach to the campaign structure, and how to preserve the history of edits. Show enough schema detail to make ownership, references, and historical reconstruction unambiguous.

State assumptions about creative reuse, the level at which targeting is configured, and whether edits become effective immediately or through an explicit publication step. These behaviors are design choices for this exercise; no existing platform-specific behavior is prescribed.

Hints

Hint 1

Reconstruct one campaign: Saving the old campaign row is insufficient if an ad or shared creative can change independently. Identify which versions a historical campaign should resolve to.

Follow-up questions

  • If several ads reuse a creative, should updating the creative change all live ads immediately? How would your schema enforce the chosen policy?
  • How would you restore a previous campaign configuration without erasing the intervening edit history?