Read this case study on its own page
Challenge
Google's analytics, advertising and search data live in separate portals. Manual exports don't scale, and reporting built on a vendor dashboard is only as durable as that vendor's API and pricing.
Approach
A set of C# ingestion functions pull GA4 page and session data, YouTube analytics and video details, keyword-level Google Ads performance — including impression share lost to budget and to rank, device and geography breakdowns and ad-group reporting — Bing Webmaster query and page statistics, and Google Search Console queries into the site's first-party SQL store on regular schedules, with an on-demand backfill for any source and date range. An internal dashboard API aggregates across those tables — overview, analytics, ad performance, leads and SEO/media views — and joins keyword statistics with attribution records for a blended return-on-spend view. In the deployment pipeline, only the pages that changed are submitted to search engines through IndexNow and the Google Indexing API, authenticated with keyless federated identity. A small management service also lets Tag Manager tags and triggers be listed and updated through the API rather than the UI.
Outcome
- All Google and Bing data in first-party SQL, queryable alongside sessions and attribution
- Budget-loss and rank-loss impression share visible each week without opening Google Ads
- Changed pages submitted to search engines within minutes of every deploy
- No service-account keys stored in the pipeline
Where judgement mattered
- Own the data: ingest to SQL rather than build on someone else's dashboard
- Diff-based indexing submissions — tell search engines what changed, not the whole sitemap every time
- Federated, keyless authentication for pipeline-side Google access
Technology stack
C# / .NET 10 · Azure Functions · Azure SQL · GA4 Data API · YouTube Data and Analytics APIs · Google Ads API · Bing Webmaster Tools API · Search Console and Indexing APIs · IndexNow · Tag Manager API