Social Media
Public and owned social interactions — mentions, comments, DMs, and ad engagement — pulled from platform APIs.
High-Level Design
Platform API polling → .NET Core microservices on Azure.
💼 Business Context
- Both a brand-perception channel and a paid-media performance channel — unifying it lets the business connect sentiment to actual purchase behavior
- Powers audience sync back to ad platforms for retargeting and lookalike modeling
- Owned by Social/Brand Marketing and Paid Media teams
🔌 Technical Overview
A timer-triggered .NET Core Azure Function polls each platform's API (Meta, X, Instagram, TikTok, LinkedIn) on its own schedule, since most platforms don't push webhooks for every event type; each platform has a thin connector built on the shared Cxos.Ingestion.Client package. Ad-engagement events carry a clickthrough ID that can be matched to a session/profile; organic mentions/comments usually can't be linked to a known customer unless the user has an explicit account link (login-with-social). Azure Key Vault stores each platform's API credentials, with token refresh handled inside the connector function.
Typical Events
💾 Sample Event Payload
{
"event": "ad_clicked",
"event_id": "5f0c3ab1-4d7e-4f9a-8c3b-9e1a2d5f6081",
"timestamp": "2026-08-01T13:12:09Z",
"anonymous_id": "a1b2c3d4",
"context": {
"channel": "social",
"platform": "meta",
"campaign_id": "camp_9931"
},
"properties": {
"ad_id": "ad_2201",
"creative": "summer_sale_v2",
"click_id": "fbclid_88x2"
}
}
🔗 Integration Points
- Timer-triggered Azure Functions (.NET Core) — one connector per platform
Cxos.Ingestion.ClientNuGet package — shared ingestion contract- Azure Key Vault — platform API credential storage
- Reverse ETL (.NET Core Activation API) — audience sync back to ad platforms
- Azure OpenAI Service — sentiment and share-of-voice analysis
⚠️ Non-Functional Considerations
- Scale: platform API rate limits — not data volume — are usually the binding constraint; each connector function throttles independently
- Latency: brand-safety/crisis mentions run on a tighter polling interval; general engagement polls hourly
- Reliability: connector functions handle platform API schema changes without affecting other platforms' pipelines
- Security/Privacy: public content moderation and takedown-request handling before long-term storage
🎯 Enterprise Example
A consumer brand's Meta connector function feeds ad_clicked events into the Ingestion API with a clickthrough ID. When a clicked-through visitor completes a purchase within 7 days, the Activation API closes the loop back to Meta via Reverse ETL, improving return-on-ad-spend attribution and letting the media team shift 15% of budget toward the better-performing creative the following month.