# Google Ads shopping products

Read-only Merchant Center product catalog/eligibility report via shopping_product. Works on your own Google Ads account, connected through Get MCP Ads. Needs customer id.

Read-only Merchant Center product catalog/eligibility report via shopping_product. Supports account, campaign, and ad group scopes with performance metrics when the account has Shopping/PMax e-commerce data. Agentik price: $0.005 per call.

- Tool ID: `google-ads/get-shopping-products`
- Name in the catalog: Google Ads: Get shopping products
- Provider: [Google Ads](/providers/google-ads.md)
- Capability: [Google Ads reporting](/tools/google-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": {
    "customerId": {
      "type": "string",
      "description": "Google Ads customer ID (without dashes, e.g., 1234567890)"
    },
    "scope": {
      "type": "string",
      "enum": [
        "account",
        "campaign",
        "ad_group"
      ],
      "default": "account",
      "description": "shopping_product scope. ad_group scope requires campaignId and adGroupId."
    },
    "startDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional start date YYYY-MM-DD. Used only as a WHERE filter; shopping_product cannot segment by date."
    },
    "endDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional end date YYYY-MM-DD. Used only as a WHERE filter; shopping_product cannot segment by date."
    },
    "campaignId": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Campaign ID for campaign or ad_group scope"
    },
    "adGroupId": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Ad group ID for ad_group scope"
    },
    "merchantCenterId": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Optional Merchant Center ID filter"
    },
    "itemId": {
      "type": "string",
      "minLength": 1,
      "description": "Optional Merchant Center item ID filter"
    },
    "titleContains": {
      "type": "string",
      "minLength": 1,
      "description": "Optional product title substring filter"
    },
    "feedLabel": {
      "type": "string",
      "minLength": 1,
      "description": "Optional feed label filter"
    },
    "statusFilter": {
      "type": "string",
      "enum": [
        "ELIGIBLE",
        "ELIGIBLE_LIMITED",
        "NOT_ELIGIBLE",
        "UNKNOWN",
        "UNSPECIFIED"
      ],
      "description": "Native status values used to filter the returned entities."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10000,
      "default": 1000,
      "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": [
    "customerId"
  ]
}
```

## 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/google-ads/get-shopping-products) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/google-ads/get-shopping-products) · [Agent index](/llms.txt)
