Skip to main content

AD BILLING ADAPTER

ad-billing-adapter.ts

Ad platform billing: invoice reads, debit tracking, spend projection.

Stark avatarStark

WHAT 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
← All Patterns