Advertising Entities
Entities for the advertising platform system allowing companies to create and manage ad campaigns.
Overview
The advertising platform system is similar to Facebook Ads Manager, allowing advertisers to:
- Create advertiser accounts
- Create ad campaigns with budgets and targeting
- Upload ad creatives (images, videos, text)
- Track performance (impressions, clicks, conversions)
- Manage billing and payments
Core Entities
AdvertiserAccount
Represents a company/brand that can advertise (e.g., Rapala, Shimano).
Key Fields:
Id(int): Unique identifierUserId: Account owner userCompanyName: Company nameIsVerified: Whether account is verified by adminSubscriptionTier: Basic, Professional, EnterpriseAccountBalance: Account balance for ad spendingStripeCustomerId: Stripe customer IDIsActive: Whether account is active
Relationships:
- Many-to-one: User
- One-to-many: AdCampaign, AdvertiserTeamMember, AdvertiserPayment, AdvertiserInvoice
AdCampaign
A collection of ads with shared budget and targeting.
Key Fields:
Id(int): Unique identifierAdvertiserAccountId: Associated advertiserCampaignName: Campaign nameBudgetType: Daily, LifetimeBudgetAmount: Budget amountTargeting: Targeting criteria (JSON)StartDate,EndDate: Campaign datesStatus: Draft, Active, Paused, CompletedFrequencyCap: Max impressions per user
Relationships:
- Many-to-one: AdvertiserAccount
- One-to-many: AdCreative, AdImpression, AdClick
AdCreative
The actual ad content (image, video, text, etc.).
Key Fields:
Id(int): Unique identifierAdCampaignId: Associated campaignCreativeType: Image, Video, Text, CarouselHeadline: Ad headlineBodyText: Ad body textImageUrl,VideoUrl: Media URLsCallToAction: CTA button textLandingPageUrl: Landing page URLStatus: Active, Paused, Rejected
Relationships:
- Many-to-one: AdCampaign
- One-to-many: AdImpression, AdClick
AdImpression
Tracks ad impressions (views).
Key Fields:
Id(int): Unique identifierAdCreativeId: Associated creativeUserId: User who viewed ad (if logged in)ImpressionDate: Impression timestampDeviceType: Desktop, Mobile, TabletLocation: User location
Relationships:
- Many-to-one: AdCreative, User (optional)
AdClick
Tracks ad clicks.
Key Fields:
Id(int): Unique identifierAdCreativeId: Associated creativeUserId: User who clicked (if logged in)ClickDate: Click timestampDeviceType: Device typeLocation: User location
Relationships:
- Many-to-one: AdCreative, User (optional)
AdvertiserPayment
Tracks advertiser payments and account top-ups.
Key Fields:
Id(int): Unique identifierAdvertiserAccountId: Associated accountAmount: Payment amountPaymentType: TopUp, SubscriptionStripePaymentIntentId: Stripe payment intentStatus: Pending, Completed, FailedPaymentDate: Payment timestamp
Relationships:
- Many-to-one: AdvertiserAccount
AdvertiserInvoice
Tracks advertiser invoices for ad spending.
Key Fields:
Id(int): Unique identifierAdvertiserAccountId: Associated accountInvoiceNumber: Invoice numberAmount: Invoice amountPeriodStart,PeriodEnd: Billing periodStatus: Pending, Paid, OverdueDueDate: Due date
Relationships:
- Many-to-one: AdvertiserAccount
AdvertiserTeamMember
Team members who can manage advertiser accounts.
Key Fields:
Id(int): Unique identifierAdvertiserAccountId: Associated accountUserId: Team member userRole: Admin, Manager, ViewerPermissions: Permissions (JSON)
Relationships:
- Many-to-one: AdvertiserAccount, User
Related Documentation
- Advertising Platform - Complete advertising system documentation
- Ad Targeting - Ad targeting system
- Stripe Integration - Payment processing