An agency specializing in Google Ads (PPC) needed a faster and easier way to monitor and access
thousands of campaigns.
We built a custom data grid that replaced their legacy
workflow, which consisted of Tableau, Google Sheets, and manual DSP edits.
The agency was able to better manage its campaigns on a daily basis while minimizing the painful
time spent in the (laggy and buggy) Google Ads UI.
The legacy process was fragmented, error-prone, and mostly manual. The data engineers had created a Tableau dashboard that displayed daily campaign info, which was fetched from a data lake. Every day, campaign managers would download the data from the dashboard and upload it to a new Google Sheet for processing.
Every day, the team had to scan the agency inbox for emails from Google regarding advertiser account suspensions and policy violations. They would manually log all the issues then send emails to clients when further action was required by them. The data from the Tableau dashboard did not surface the state of each campaign in the DSP because the upstream source merely collected delivery and performance metrics. Even if it did, there would have been no easy way to alert the client from the dashboard if needed.
To make campaign updates, the team had to manually search Google Ads and interact with the UI to save changes. This was a massive burden as it consumed the greatest amount of time and contributed to a subpar user experience.
The team would manually apply the same sets of filters each day to find campaigns with pacing or performance issues. This was tedious and made it easy for mistakes to happen.
It was hard to visually identify campaigns from high-priority clients, and KPIs all looked the same no matter their health.
In just a couple of weeks, we built and released a secured web app with a custom data grid that transformed the agency's workflow.
We included direct links to each campaign's DSP page, and also added buttons for custom actions. By integrating the Google Ads API in the backend, the agency was able to change a campaign's overall bid strategy or max CPC bid in one click.
In the backend, we used the Google Ads API to get special campaign attributes on load. The team was able to see which campaigns had advertiser suspensions and policy violations at any time of the day. The data lake was only refreshed with new data once a day, so we wrote queries with Google Ads Query Language and joined the data lake's batch with the queried attributes.
In addition to column-level filters, we set up external filters above the grid to let the team focus on campaigns belonging to certain categories. We wrote JavaScript functions to express the desired logic since it was common for the team to filter by groups of clients, KPI ranges, and campaign state.
Rows were highlighted with custom colors to represent certain clients. Cells with KPIs were colored to reflect their health; we used thresholds given to us by the agency to map colors to ranges.
Book a call
or email us at info@customgrids.com to see how we can transform your workflow.
Explore demo grids to see interactive examples.