# Apple Ads report

Read native Apple campaign, ad group, ad, keyword or search-term performance for explicit campaigns. Works on your own Apple Ads account, connected through Get MCP Ads. Needs ad account id, campaign ids, start date and more.

Read native Apple campaign, ad group, ad, keyword or search-term performance for explicit campaigns. Preserves spend currency, attribution metrics, timezone, native grand totals and pagination. Never sum ratios or assume a page is the entire account. Monthly/weekly/daily historical reports are supported subject to Apple retention. Omit granularity for period totals. Campaign reports accept up to 20 campaigns; other levels require exactly one campaign per call. Agentik price: $0.005 per call.

- Tool ID: `apple-ads/get-report`
- Name in the catalog: Apple Ads: Get report
- Provider: [Apple Ads](/providers/apple-ads.md)
- Capability: [Apple Search Ads reporting](/tools/apple-ads/reporting.md)
- Price: $0.005 per call
- Workspace access is automatic. Connect a platform using the link and notice returned to your AI assistant; an owner or admin completes platform consent and returns to the conversation; see the [guide](/docs/getmcpads.md).
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_call",
  "amountUsd": 0.005
}
```

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "adAccountId": {
      "type": "string",
      "pattern": "^[1-9]\\d{0,14}$",
      "description": "A selected Apple Ads ad account from list_accounts."
    },
    "campaignIds": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[1-9]\\d{0,14}$",
        "description": "Apple numeric ID, as a string."
      },
      "minItems": 1,
      "maxItems": 20,
      "description": "Campaign IDs: up to 20 for campaigns; exactly one for adgroups, ads, keywords or searchterms."
    },
    "level": {
      "type": "string",
      "enum": [
        "campaigns",
        "adgroups",
        "ads",
        "keywords",
        "searchterms"
      ],
      "default": "campaigns",
      "description": "Entity or aggregation level for the requested report."
    },
    "startDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "First date of the reporting period, in YYYY-MM-DD format."
    },
    "endDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Last date of the reporting period, in YYYY-MM-DD format, on or after startDate."
    },
    "timeZone": {
      "type": "string",
      "enum": [
        "ORTZ",
        "UTC"
      ],
      "default": "ORTZ",
      "description": "Report timezone: account timezone (ORTZ) or UTC."
    },
    "granularity": {
      "type": "string",
      "enum": [
        "HOURLY",
        "DAILY",
        "WEEKLY",
        "MONTHLY"
      ],
      "description": "Time bucket used to aggregate reporting rows."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-zA-Z][a-zA-Z0-9]*$",
        "maxLength": 100
      },
      "minItems": 1,
      "maxItems": 100,
      "description": "Native metric names. Omit to retrieve all native metrics; Apple validates availability."
    },
    "groupBy": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "deviceClass",
          "ageRange",
          "gender",
          "countryCode",
          "adminArea",
          "locality",
          "storefront",
          "countryOrRegion"
        ]
      },
      "minItems": 1,
      "maxItems": 3,
      "description": "Native demographic or geographic grouping dimensions."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000,
      "default": 0,
      "description": "Zero-based number of rows to skip before returning results."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 100,
      "description": "Maximum number of returned items or rows. The declared bounds and default apply; use pagination for additional results."
    },
    "workspace_id": {
      "type": "string",
      "description": "Authorized workspace ID from list_accounts/list_workspaces. Use the user's chosen workspace; never guess between clients. Optional when a unique account identifies it."
    }
  },
  "required": [
    "adAccountId",
    "campaignIds",
    "startDate",
    "endDate"
  ]
}
```

## Published example

No example input is published for this tool. Ask for the inputs required by its schema.

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[REST inspection](https://api.agentik.cc/v1/tools/apple-ads/get-report) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/apple-ads/get-report) · [Agent index](/llms.txt)
