When to use
The connector is read-only. It does not create campaigns, change budgets, or import videos.
Prerequisites
- Python 3.13+ and uv
- An API key from Settings → Developer → API keys:
- Campaigns:
campaigns:read+metrics:read - Soundlinks:
soundlinks:read
- Campaigns:
soundlinks:read.
Not on PyPI yet. Clone the repo and install with
uv sync.1. Install
SOUNDLINK_API_KEY in .env.
For BigQuery, install the extra and point the destination:
2. Ping
GET /v1/ping — any valid key works, regardless of scopes.
3. Sync
--mode full once per entity (backfill), then keep incremental on a daily schedule.
Re-runs are idempotent (upsert /
MERGE on the documented primary keys). To test one resource: --campaign-id <uuid> or --soundlink-id <id>.
DuckDB default file: ./data/soundlink.duckdb.
What you get
Join metrics to catalog on
campaign_id or soundlink_id. Rows include account_id (your organization) and provider (soundlink).
Primary keys and field lists: Campaign metrics and Soundlink metrics. Do not sum listeners across days.