Skip to main content
Assets are reusable pieces of ad content — sitelinks, callouts, and structured snippets — that live once in a shared library and attach to your account or individual campaigns by reference. Defining them in one place (conventionally assets.toml) means a single edit updates every ad that uses the asset, and your account root and campaigns only ever refer to assets by a short ID instead of repeating their content.

Full Example


Referencing Assets

Each asset is attached elsewhere by ID. Attachments are lists of strings in [account] or [[campaigns]] (sitelinks, callouts, structured_snippets) that point back into this library. A reference matches either of two identifiers:
string
The Google-issued asset ID. Adjar writes this back automatically after it creates the asset — you normally don’t author it by hand.
string
An optional local alias you choose (e.g. "sl-pricing"). Use a key so a brand-new asset — one that has no id yet — can still be referenced from an attachment list and be created and linked in a single apply. Keys must be unique within the library.Keep keys short and descriptive (sl-pricing, co-free-trial, ss-product-types) so both you and your AI agent can reference them unambiguously.
Give every asset a key. Without one, an asset that has not yet been created (no id) cannot be attached, because there is nothing stable to reference it by.
Assets are mutable: editing an asset’s content is an in-place update on the next apply, not a recreate, so the asset keeps its ID and stays attached.

[[assets]] — common fields

Every asset entry carries these, plus the type-specific fields below.
string
required
The asset type. Determines which content fields apply.

A sitelink adds a clickable link below your ad, pointing to a specific landing page.
The clickable link text. Maximum 25 characters.
string
Optional first description line shown under the link in some placements. Maximum 35 characters.
string
Optional second description line. Maximum 35 characters. Supply both description lines or neither.
string
required
The landing page URL the sitelink points to.

CALLOUT

A callout is a short phrase that highlights a selling point. Callouts are not clickable.
string
required
The callout phrase. Maximum 25 characters.

STRUCTURED_SNIPPET

A structured snippet pairs a predefined header with a list of related values, e.g. Types: SQL Review, Data Masking, Access Control.
string
required
The snippet header. Must be one of Google’s predefined values (validated against the account’s language). Adjar accepts the English set:Amenities, Brands, Courses, Degree programs, Destinations, Featured hotels, Insurance coverage, Models, Neighborhoods, Service catalog, Services, Shows, Styles, Types.
Despite some older Google documentation, Features is not an accepted header; use Services or Types instead.
array of strings
required
The snippet values. 3–10 values, each a maximum of 25 characters.

  • Account Root — attaching assets account-wide
  • Campaigns — attaching assets per campaign and how override vs. inherit resolves