Building a complete ROAS (Return on Ad Spend) ecosystem to track marketing performance from click to cash inside HubSpot.
The goal was to create a comprehensive reporting engine inside SHOUT UGC's HubSpot environment. The system enables the client to answer critical business questions with real data:
We developed a custom web service that acts as a bridge. It ingests daily performance data from ad platforms and processes it into structured "monthly campaign containers" inside HubSpot.
The real-time ROAS dashboard as seen by the SHOUT team inside HubSpot.
Standard HubSpot ad integrations record metrics in an "Ad Performance" object that cannot be joined with Contacts or Deals for advanced reporting. To bypass this limitation, we repurposed the **Tickets Object** as a unified data layer.
Because Tickets can be associated with both Contacts and Deals, we can build reports that directly calculate Ad Spend vs. Actual Revenue generated by those specific ad-acquired contacts.
Our backend runs two primary scripts to ensure accuracy without manual work:
Runs daily at 2:00 AM. Connects to Google, Meta, and LinkedIn APIs to pull spend, clicks, and impressions. It creates or updates the "Monthly Campaign Ticket" in HubSpot.
Runs daily at 4:05 AM. It traces Deal revenue back to early-stage Contacts, identifies their source (Paid, Organic, or Email), and writes the revenue totals back into the Campaign Ticket for ROI calculation.
The system automatically calculates and writes these values into HubSpot fields:
We delivered 7 fully functional dashboards categorized by location and business type (Studio UK, Agency US, etc.), allowing the SHOUT team to monitor their entire marketing spend in one place.
We solve HubSpot's reporting limitations with custom engineering and smart object architecture.
Get a Free Consultation