Skip to content

Commit badabd9

Browse files
authored
docs(creative): clarify brand and catalog sourcing (#6443)
1 parent c26c62e commit badabd9

4 files changed

Lines changed: 11 additions & 4 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"adcontextprotocol": patch
3+
---
4+
5+
Clarify that `brand.json` supplies master brand identity while catalogs supply product and item payload, including item-level property or franchise logos that do not override the master brand kit.

docs/creative/catalogs.mdx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ Each vertical type has a defined AdCP item schema, so formats can declare `catal
131131

132132
## Typed catalog assets
133133

134-
Vertical catalog items support an `assets` array using the same `OfferingAssetGroup` structure as offering-type catalogs. This solves a concrete problem: standard catalog feeds have a single `image_url` field, but a hotel ad on Snap needs a 1080×1920 vertical image, a display banner needs a 1920×1080 landscape hero, and the advertiser's logo goes in a separate slot. Without typed pools, a creative agent has to guess which image to use for which slot.
134+
Vertical catalog items support an `assets` array using the same `OfferingAssetGroup` structure as offering-type catalogs. This solves a concrete problem: standard catalog feeds have a single `image_url` field, but a hotel ad on Snap needs a 1080×1920 vertical image, a display banner needs a 1920×1080 landscape hero, and a property's item-level logo goes in a separate slot. Without typed pools, a creative agent has to guess which image to use for which slot.
135135

136136
By providing assets grouped by role, each catalog item self-describes the images it carries:
137137

@@ -160,13 +160,15 @@ By providing assets grouped by role, each catalog item self-describes the images
160160
"asset_group_id": "logo",
161161
"asset_type": "image",
162162
"items": [
163-
{ "url": "https://images.acmehotels.com/logo.png", "width": 400, "height": 200 }
163+
{ "url": "https://images.acmehotels.com/grand-amsterdam/logo.png", "width": 400, "height": 200 }
164164
]
165165
}
166166
]
167167
}
168168
```
169169

170+
**Catalog assets do not override master brand identity.** The creative manifest's `brand` reference resolves the master logo, palette, fonts, voice, and visual guidelines from `brand.json`, then applies the supported per-call fields in `brand_kit_override`. A catalog `logo` asset group represents item-level identity — for example, a hotel, property, or franchise logo — that a format may select through `field_bindings`; it does not replace the master logo or other brand identity fields from `brand.json`.
171+
170172
The `asset_group_id` vocabulary is not standardized at the protocol level — each format defines which group IDs it uses via `offering_asset_constraints` in the catalog asset's `requirements`. Common conventions: `images_landscape` (16:9), `images_vertical` (9:16), `images_square` (1:1), `logo`, `video`. Video pools are first-class catalog asset groups alongside image pools — beyond the generic `video` pool, orientation-specific `video_vertical` (9:16) and `video_horizontal` (16:9) pool IDs let a feed carry per-orientation video the same way the image pools do.
171173

172174
Formats use `field_bindings` (see [Format catalog requirements](#format-catalog-requirements)) to explicitly declare which template slot maps to which asset group.

static/schemas/source/core/brand-ref.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "http://json-schema.org/draft-07/schema#",
33
"$id": "/schemas/core/brand-ref.json",
44
"title": "Brand Reference",
5-
"description": "Reference to a brand by domain and optional brand_id. The domain hosts /.well-known/brand.json or is registered in the brand registry. For single-brand domains, brand_id can be omitted. For house-of-brands domains, brand_id identifies the specific brand.",
5+
"description": "Reference to a brand by domain and optional brand_id. The domain hosts /.well-known/brand.json or is registered in the brand registry. For single-brand domains, brand_id can be omitted. For house-of-brands domains, brand_id identifies the specific brand. For creative production, brand.json is the canonical source of master brand identity (logo, palette, fonts, voice, and visual guidelines), subject only to the supported per-call fields in brand_kit_override. Catalogs supply product or item payload; catalog item asset groups, including property- or franchise-level logos, are item identity and do not override these master brand fields.",
66
"type": "object",
77
"properties": {
88
"domain": {

static/schemas/source/core/creative-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
},
3838
"brand": {
3939
"$ref": "/schemas/core/brand-ref.json",
40-
"description": "Brand identity reference (BrandRef — `domain` plus optional `brand_id` for house-of-brands; plus optional inline `brand_kit_override` for per-creative tweaks where brand.json is missing/stale). When present, the seller pulls brand context (logos, colors, voice, taglines) from the brand's brand.json automatically; any `brand_kit_override` fields on the BrandRef take precedence. v2 formats no longer redeclare brand_logo / brand_colors / brand_voice as explicit slots — brand identity is implicit context."
40+
"description": "Brand identity reference (BrandRef — `domain` plus optional `brand_id` for house-of-brands; plus optional inline `brand_kit_override` for per-creative tweaks where brand.json is missing/stale). When present, the seller pulls master brand identity (logo, palette, fonts, voice, and visual guidelines) from the brand's brand.json automatically; supported fields present in `brand_kit_override` take precedence, and all other master identity fields continue to come from brand.json. Catalogs supply product or item payload. Catalog item asset groups — including an item-level `logo` for a property or franchise — are item identity selected through format field bindings; they do not override brand.json's master logo or other brand identity fields. v2 formats no longer redeclare brand_logo / brand_colors / brand_voice as explicit slots — brand identity is implicit context."
4141
},
4242
"rights": {
4343
"type": "array",

0 commit comments

Comments
 (0)