# Ads Performance and Budget Pacing Auditor (`danielmichalek/ads-performance-anomaly-auditor`) Actor

Audit daily ad campaign exports for spend without conversions, CPA changes and budget pacing. Download campaign findings with the supporting figures. Ready to check your next export?

- **URL**: https://apify.com/danielmichalek/ads-performance-anomaly-auditor.md
- **Developed by:** [Daniel Michałek](https://apify.com/danielmichalek) (community)
- **Categories:** Marketing
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$50.00 / 1,000 campaign performance audit reports

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Ads Performance and Budget Pacing Auditor

Upload daily campaign totals from your own Meta, Google, TikTok or other ad export and receive review signals with the supporting arithmetic. The Actor finds mature spend without reported conversions, weighted CPA increases, ROAS and CTR declines, metric inconsistencies and deviations from a dated budget. It analyzes supplied data without ad-account access, AI calls or changes to campaigns.

### What it does

Each campaign is compared over the latest seven mature days and the preceding 28 days by default. The comparison ends at asOfDate minus conversionLagDays. Metrics use sums of numerators and denominators, rather than an average of daily ratios. Differences are calculated from unrounded totals; displayed derived metrics may be rounded.

Rules return ALERT, OK or INSUFFICIENT_DATA with explicit coverage, volume and missing-field reasons. No alert is not a guarantee of campaign health. Names and campaign IDs remain separate. Dates are account-timezone daily labels supplied by the customer; the Actor does not prove that a source export or attribution window is final.

### Input

Supply exactly one of rows (JSON objects) or csv (text with header). Maximum 5000 daily rows, 250 campaigns, 50 columns and 3MB input. Required row fields are date (YYYY-MM-DD), campaignId (string), spend and conversions. Optional metrics are impressions, clicks and conversionValue; absent optional metrics are unknown, not zero. Fractional conversions and signed conversion-value adjustments are supported. Negative spend or conversions are rejected.

Required report context is platform, accountId, currency, conversionDefinition, reportingTimezone and asOfDate. Use one account, platform, currency and conversion definition per run. When those fields are also supplied in rows they must agree. This prevents accidental comparisons across incompatible datasets, but it relies on the customer declaring the source correctly.

Common English and Polish column aliases are recognized. Use fieldMap to select exact custom columns when names are ambiguous, especially all clicks versus link clicks. An explicitly mapped column must exist; a source column cannot be reused for different metrics or identities. JSON IDs must be strings to preserve large advertising identifiers.

CSV supports comma, semicolon or tab delimiters, BOM and quoted cells. Set numberFormat to dot-decimal for1,234.50 or comma-decimal for1.234,50. The parser does not guess ambiguous locale settings. Duplicate campaign/day rows and multi-day rows with differing reporting starts/ends are rejected; aggregate ad or adset breakdowns before submitting daily campaign totals.

### Output

One dataset item contains context, campaign summaries, weighted current and baseline metrics, dated-budget calculations, rule decisions, priorities and limitations. Each finding includes observed values, thresholds and comparison evidence. The key-value store contains AUDIT (complete JSON), CAMPAIGNS_CSV (UTF-8 with BOM) and REPORT (Markdown summary). CSV formula prefixes are escaped.

The example export is synthetic: two campaigns over 35 days. Search purchases has rising CPA and falling ROAS/CTR; Retargeting purchases has mature spend with zero reported conversions. An explicit dated budget also demonstrates over-pacing and confirmed observed overspend. These are fixture business figures, not real customers or earned revenue.

### Pricing and cost control

The initial listing price is $0.05 per completed performance-report event, covering the whole accepted batch of up to 5000 rows and 250 campaigns. It is not charged per input row or per alert. A valid report can contain no alerts or insufficient-data decisions and is still a completed audit. Malformed input fails before a report event is emitted.

No paid model, proxy, advertisement or external data call is used. Apify runtime and event charges follow the active listing and account plan. Set the run charge limit to cap report events. Files and the dataset are persisted before the shared billing call; a storage failure prevents report emission.

### Limitations and fair use

Default comparison thresholds are minSpend=100 in the report currency, minConversions=5, minImpressions=1000, minCoverage=1, cpaIncreasePct=30, roasDropPct=30 and ctrDropPct=30. Thresholds must be strictly exceeded for change alerts. Default coverage requires every day in a window; provide explicit zero-activity rows only when the source actually reports zero. Lowering coverage is an explicit assumption. Missing days are never imputed.

Dated total budgets are optional. Linear pacing is an assumption and differs from platforms' average daily budget, learning and delivery rules. Pacing ratios and remaining-budget recommendations require complete daily coverage of the elapsed budget period. Observed rows exceeding a supplied total budget still establish a lower-bound overspend even with missing days. This is a review signal; the Actor never adjusts budgets.

Alerts are deterministic heuristics, not statistical significance or proof of tracking failure, creative fatigue, profit, fraud or a causal business diagnosis. Conversion value is not profit. Repeated or view-through conversions may exceed clicks and are not automatically treated as errors. A declared conversion lag does not guarantee final attribution.

Use data you are authorized to analyze and keep export/runs private where appropriate. Do not supply passwords, access tokens or customer contact data. Known source columns are selected into outputs; arbitrary extra source columns are not echoed. This is not anonymization: account/campaign labels and supplied financial metrics are part of the report, and Apify stores the original run input.

### Example

See examples/input.json for JSON and examples/input-csv.json for an equivalent CSV batch. The report's matureThrough date is 2026-10-30 for the example asOfDate 2026-10-31 and lag 1. Review a campaign's current/baseline coverage and eligibility reasons before interpreting its alert.

# Actor input Schema

## `rows` (type: `array`):

Provide either rows or CSV, not both. Canonical fields: date, campaignId, spend, conversions; optional campaignName, impressions, clicks, conversionValue. One campaign/day row, max5000 rows and250 campaigns.

## `csv` (type: `string`):

Alternative to rows. Paste a CSV with a header. Maximum3MB; explicit fieldMap can select custom source columns. Daily campaign totals only.

## `delimiter` (type: `string`):

Used only for CSV.

## `fieldMap` (type: `object`):

Optional canonical-to-source names, e.g. {"spend":"Total cost"}. Explicit source columns must exist. A source column cannot be reused by different metrics.

## `numberFormat` (type: `string`):

Dot decimal accepts1,234.50; comma decimal accepts1.234,50. Do not guess ambiguous separators.

## `platform` (type: `string`):

One platform per run. This is supplied-export analysis, not a connection to the ad account.

## `accountId` (type: `string`):

A non-secret account label or exact identifier used to keep one account per report.

## `currency` (type: `string`):

One uppercase three-letter currency per report. Mixed currencies are rejected; no FX conversion.

## `conversionDefinition` (type: `string`):

State exactly what the conversions column counts, e.g. purchases with seven-day click attribution. Mixed definitions are rejected when declared in rows.

## `reportingTimezone` (type: `string`):

IANA timezone used by the supplied daily date labels. Date labels are not converted from a different timezone.

## `asOfDate` (type: `string`):

YYYY-MM-DD in the account reporting timezone. Rows after this date are excluded. This does not automatically prove source completeness.

## `currentDays` (type: `integer`):

Number of mature days in the comparison window.

## `baselineDays` (type: `integer`):

Prior mature period. Metrics use weighted ratios of sums, so period lengths may differ.

## `conversionLagDays` (type: `integer`):

Exclude this many recent days through asOfDate from conversion comparisons. Lag is an assumption, not a guarantee of final attribution.

## `thresholds` (type: `object`):

Defaults: minSpend100, minConversions5, minImpressions1000, minCoverage1, cpaIncreasePct30, roasDropPct30, ctrDropPct30, pacingTolerancePct20. Money is in the one report currency; minimum coverage1 requires every day.

## `budgets` (type: `array`):

Entries: campaignId,startDate,endDate,totalBudget and optional matching currency. Linear pacing requires complete daily rows since budget start. No campaign settings are changed.

## `maxItems` (type: `integer`):

One completed report and one performance-report event per run.

## Actor input object example

```json
{
  "rows": [
    {
      "date": "2026-09-26",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-26",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-09-27",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-27",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-09-28",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-28",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-09-29",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-29",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-09-30",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-30",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-01",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-01",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-02",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-02",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-03",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-03",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-04",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-04",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-05",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-05",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-06",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-06",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-07",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-07",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-08",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-08",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-09",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-09",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-10",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-10",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-11",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-11",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-12",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-12",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-13",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-13",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-14",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-14",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-15",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-15",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-16",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-16",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-17",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-17",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-18",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-18",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-19",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-19",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-20",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-20",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-21",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-21",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-22",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-22",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-23",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-23",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-24",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-24",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-25",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-25",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-26",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-26",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-27",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-27",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-28",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-28",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-29",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-29",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-30",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-30",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    }
  ],
  "delimiter": ",",
  "fieldMap": {},
  "numberFormat": "dot-decimal",
  "platform": "google",
  "accountId": "demo-account",
  "currency": "PLN",
  "conversionDefinition": "Purchases, seven-day click attribution",
  "reportingTimezone": "Europe/Warsaw",
  "asOfDate": "2026-10-31",
  "currentDays": 7,
  "baselineDays": 28,
  "conversionLagDays": 1,
  "thresholds": {},
  "budgets": [],
  "maxItems": 1
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `audit` (type: `string`):

No description

## `csv` (type: `string`):

No description

## `report` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "rows": [
        {
            "date": "2026-09-26",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-09-26",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-09-27",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-09-27",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-09-28",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-09-28",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-09-29",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-09-29",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-09-30",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-09-30",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-01",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-01",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-02",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-02",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-03",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-03",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-04",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-04",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-05",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-05",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-06",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-06",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-07",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-07",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-08",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-08",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-09",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-09",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-10",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-10",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-11",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-11",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-12",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-12",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-13",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-13",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-14",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-14",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-15",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-15",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-16",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-16",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-17",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-17",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-18",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-18",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-19",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-19",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-20",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-20",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-21",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-21",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-22",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-22",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-23",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250
        },
        {
            "date": "2026-10-23",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100
        },
        {
            "date": "2026-10-24",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100
        },
        {
            "date": "2026-10-24",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0
        },
        {
            "date": "2026-10-25",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100
        },
        {
            "date": "2026-10-25",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0
        },
        {
            "date": "2026-10-26",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100
        },
        {
            "date": "2026-10-26",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0
        },
        {
            "date": "2026-10-27",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100
        },
        {
            "date": "2026-10-27",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0
        },
        {
            "date": "2026-10-28",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100
        },
        {
            "date": "2026-10-28",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0
        },
        {
            "date": "2026-10-29",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100
        },
        {
            "date": "2026-10-29",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0
        },
        {
            "date": "2026-10-30",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100
        },
        {
            "date": "2026-10-30",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0
        }
    ],
    "platform": "google",
    "accountId": "demo-account",
    "currency": "PLN",
    "conversionDefinition": "Purchases, seven-day click attribution",
    "reportingTimezone": "Europe/Warsaw",
    "asOfDate": "2026-10-31"
};

// Run the Actor and wait for it to finish
const run = await client.actor("danielmichalek/ads-performance-anomaly-auditor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "rows": [
        {
            "date": "2026-09-26",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-09-26",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-09-27",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-09-27",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-09-28",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-09-28",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-09-29",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-09-29",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-09-30",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-09-30",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-01",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-01",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-02",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-02",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-03",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-03",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-04",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-04",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-05",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-05",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-06",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-06",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-07",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-07",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-08",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-08",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-09",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-09",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-10",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-10",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-11",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-11",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-12",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-12",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-13",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-13",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-14",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-14",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-15",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-15",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-16",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-16",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-17",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-17",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-18",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-18",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-19",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-19",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-20",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-20",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-21",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-21",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-22",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-22",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-23",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 50,
            "conversions": 5,
            "impressions": 2500,
            "clicks": 100,
            "conversionValue": 250,
        },
        {
            "date": "2026-10-23",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 20,
            "conversions": 2,
            "impressions": 2000,
            "clicks": 40,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-24",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-24",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0,
        },
        {
            "date": "2026-10-25",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-25",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0,
        },
        {
            "date": "2026-10-26",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-26",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0,
        },
        {
            "date": "2026-10-27",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-27",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0,
        },
        {
            "date": "2026-10-28",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-28",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0,
        },
        {
            "date": "2026-10-29",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-29",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0,
        },
        {
            "date": "2026-10-30",
            "campaignId": "search-1",
            "campaignName": "Search purchases",
            "spend": 150,
            "conversions": 2,
            "impressions": 2500,
            "clicks": 10,
            "conversionValue": 100,
        },
        {
            "date": "2026-10-30",
            "campaignId": "retarget-2",
            "campaignName": "Retargeting purchases",
            "spend": 100,
            "conversions": 0,
            "impressions": 2000,
            "clicks": 20,
            "conversionValue": 0,
        },
    ],
    "platform": "google",
    "accountId": "demo-account",
    "currency": "PLN",
    "conversionDefinition": "Purchases, seven-day click attribution",
    "reportingTimezone": "Europe/Warsaw",
    "asOfDate": "2026-10-31",
}

# Run the Actor and wait for it to finish
run = client.actor("danielmichalek/ads-performance-anomaly-auditor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "rows": [
    {
      "date": "2026-09-26",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-26",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-09-27",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-27",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-09-28",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-28",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-09-29",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-29",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-09-30",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-09-30",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-01",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-01",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-02",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-02",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-03",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-03",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-04",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-04",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-05",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-05",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-06",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-06",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-07",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-07",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-08",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-08",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-09",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-09",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-10",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-10",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-11",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-11",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-12",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-12",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-13",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-13",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-14",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-14",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-15",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-15",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-16",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-16",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-17",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-17",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-18",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-18",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-19",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-19",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-20",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-20",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-21",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-21",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-22",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-22",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-23",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 50,
      "conversions": 5,
      "impressions": 2500,
      "clicks": 100,
      "conversionValue": 250
    },
    {
      "date": "2026-10-23",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 20,
      "conversions": 2,
      "impressions": 2000,
      "clicks": 40,
      "conversionValue": 100
    },
    {
      "date": "2026-10-24",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-24",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-25",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-25",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-26",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-26",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-27",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-27",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-28",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-28",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-29",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-29",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    },
    {
      "date": "2026-10-30",
      "campaignId": "search-1",
      "campaignName": "Search purchases",
      "spend": 150,
      "conversions": 2,
      "impressions": 2500,
      "clicks": 10,
      "conversionValue": 100
    },
    {
      "date": "2026-10-30",
      "campaignId": "retarget-2",
      "campaignName": "Retargeting purchases",
      "spend": 100,
      "conversions": 0,
      "impressions": 2000,
      "clicks": 20,
      "conversionValue": 0
    }
  ],
  "platform": "google",
  "accountId": "demo-account",
  "currency": "PLN",
  "conversionDefinition": "Purchases, seven-day click attribution",
  "reportingTimezone": "Europe/Warsaw",
  "asOfDate": "2026-10-31"
}' |
apify call danielmichalek/ads-performance-anomaly-auditor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,danielmichalek/ads-performance-anomaly-auditor"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/w1OwDarUtTnGJdOCe/builds/zIa3RHdZxemRnNkP3/openapi.json
