AD BILLING ADAPTER
ad-billing-adapter.ts
Ad platform billing: invoice reads, debit tracking, spend projection.
StarkWHAT THIS PATTERN TEACHES
How to classify ad platform billing capabilities (FULLY_FUNDABLE vs MONITORED_ONLY vs UNSUPPORTED), read invoices and billing state from Google Ads and Meta Ads, track debit events in real time, project future spend from historical burn rate, and generate settlement instructions for treasury integration.
WHEN TO USE THIS
When connecting ad platforms to a treasury system and you need to understand each platform's billing rail capabilities before automating funding.
AT A GLANCE
type BillingCapability =
| 'FULLY_FUNDABLE'
| 'MONITORED_ONLY'
| 'UNSUPPORTED';
interface AdBillingAdapter {
classifyBilling(): Promise<BillingCapability>;
getInvoices(): Promise<Invoice[]>;
}FRAMEWORK IMPLEMENTATIONS
Python
from enum import Enum
from abc import ABC, abstractmethod
from dataclasses import dataclass
from datetime import date, timedelta
class BillingCapability(str, Enum):
FULLY_FUNDABLE = "FULLY_FUNDABLE"
MONITORED_ONLY = "MONITORED_ONLY"
UNSUPPORTED = "UNSUPPORTED"
@dataclass(frozen=True)
class Invoice:
id: str
platform_id: str
amount_cents: int
due_date: date
status: str # OPEN | PAID | OVERDUE
class AdBillingAdapter(ABC):
@abstractmethod