adjar apply is the command that makes things real. It re-runs the diff computed by adjar plan, presents you with a final confirmation prompt, and then executes each change against the Google Ads API in a safe, ordered sequence. When the API assigns new IDs to created resources, Adjar writes them back into your local TOML files automatically — keeping config and live account permanently in sync. Because every apply is a discrete, committable snapshot, rollback is as simple as git revert.
Syntax
Flags
Path to the root TOML config file (e.g.,
config/google.toml). Adjar resolves all referenced subdirectory files relative to this root.Path to the platform credentials JSON file (e.g.
google.json). Alternatively set ADJAR_CREDENTIALS. See Authentication.Skip the interactive confirmation prompt and apply immediately. Use with care in automated scripts and CI pipelines — always ensure the plan output has been reviewed before passing this flag.
Execute a previously-reviewed plan file verbatim instead of computing a fresh diff. The plan file is rejected if your config has changed since it was generated.
The apply process
adjar apply follows a structured sequence to ensure changes are executed safely and your config stays accurate:
Re-compute the plan
Adjar fetches the current live account state and diffs it against your local config, exactly as
adjar plan does. This ensures the plan reflects reality at the moment of apply, not at the moment you last ran plan. The identical plan output is printed.Confirm
Adjar prompts
Do you want to apply these changes? (yes/no): before making any API writes. Type yes to proceed. Pass --yes to skip this prompt in automated workflows.Validate update and archive steps
Before committing anything, Adjar validates each update/archive step against Google — confirming the targeted resources still exist and can be changed. If a validation fails, apply stops before any writes happen.
Execute the steps
Adjar applies the steps in dependency order — campaigns before ad groups, ad groups before keywords and ads, with archives last. Each step is printed with a
→ marker as it runs. If a step fails, Adjar halts and reports the error without rolling back already-completed steps.Example
adjar apply first prints the same plan that adjar plan produces (the fetch progress, headline, summary, and grouped changes), then prompts for confirmation. After you answer yes, it validates and applies the steps:
After apply: commit your config
After a successful apply, your TOML files will have been updated with any newly assigned IDs. Commit the entire config directory to keep your repository in sync:adjar plan will detect the ID fields as local changes, which will cause noise in future diffs.
Rollback
Because Adjar encourages committing config after every apply, rollback is a standard Git operation. To undo the last apply:Apply is idempotent
Runningadjar apply when your local config is already in sync with the live account is a safe no-op:
adjar apply in automated pipelines without guarding against accidental double-runs.
Next steps
- Use
adjar planbefore every apply to review changes. - Re-run
adjar importto reset local config to the live account state if your config and live account diverge unexpectedly.