adjar report pulls a single day or a calendar month of performance data from your live Google Ads account and renders it as a single, data-only markdown file. It is read-only — no config diffing, no writes. The output is designed to be handed to an AI agent (or a human) as objective context: raw counts only, with every derived metric computed from those counts so the math stays auditable.
Syntax
Flags
Path to the root TOML config file (e.g.,
config/google.toml). The platform and account are read from it.Path to the platform credentials JSON file (e.g.
google.json). Alternatively set ADJAR_CREDENTIALS. See Authentication.A single day to report on (e.g.,
2026-04-15). Mutually exclusive with --month — passing both is an error. A single-day report omits the Daily breakdown section, which would be redundant.The calendar month to report on (e.g.,
2026-04). Mutually exclusive with --day. Defaults to the last complete month when neither flag is given.Path to write the report to (e.g.,
reports/2026-04.google.md). The parent directory is created automatically. Omit to print the report to stdout instead.Report is read-only
adjar report only runs read-only queries against the Google Ads API. It never modifies your account and never touches your local config — run it as often as you like.
Examples
What the report contains
The file opens with YAML frontmatter (platform, month, account, currency, timezone, range, generated_at — single-day reports add a day field), then a title and a one-line scope summary, followed by these sections:
| Section | What it shows |
|---|---|
| Account totals | Impressions, clicks, cost, conversions, and value for the whole account over the period. |
| Campaigns | The same metrics broken down per campaign. |
| Conversions by keyword | Day-by-day, which keyword drove each conversion, using all conversions (so secondary actions hidden from the primary Conversions column are included). |
| Daily breakdown | Per-day metrics across all campaigns. Omitted from single-day (--day) reports. |
| Ad groups | Metrics per ad group. |
| Ads | Metrics per ad, labeled by name, first RSA headline, or final URL. |
| Keyword quality | Current Quality Score (1–10) and Google’s Above/Avg/Below ratings for expected CTR, ad relevance, and landing-page experience, plus the landing page each keyword’s ad points at. Active (enabled) keywords only, worst score first. |
Reports store raw counts only. Derived metrics — CTR, CPC, CPM, conversion rate, cost/conversion, ROAS — are computed from those counts at render time, so the stored file stays the source of truth and the math is auditable.
Quality Score is a current snapshot, not a period-historical value — Google exposes only the latest computed score, and it resets when a keyword is recreated (e.g. a match-type change).
All dates are in your Google Ads account’s time zone — the reporting window, the daily rows, and the day each click and conversion is attributed to. That zone is read from the account and recorded in the
timezone frontmatter field, and generated_at carries the same zone’s offset, so day boundaries stay consistent throughout the file.