Client Background
- Client: A leading ad tech firm in India
- Industry Type: Digital Advertisements
- Products & Services: Monetized websites running ads through global platforms like Google AdX, AdSense, and Ezoic
- Organization Size: 70+
The Problem
The client ran multiple monetized platforms and global ad campaigns through Google AdX, AdSense, and Ezoic. Each platform had its own reporting tools, fragmented across different websites and campaigns.
Calculating Return on Ad Spend (ROAS) and other performance metrics required heavy manual work, involving logins to multiple dashboards, data downloads, and tedious aggregation. This created:
- High operational overhead
- Delayed reporting
- Inconsistent tracking of performance metrics
- No unified or real-time view of global ad performance
Our Solution
We engineered an automated and centralized ad performance tracking system that included:
- API Integration: Established authenticated access to Google AdX, AdSense, Ezoic, and Google Ads APIs.
- ETL Pipeline: Built a Python-based ETL pipeline that fetched, normalized, and loaded ad campaign data into a PostgreSQL database.
- Scheduled Updates: Enabled automated data refresh every 6 hours to ensure near real-time insights.
- Deployment: Dockerized the entire ETL solution and deployed it on a DigitalOcean droplet.
- Monitoring and Alerts: Integrated Slack notifications for ETL job status (success/failure) along with in-depth logging and error handling.
Solution Architecture
Data Sources: Google AdX, Google AdSense, Google Ads API, Ezoic
ETL Engine: Custom Python ETL tool
Database Layer: PostgreSQL on DigitalOcean
Scheduler: Cron inside Docker container for timed runs
Deployment Infrastructure: DigitalOcean droplet running Docker
Monitoring & Alerts: Slack integration with job status logging and error alerts
Deliverables
API integrations with Google AdX, AdSense, Ezoic, and Google Ads
Python-based ETL pipeline to ingest ad campaign performance metrics
Normalized PostgreSQL database schema for unified data structure
Scheduled data updates (6-hour intervals)
Dockerized deployment on DigitalOcean
Slack alerts for operational transparency and failure detection
Tech Stack
- Tools used
DigitalOcean, Docker, Slack, Postman
- Language/techniques used
Python, REST APIs, ETL orchestration, Cron scheduling
- Models used
- N/A
- Skills used
- API integration, ETL development, Dockerization, Monitoring, AdTech Analytics
- Databases used
- PostgreSQL
- Web Cloud Servers used
- DigitalOcean (Droplet hosting ETL and DB)
What are the technical Challenges Faced during Project Execution
Navigating different authentication mechanisms and response formats of multiple ad platforms
Unifying disparate metrics from different platforms into a single data model
Ensuring consistency and freshness across time zones and scheduling conflicts
Implementing monitoring and fault tolerance in long-running ETL jobs
How the Technical Challenges were Solved
Developed a standardized API wrapper layer in Python for all platforms
Mapped each platform’s metrics to a common schema for unified reporting
Used Docker + Cron to schedule updates without OS-level dependency
Built Slack-based logging with detailed job tracking and real-time alerts for transparency
Introduced robust error handling and retry mechanisms within the ETL pipeline
Business Impact
95% reduction in manual time spent on aggregating ROAS and ad performance
Daily operational efficiency and faster decision-making from fresh, centralized data
Scalable ETL setup that can incorporate new ad platforms in the future
Increased data accuracy and stakeholder confidence in marketing KPIs
Project Snapshots
Backend System/Confidential code





















