Skip to main content
This guide connects an ad account to Adjar, exports it as plain-text config, and walks your first change through the full loop — ask, review, apply, measure. It works the same for Google Ads and OpenAI Ads; where a command differs, pick your platform’s tab. The whole process takes about 10 minutes.

Prerequisites

Before you begin, make sure you have:
  • The adjar CLI installed
  • An ad account you want to manage, with API access — Google Ads or OpenAI Ads
  • An AI agent or assistant (Claude Code, Cursor, or any other)

Install the CLI

macOS (Apple silicon + Intel):
This downloads the standalone adjar binary, verifies its checksum, and installs it to ~/.local/bin — no Node or other runtime required.
macOS only for now. Linux and Windows builds are on the way.
Verify the installation:

Set up credentials

Each platform has its own credentials file. Produce yours, then point Adjar at it.
Follow Get Google Ads API access to produce your google.json file, then point Adjar at it:
Or pass --credentials /path/to/google.json on any command. Your account ID is the customer_id in that file — you’ll pass it to adjar import next.

The loop: ask, review, apply, measure

Adjar replaces the ad console with a config-driven workflow. Your account lives as plain-text TOML in your repo, your AI agent edits it, and the adjar CLI turns the diff into a reviewable plan it applies only when you approve. The performance report Adjar pulls back becomes your next ask. Import your account once, then run the loop.
1

Import your account

Export your entire account into local TOML config. Replace <id> with your account ID.
Adjar writes every campaign, ad group, keyword, and creative into config/google.toml as plain text you can version-control.
Re-run it anytime to refresh the file from the live account.
Large accounts can be split across multiple files with a top-level imports directive. See the config reference for Google Ads or OpenAI Ads.
2

Commit your config

Add the config to version control. This is the baseline — every future change shows up as a diff against it.
Store your config in the same repo as your website or app, so your AI agent already has the context it needs when you ask it to work on ads.
3

Ask your agent to make a change

Open your AI agent and tell it what you want in plain language. It reads your config, then edits the TOML directly — no special prompt engineering, the format is self-describing.
4

Review the plan

Before anything touches your live account, run adjar plan. Adjar compares your local config against the live account and prints every change as a diff. The platform is read from the config’s platform field, so a single --config is all it needs:
The plan shows:
  • Fields being changed, with old vs. new values
  • New campaigns, ad groups, keywords, or ads being created
  • Resources being paused or removed
Nothing is applied until you approve.
5

Apply the changes

If the plan looks right, apply it:
Adjar executes the changes against the platform’s API and writes the assigned IDs back into your config. Commit the result — your repo is now the source of truth:
Every change is a git commit. If an experiment underperforms, rollback is git revert — not a hunt through the console’s change history.
6

Pull a performance report

Close the loop: adjar report pulls a month of performance as plain-text markdown, written right beside your config. Pass --month for a calendar month, or omit it to default to the last complete month.
Need a single day instead? Pass --day 2026-05-31. It’s mutually exclusive with --month.
Config and report are both plain text, so next round your agent reads them side by side — spotting what spends without converting before it proposes the next change. Commit it alongside your config, and the next ask starts here.
That’s the full loop — and it repeats. Each round starts from the latest report.

How the pieces fit together

Next steps

CLI Reference

The core workflow plus full flags and options for every command.

Config Reference

Understand every field in your TOML config — Google Ads and OpenAI Ads.

File Organization

How to split config across files and how imports composes them.

adjar report

Pull performance into Markdown that closes the loop.