brand.json file at a well-known location, brands can declare their identity, brand hierarchy, and optionally designate official brand agents.
Purpose
The Brand Protocol addresses buy-side identity in advertising, providing the same clarity that the Property Protocol provides for the sell-side:| Sell Side | Buy Side | Description |
|---|---|---|
| Publisher | House | Corporate entity (Nike, Inc., P&G) |
| Property | Brand | Advertising identity (Nike, Air Jordan) |
| Inventory | Destination | Landing pages, apps |
How It Works
Brands host abrand.json file at /.well-known/brand.json on their domain. The file can take one of four forms:
- Brand Agent: Points to an MCP agent that provides brand information
- House Portfolio: Contains full brand hierarchy with all brands and properties
- House Redirect: Points to a house domain that contains the portfolio
- Authoritative Location: Points to a hosted brand.json URL
Brand Architecture
The protocol supports Keller’s brand architecture models:| Type | Description | Example |
|---|---|---|
master | Primary brand of house | Nike for Nike, Inc. |
sub_brand | Carries parent name | Nike SB |
endorsed | Independent identity, backed by parent | Air Jordan “by Nike” |
independent | Operates separately | Converse under Nike, Inc. |
Example: House Portfolio
A house domain with multiple brands:Example: Brand Agent
A brand with an MCP agent that provides brand information:get_brand_manifest({ house, brand_id }) to return brand manifest data.
Example: House Redirect
A brand domain pointing to its house:Resolution Flow
Given any domain, the protocol resolves to a canonical brand:Use Cases
Creative Generation
When a creative agent needs brand assets:- Resolve domain to canonical brand via brand.json
- Get brand manifest (from agent or inline)
- Generate on-brand creatives
Brand Verification
When verifying brand claims:- Fetch brand.json from claimed domain
- Follow redirects to house if needed
- Verify brand exists in portfolio
Reporting Roll-up
When aggregating brand performance:- Resolve all brand domains to canonical IDs
- Group by house for corporate-level reporting
- Optionally include/exclude sub-brands
Brand Context in Requests
The Brand Protocol is additive, not required. Agents should accept brand context in multiple ways:| Request Field | Behavior |
|---|---|
brand_manifest: {...} | Use explicit inline manifest (highest priority) |
brand_domain: "nike.com" | Resolve via Brand Protocol |
brand_url: "https://..." | Fetch directly from URL |
| (none provided) | Operate without brand context |
- Agencies to pass manifests they already have cached
- Automatic discovery when only domain is known
- Generic operation when no brand context is needed
Caching
Brand information changes infrequently (logo updates, guideline refreshes). Recommended caching:- HTTP headers: Use standard
ETag,Last-Modified, andCache-Controlheaders - Default TTL: 24 hours for validated brand.json files
- Failed lookups: Cache for 1 hour before retrying
- last_updated field: Informational timestamp in brand.json for staleness checks
Future Considerations
Digital Asset Management (DAM)
For brands requiring fine-grained control over asset usage, thebrand_agent variant provides a natural integration point for DAM systems. Agents can:
- Enforce access control per asset
- Track usage and licensing
- Provide assets with usage terms
- Log access for compliance
MCP Tools
The Brand Protocol provides MCP tools for programmatic access:| Tool | Description |
|---|---|
resolve_brand | Resolve domain to canonical brand identity |
validate_brand_json | Validate a domain’s brand.json |
validate_brand_agent | Test brand agent reachability |