← Back to Skills
Automation

supermetrics-openclawd

bartschneider By bartschneider 👁 10 views ▲ 0 votes

Official Supermetrics skill.

GitHub
---
name: supermetrics
description: "Official Supermetrics skill. Query marketing data from 100+ platforms including Google Analytics, Meta Ads, Google Ads, and LinkedIn. Requires API key."
version: 1.0.1
triggers:
  - marketing data
  - supermetrics
  - analytics
  - ads performance
  - campaign metrics
  - google analytics
  - meta ads
  - facebook ads
  - google ads
  - linkedin ads
  - marketing report
author: supermetrics
tags: [marketing, analytics, supermetrics, api, data]
requires:
  env:
    - SUPERMETRICS_API_KEY
---

# Supermetrics Marketing Data

Query marketing data from 100+ platforms including Google Analytics, Meta Ads, Google Ads, and LinkedIn.

## Usage

Import the helper module:

```python
from supermetrics import (
    discover_sources,
    discover_accounts,
    discover_fields,
    query_data,
    get_results,
    get_today,
    search,
    health,
)
```

## Functions

### discover_sources()

List all available marketing platforms.

```python
result = discover_sources()
for src in result['data']['sources']:
    print(f"{src['id']}: {src['name']}")
```

### discover_accounts(ds_id)

Get connected accounts for a data source.

**Common data source IDs:**
| ID | Platform |
|----|----------|
| FA | Meta Ads (Facebook) |
| AW | Google Ads |
| GAWA | Google Analytics |
| GA4 | Google Analytics 4 |
| LI | LinkedIn Ads |
| AC | Microsoft Advertising (Bing) |

```python
result = discover_accounts("GAWA")
for acc in result['data']['accounts']:
    print(f"{acc['account_id']}: {acc['account_name']}")
```

### discover_fields(ds_id, field_type=None)

Get available metrics and dimensions.

```python
# Get all fields
result = discover_fields("GAWA")

# Get only metrics
result = discover_fields("GAWA", "metric")

# Get only dimensions
result = discover_fields("GAWA", "dimension")
```

### query_data(...)

Execute a marketing data query. Returns schedule_id for async retrieval.

```python
result = query_data(
    ds_id="GAWA",
    ds_accounts="123456789",
    fields=["date", "sessions", "pageviews", "users"],
    date_range_type="last_7_days"
)
schedule_id = result['data']['schedule_id']
```

**Parameters:**
- `ds_id` (required): Data source ID
- `ds_accounts` (required): Account ID(s) from discover_accounts()
- `fields` (required): Field ID(s) from discover_fields()
- `date_range_type`: `last_7_days`, `last_30_days`, `last_3_months`, `custom`
- `start_date`, `end_date`: For custom date range (YYYY-MM-DD)
- `filters`: Filter expression (e.g., `"country == United States"`)
- `timezone`: IANA timezone (e.g., `"America/New_York"`)

**Filter operators:**
- `==`, `!=` - equals, not equals
- `>`, `>=`, `<`, `<=` - comparisons
- `=@`, `!@` - contains, does not contain
- `=~`, `!~` - regex match

### get_results(schedule_id)

Retrieve query results.

```python
result = get_results(schedule_id)
for row in result['data']['data']:
    print(row)
```

### get_today()

Get current UTC date for date calculations.

```python
result = get_today()
print(result['data']['date'])  # "2026-02-03"
```

### search(query)

Search across Supermetrics resources for guidance and suggestions.

```python
result = search("facebook ads metrics")
print(result['data'])
```

### health()

Check Supermetrics server health status.

```python
result = health()
print(result['data']['status'])  # "healthy"
```

## Workflow Example

```python
from supermetrics import (
    discover_accounts,
    discover_fields,
    query_data,
    get_results,
)

# 1. Find accounts
accounts = discover_accounts("GAWA")
account_id = accounts['data']['accounts'][0]['account_id']

# 2. See available fields
fields = discover_fields("GAWA", "metric")
print([f['id'] for f in fields['data']['metrics'][:5]])

# 3. Query data
query = query_data(
    ds_id="GAWA",
    ds_accounts=account_id,
    fields=["date", "sessions", "users", "pageviews"],
    date_range_type="last_7_days"
)

# 4. Get results
data = get_results(query['data']['schedule_id'])
for row in data['data']['data']:
    print(row)
```

## Response Format

All functions return:

```python
{"success": True, "data": {...}}  # Success
{"success": False, "error": "..."}  # Error
```
automation

Comments

Sign in to leave a comment

Loading comments...