Windsor.ai Integration
Status: Stub — task #41 (
07-as-built-runbook.md§13). Not yet implemented or documented externally.Audience: Adventive customers (publishers and agencies) who want to land Adventive campaign / advertiser / analytics data in any of Windsor.ai’s destinations (Looker Studio, Sheets, BigQuery, Snowflake, Power BI, Tableau, etc.) without building a bespoke pipeline.
What Windsor.ai is
Section titled “What Windsor.ai is”Windsor.ai is a marketing-data-pipeline service — connectors on the source side (ad platforms, analytics, attribution, custom REST APIs) and connectors on the destination side (BI tools, spreadsheets, warehouses). Customers configure a “stream” from a source to a destination, Windsor schedules the pulls, normalizes the data, and lands it.
For Adventive, Windsor matters because one Adventive source unlocks all of Windsor’s destinations at once — we don’t have to ship a Tableau connector, a Power BI connector, a BigQuery loader, etc. independently.
Integration model
Section titled “Integration model”Windsor’s “Custom REST API” source can already consume the Adventive Public API today via:
- Endpoint: any Adventive Public API URL (e.g.
https://api.adventive.com/v2.0/<endpoint>) - Headers:
X-Api-KeyandX-Integration-Key - Format: JSON (default); CSV via
?format=csvif needed - Pagination: as documented in the Public API OpenAPI spec
A first-class Windsor connector (where Adventive is a named source in their catalog) is the longer-term goal — it means customers select “Adventive” from a dropdown rather than wiring up REST headers themselves. That requires a partner conversation with Windsor; the generic REST recipe documented here ships first.
End-user setup (draft outline — not yet validated)
Section titled “End-user setup (draft outline — not yet validated)”- Get Adventive credentials. From the Adventive admin dashboard, copy the API Key and Integration Key for the account. (Where this lives in the new admin dashboard is tracked under
admin-dashboard-cf-migration.) - In Windsor.ai, add a new data source → Custom REST API.
- Configure the request.
- URL: the Adventive Public API endpoint to pull (campaign performance, advertiser summary, etc. — link to OpenAPI doc).
- HTTP method:
GET. - Headers:
X-Api-Key: <your key>,X-Integration-Key: <your integration key>. - Query params: date range, group-by, format as needed.
- Set the schedule. Match Adventive’s hourly per-key rate limit — Windsor’s default daily/hourly pulls are well within it for a single account.
- Pick a destination. Looker Studio, Sheets, BigQuery, Snowflake, Power BI, Tableau, etc.
- Validate. Run a one-off pull in Windsor; confirm row counts and field names match an Adventive UI report for the same date range.
Open items before this guide ships
Section titled “Open items before this guide ships”- Confirm exact Windsor “Custom REST API” field names and how it handles
X-Integration-Key(some Windsor flows expect auth in the URL — needs testing). - Decide whether to publish under
developer.adventive.com(task #36) or as a knowledge-base article. Probably both. - Reach out to Windsor partnerships re: a named-source listing.
- Cross-link from the Looker Studio guide (task #33) — many customers will choose between the Adventive Apps Script connector and Windsor → Looker Studio, and we should explain when each is appropriate.
References
Section titled “References”- Public API surface:
../handoff/PLAN.md(auth headers, version paths, response formats) - Auth contract:
../07-as-built-runbook.md§11 (adventive-auth-helper-worker) - Backlog entry:
../07-as-built-runbook.md§13 — task #41 - Sibling integrations:
./README.md