Skip to content

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.

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.

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-Key and X-Integration-Key
  • Format: JSON (default); CSV via ?format=csv if 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)”
  1. 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.)
  2. In Windsor.ai, add a new data source → Custom REST API.
  3. 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.
  4. 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.
  5. Pick a destination. Looker Studio, Sheets, BigQuery, Snowflake, Power BI, Tableau, etc.
  6. Validate. Run a one-off pull in Windsor; confirm row counts and field names match an Adventive UI report for the same date range.
  • 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.
  • 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