Skip to main content
The google.toml file is the entry point for your entire Google Ads configuration. Every campaign file, asset library, and conversion action flows through this single root file via the imports array. When Adjar reads or writes your account, it starts here — resolving imports, validating structure, and assembling a complete picture of your account before making any changes.

Full Example

platform = "google"
imports = [
  "google/assets.toml",
  "google/conversions.toml",
  "google/campaigns/*.toml",
]

[account]
id = "4821937650"
sitelinks = [ "sl-size-guide", "sl-returns" ]
callouts = [ "co-free-shipping", "co-reviews" ]
structured_snippets = [ "ss-product-types" ]

Top-Level Fields

platform
string
required
Identifies the ad platform this config file targets. Must be "google" for Google Ads accounts.
platform = "google"
imports
array of strings
required
A list of file paths (relative to the importing file’s own directory, not the repo root) that Adjar will load and merge into this account config. Paths support glob patterns — use *.toml to include all TOML files in a directory. Imports nest: an imported file may itself declare imports, resolved relative to its own location.Within each section, fragments are merged in sorted order. Imported fragments may only contain top-level array sections ([[assets]], [[conversions]], [[campaigns]]); the singletons platform and [account] must stay in the root file.
imports = [
  "google/assets.toml",
  "google/conversions.toml",
  "google/campaigns/*.toml",
]
PatternBehaviour
"google/assets.toml"Imports a single named file
"google/campaigns/*.toml"Imports every .toml file inside the directory

[account] Section

The [account] table holds account-level settings that apply globally — identifiers and shared assets that can be referenced by name across all campaigns.
account.id
string
required
Your Google Ads account ID, without dashes. Adjar uses this to match the config to the correct account when pushing changes.
[account]
id = "4821937650"
A list of sitelink asset IDs to attach at the account level. These IDs must correspond to sitelink entries defined in your assets.toml. Account-level sitelinks can appear on any campaign that does not override them.
[account]
sitelinks = [ "sl-size-guide", "sl-returns" ]
Sitelink IDs are arbitrary slug strings you define in assets.toml. Keep them short and descriptive (e.g. sl-pricing, sl-free-trial) so your AI agent can reference them unambiguously.
account.callouts
array of strings
A list of callout asset IDs to attach at the account level. These IDs must correspond to callout entries defined in your assets.toml. Like sitelinks, account-level callouts are eligible to show on any campaign.
[account]
callouts = [ "co-free-shipping", "co-reviews" ]
account.structured_snippets
array of strings
A list of structured-snippet asset IDs to attach at the account level. These IDs must correspond to structured-snippet entries defined in your assets.toml. Like sitelinks and callouts, account-level structured snippets are eligible to show on any campaign that does not override them.
[account]
structured_snippets = [ "ss-product-types" ]

File Layout

Adjar does not enforce a specific directory layout. A config can stay a single file or be split across many via the imports directive above — the recommended convention is one file per campaign, with assets and conversions in their own files. See File Organization for when to split, how imports composes and resolves files, and the write-back rules that follow.
  • Campaigns — fields, budgets, targeting, and negative keywords inside each campaign file
  • Keywords — keyword match types and how negatives work at campaign vs. ad group level
  • Creatives — responsive search ads, headlines, descriptions, and final URLs
  • Assets — the sitelink, callout, and structured-snippet library that account/campaign attachments reference
  • Conversions — account-level conversion actions