account and media_buy_id. A single request can span multiple accounts and campaigns.
Response Time: ~1s.
Response Schema: /schemas/3.2.0-beta.0/account/report-usage-response.json
Request Parameters
Usage Record Fields
Each record requiresaccount, vendor_cost, and currency. Additional fields depend on the vendor type:
For revenue-share records,
pricing_option_id identifies the agreed rate and commission basis. currency must match the selected option, and vendor_cost must not exceed the package’s commission budget.
Response
Examples
Signal usage — single campaign
Creative usage — ad server with CPM pricing
Multi-account batch
A single request spanning two campaigns across two accounts:Partial acceptance
If some records fail validation, the response identifies how many were accepted:Retry Safety
Always includeidempotency_key in production usage. If a request times out or returns a network error, retry with the same key — the server will return the original result without double-counting.
An idempotent replay is transparent: the server returns the original response unchanged and does not emit a DUPLICATE_REQUEST error or advisory.
Generate a fresh UUID per request, not per usage record. If you need to report additional records for the same period, submit a new request with a new key.
Reporting cadence
Report at regular intervals — monthly at minimum. For campaigns with significant spend, weekly reporting gives vendor agents timely visibility into earned revenue. Report upon campaign completion to close out the final period.Error Handling
Next Steps
- sync_accounts — Sync advertiser accounts with a seller before reporting
- Accounts Protocol — How account establishment and settlement fit together
- Accounts and agents — Billing hierarchy and operator model