StackAdapt GraphQL Geographic State Request
AnsweredWe're migrating from Fivetran's legacy StackAdapt (REST) connector to the stackadapt-graphql connector. The REST connector gave us us_state_options on the campaign object; the GraphQL connector has no geographic field at all (note campaign.state is lifecycle — PAUSED/DRAFT/ENDED — not geography). We report media spend by state for PA/NY/NJ, so this is blocking as we resume spend.
We've had exactly the data we need from you before, via manual export from StackAdapt reporting:
Date Campaign ID State Spend Impressions
2024-01-11 576731 NY $291.05 21,984
2024-01-11 576731 PA $509.19 40,553
We reviewed the full connector schema. The only geographic field anywhere is city, on insight_campaign_city and insight_campaign_group_city — no region, state, country or DMA on any table. Those two tables also appear to have no date/time column (no granularity_time equivalent, unlike campaign_delivery), so even city data looks like a lifetime rollup rather than a daily series.
Questions:
-Can your reporting/insights API return campaign delivery by US state?
-If state isn't available but city is, does the city response include a parent region/state field?
-Does the GraphQL API expose campaign geo targeting — the REST us_state_options equivalent — as a fallback?
-Any date-range or retention limits on geo reporting? We'd want to backfill from 2023-12-21.
-
Official comment
Hi Dawson,
Thank you for the clear write-up and for the context on your migration from the legacy StackAdapt connector. We have added this request to our backlog and are currently reviewing the technical feasibility of exposing state-level delivery data through the GraphQL connector. Would a daily series by US state, with spend and impressions per campaign, cover your reporting needs, or do you also need other regions? We will keep you updated on this thread as we make progress.
Best,
Syead Mujtaba Imam Rizwi -
Hello Syead,
I work with Dawson and wanted to clarify our ask here. I already documented this in our internal ticket (https://support.fivetran.com/hc/en-us/requests/421021) and our Customer Support Engineer on that ticket mentioned the context would be forwarded here, but it sounds like something may have been lost in translation. I will copy the relevant parts of that message below:
We have explored in the StackAdapt API, and believe there is a simpler solution for our needs.
To clarify, we don't need state-level delivery metrics at this time. Our use case is simpler: we need each campaign's geo targeting configuration, which is already available on the Campaign type via
geo.locations. We've confirmed this works with a straightforward query:{ campaigns(first: 5) { nodes { id name geo { locations { nodes { name regionCode countryCode administrativeLevel } } } } } }Which returns exactly what we need — e.g.:
{ "id": "[campaign_id]", "name": "[name]", "geo": { "locations": { "nodes": [ { "name": "Pennsylvania", "regionCode": "PA", "countryCode": "US", "administrativeLevel": "REGION" }, { "name": "New York", "regionCode": "NY", "countryCode": "US", "administrativeLevel": "REGION" } ] } } }Based on the ERD, it looks like the connector does not currently sync this nested
geo.locationsobject as part of the campaign table, but I imagine it could easily be added. The connector is already syncing theCampaignobject with most of its scalar fields (e.g.name,channel_type,timezone,state,status, etc.). Thegeofield lives on the sameCampaignobject, so solving this for us may amount to adding one more nested field on the query the connector already appears to be running.In GraphQL terms, the request would go from something like:
{ campaigns { nodes { id name channelType # ... current fields from the ERD } } }to:
{ campaigns { nodes { id name channelType
# ... current fields from the ERD geo { locations { nodes { regionCode name } } } } } }Even adding the
geofield on its own would be a significant help (we can parse the JSON ourselves).
Can you please advise whether this smaller scope (and to be clear, a regression from the previous version of this connector) is something that Fivetran would be able to resolve for us more quickly?
Please let me know if anything is unclear or appears to be inaccurate; I would be happy to connect further if I can be of any help!
Please sign in to leave a comment.
Comments
2 comments