Skip to developer documentation
Browse developer documentation
CLI documentation / Reports

Campaigns

attriboo reports campaigns

Read campaign revenue, recorded costs and return on ad spend.

Access: OAuth analytics:read or workspace key

Options

attriboo reports campaigns options
FieldTypeDescription
--sitestringWebsite ID or domain. Required when the workspace has more than one website.
--periodstringUTC date selection. from and to override period.

Values: realtime, today, yesterday, 7d, 30d, 90d, 12m, wtd, mtd, qtd, ytd, all.

Default: 30d.

--fromstringInclusive start date. Supply to as well.
--tostringInclusive end date. Supply from as well.
--comparestringComparison range.

Values: previous_period, mom, qoq, yoy, none.

Default: previous_period.

--modelstringHow recorded sources share revenue credit.

Values: first_touch, last_touch, linear, time_decay.

Default: first_touch.

--filtersstringJSON array string of up to twenty visitor filters, for example [{"dim":"country","op":"is","value":"US"}]. Dimensions: source, channel, campaign, entry_page, page, hostname, country, device, browser, os, goal. Operators: is, is_not. Values are exact strings up to 500 characters. All filters must match the visitor across available history; report dates then select activity for that cohort. Unmatched payments are excluded. Crawler counts remain website-wide; spend requires every filter to be source/channel/campaign. Preserve filters when paging.
--limitintegerMaximum rows where supported.

Default: 50.

--cursorstringA returned next_cursor. Keep the same website, report, dates, model, visitor filters and funnel selection.
--jsonbooleanCompact JSON instead of formatted JSON.
--csvbooleanCSV for the main row collection; nested values remain JSON cells. Cannot be combined with --json.

Read campaigns

Replace example websites, dates and cursor values with your own. Running these commands makes real requests or changes the local session.

Terminal command
attriboo reports campaigns --site shop.example.com --from 2026-10-01 --to 2026-10-07 --compare none --json

Example output

Illustrative stdout
{"site":{"id":"site_example","domain":"shop.example.com","currency":"USD"},"period":{"from":"2026-10-01T00:00:00.000Z","to":"2026-10-08T00:00:00.000Z","label":"Custom","compare":"none","attribution_model":"first_touch"},"report":"campaigns","rows":[{"campaign":"autumn","source":"google","visitors":100,"conversions":4,"revenue":20000,"ad_spend":5000,"roas":4,"cost_per_acquisition":1250,"net_profit":15000}]}

Output fields

attriboo reports campaigns output fields
FieldTypeDescription
siteobjectWebsite ID, domain and currency.
periodobjectResolved UTC boundaries; to is the exclusive timestamp after the selected end date.
rowsarrayReport records. See the fields below.
next_cursorstring | nullWhen provided, pass this value to continue; null means the last page. Some small-site reports omit this field.
coverageobjectWhen provided, describes completeness, snapshot time and row coverage. Row limits apply to this page, not to headline totals.

site fields

site nested fields
FieldTypeDescription
idstringWebsite ID.
domainstringWebsite domain.
currencystringThree-letter currency.

period fields

period nested fields
FieldTypeDescription
fromstringInclusive UTC start.
tostringExclusive UTC end.
labelstringHuman-readable date selection.
comparestringComparison selection.
attribution_modelstringRevenue-credit model.

rows[] fields

rows nested fields
FieldTypeDescription
campaignstringutm_campaign label.
sourcestringutm_source label.
visitorsintegerVisitors.
conversionsnumberAttributed conversion credit.
revenueintegerAttributed revenue in cents.
ad_spendintegerRecorded spend in cents.
roasnumber | nullRevenue divided by spend; null without spend.
cost_per_acquisitionnumber | nullCents per conversion; null without spend or conversions.
net_profitintegerRevenue less ad spend, in cents.

The data follows the campaigns API contract. CLI JSON omits the REST envelope.

Behavior and limits

Money is integer cents in site.currency. Percentages use a 0–100 scale.

A missing cost connection is not evidence that a campaign is free. No currency conversion is performed.

CLI JSON output is the API data object directly, without the REST status/data envelope. Default output is formatted JSON; --json is compact JSON.

CSV contains only the returned page's main row collection. Continue using returned next_cursor values rather than assuming a single CSV is a complete export.